Agent → MCP → Foundgine → PostgreSQL
A stateful end-to-end benchmark that exercises an AI-agent-like workload through the MCP capability boundary, Foundgine semantic execution, authorization and transactional PostgreSQL state.
This is the working code behind the "top supplier in Texas" walkthrough — same request, same ambiguity resolution, run against a real seeded PostgreSQL database instead of narrated step by step.
It tests the execution boundary, not just database speed.
The workload deliberately mixes valid, invalid and unauthorized operations. It checks that business capabilities remain application-controlled as they cross MCP, semantic planning, authorization, execution and PostgreSQL.
One capability boundary, several controlled layers.
Calculated evidence, no candidates at all, a tie, or a closed loop — never a guess.
The Foundgine walkthrough traces one request
— "show me overdue purchase orders from our top supplier in Texas" — through
every layer, including the step where
"top supplier" is not a database key and has to be resolved through
ranked candidates and evidence before anything downstream may execute. This benchmark's
find_top_supplier_overdue_orders(actor, state, supplierName?) capability
brings that exact case into the Supply Chain E2E workload, seeded so all four outcomes
get exercised on every run.
TX: Acme Industrial (482,000) unambiguously outranks Globex
Components (210,000). Resolution binds the graph to Acme, authorizes it, and
executes the overdue-purchase-order query — the response carries the rows plus
evidence: rank, margin over the runner-up, and a plan fingerprint.
CA: Northstar Supply and Southline Parts tie at 300,000.
Resolution stops before authorization or execution and returns
clarification_needed with the tied candidates and suggested refinements
— name the supplier, give a tiebreak criterion, or narrow the region — instead of
picking one.
NY has no seeded suppliers. Retrieval returns zero candidates,
so the response is not_found — there is nothing to resolve, authorize
or execute.
CA plus an explicit supplierName: the agent has
already been told the candidates are tied and comes back with a specific name. The
name is validated against the real candidate set — an unmatched name still returns
not_found, never a guess — and once matched resolves and executes
exactly like Case A, marked resolvedBy: "explicit-name".
Every resolved response also exercises field-level authorization from step 7 of the
walkthrough: the commercially sensitive Supplier.NegotiatedCost field is
stripped and listed under deniedFields for every actor except Admin, even
though the capability call itself was allowed. The agent workload picks randomly among
all four shapes on each occurrence, so a single run exercises every outcome. Bob
(purchasing/customer service) and Admin are authorized for it; every other actor is
expected to be denied at the MCP boundary.
Latest Supply Chain E2E result
Without Foundgine: how many round trips to fetch the same data?
This workload only executes the Foundgine path — there is no conventional REST/GraphQL flow running side by side to measure directly here. The panel below models what a conventional discover → authorize → execute → verify choreography would need to reach the same result, using the same 4-step count measured directly in Run 1. It is an estimate, not a measurement — see the caveats inline.
The first vertical slice
The Supply Chain run is the final application layer
This page should be read after the repository verification gates: unit tests establish deterministic contracts; PostgreSQL integration tests exercise the real provider; authorization and adversarial-input penetration tests attack the security boundary; and the performance smoke test proves the benchmark stack can execute real traffic without errors. The Supply Chain workload then composes those concerns into one agent-facing business workflow.
The repository gate definitions and exact local commands are documented in
samples/Foundgine.SupplyChain.Advanced/VERIFY-GATES.md.
Run it yourself
cd samples/Foundgine.SupplyChain.Advanced
$env:SUPPLY_CHAIN_CUSTOMERS="5"
$env:SUPPLY_CHAIN_STEPS="25"
$env:SUPPLY_CHAIN_SEED="20260823"
./run-supply-chain.ps1
./publish-supply-chain-report.ps1
The runner writes the local JSON and Markdown report under reports/. The
publish script copies those artifacts into the website's
docs-site/assets/agent-benchmark/supply-chain/ asset folder used by this
page.