Four capability servers on IBM Code Engine expose their tools over MCP-HTTP, backed by ~35 GB of data in IBM COS. Try it in the browser, benchmark against it with one config flag, or deploy your own — start below.
VAKRA is an enterprise benchmark: an agent is given a set of domain tools (SQL/REST APIs, retrievers, BPO services) and must answer questions by calling them. This deployment moves that tool environment onto Code Engine and its data into COS, so no one has to run containers or download 35 GB locally. Two things get bridged for the cloud, and nothing about the local setup changes:
/mcp/california_schools only ever sees that domain's tools — the bridge pins MCP_DOMAIN per request, exactly like the local docker exec -e path.
Pick the row that matches you. Each links to the full guide.
Open the hosted explorer, pick a capability and a domain, and browse or invoke the tools right in your browser. No clone, no install, no keys.
Open the explorer → · first click: cap 2 → california_schoolsRun the usual VAKRA runner — the only change from a local run is the MCP config. Add a provider key (OpenAI or watsonx) for a real agent run.
# after: source deploy/ce/.ce_urls.env python benchmark_runner.py --capability_id 2 \ --domain california_schools \ --mcp-config benchmark/mcp_connection_config.ce.yaml
Push data to COS, build the image, and roll out the four apps. Admin-gated, idempotent, and fully additive — existing deployments are untouched.
python deploy/ce/0_push_data_to_cos.py --stream cd deploy/ce VAKRA_CE_ADMIN=1 YES=1 ./1_create_bucket_and_pds.sh VAKRA_CE_ADMIN=1 YES=1 ./2_build_push_image.sh VAKRA_CE_ADMIN=1 YES=1 ./3_deploy_apps.sh
How the stdio→HTTP bridge keeps tools domain-scoped, how COS is mounted, and every issue we hit (and its fix) while standing this up.
Architecture + gotchas → RUNBOOK.md · quick reference → CHEATSHEET.mdEach capability is its own app and MCP endpoint. Tool counts below are from the live smoke test.
| App | Capability | Serves | Example domains | Tools |
|---|---|---|---|---|
| vakra-cap1 | bi_apis — slot-fill / selection | RouterMCP tools | address, … | 9 |
| vakra-cap2 | dashboard_apis — SQL / REST | M3 REST tools | california_schools, financial, formula_1, movie | 139 |
| vakra-cap3 | multihop_reasoning | BPO or M3 REST (by domain) | bpo, … | 32 |
| vakra-cap4 | multiturn — REST + retriever | M3 REST + semantic retriever | address, … | 144 |
Valid --domain values are the task-file names under data/test/capability_<id>_*/input/. Browse them per capability in the explorer.
Any MCP client can talk to a deployed app over streamable HTTP. Get the real URLs from deploy/ce/.ce_urls.env (an admin has them).
mcp_http_bridge.py if you need to lock them down.