Skip to content
This repository was archived by the owner on Oct 2, 2026. It is now read-only.

fix(multi-tenant-saas): support MCP tool discovery - #139

Merged
imran-siddique merged 1 commit into
agentrust-io:mainfrom
dinakarjs:fix/saas-tools-list
Oct 2, 2026
Merged

imran-siddique merged 1 commit into
agentrust-io:mainfrom
dinakarjs:fix/saas-tools-list

Conversation

@dinakarjs

Copy link
Copy Markdown
Contributor

The multi-tenant SaaS mock returned an unknown-tool error for tools/list, leaving the gateway unable to check upstream definitions. Route by method and expose all four PeopleGraph tools with catalog-matching descriptions and MCP inputSchema values. Existing calls remain unchanged; unsupported methods return -32601.

Follow-up to #134. Changes are limited to multi-tenant-saas/server/mock_mcp_server.py. Definitions are stored independently of the gateway catalog so upstream drift remains detectable.

Validation with published cmcp-runtime 0.7.0 in development mode:

  • Live listing matches all four catalog definitions and handler names; all four call responses remain correct. Request IDs, unknown tool/method and wrong-path cases pass.
  • metzler-eu: headcount and basic lookup allow; cross-region export and special-category lookup return POLICY_DENY.
  • summit-us: first three calls allow; special-category lookup returns advisory_deny without blocking.
  • Both tenants close with signed TRACE records, no drift/catalog exceptions, and no tools discovery incomplete warning.
  • Altering people.headcount_analytics’s upstream description triggers UPSTREAM_CATALOG_DRIFT and HTTP 503 / CATALOG_DRIFT under both enforcing and advisory tenant configurations.
  • All 5 existing people-directory tests pass. Python compilation and git diff --check pass.

Commit carries DCO sign-off.

Signed-off-by: Codex <codex@openai.com>
@dinakarjs
dinakarjs requested review from a team and carloshvp as code owners October 2, 2026 08:11
@imran-siddique
imran-siddique merged commit 7c720e6 into agentrust-io:main Oct 2, 2026
20 of 21 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants