omnigraph/crates/omnigraph-server
Ragnor Comerford 8dab7e2e61
test(mcp): harden symptomatic MCP fixes to construction-enforced
Four guards/refactors that convert previously convention-enforced MCP
invariants into ones a future edit can't silently break:

- H1 (loopback Host set): standalone.rs surface-guard asserts our loopback
  allow-list is a superset of rmcp's own default set, so an rmcp bump that
  adds a loopback form turns red instead of 403'ing that client. Pins the
  ::1 regression by construction rather than by a hand-kept literal list.

- H2 (one stored-query gate): extract a single invoke_query_request() in
  handlers.rs used by GET /queries, POST /queries/{name}, and (imported) the
  MCP tools/list + tools/call stored paths. REST and MCP can no longer drift
  on which Cedar action governs the catalog. Deletes mcp.rs's local copy.

- H3 (expose chokepoint): tests/mcp.rs source-walk guard bans .lookup( and
  registry.iter( in mcp.rs, so the agent surface can only reach stored
  queries through exposed()/exposed_by_name() — an @mcp(expose:false) query
  cannot leak back into tools/list via the expose-ignoring registry methods.

- H4 (list-gate relaxation lower-bound): a permit-all actor must see every
  built-in tool, pinning the other end of the list-gate fix (no callable
  tool may be hidden from tools/list).

cargo test -p omnigraph-mcp -p omnigraph-server green (the lone schema_routes
flake was disk-pressure during the clean build; passes in isolation).
2026-06-20 17:09:27 +02:00
..
examples fix: self-heal manifest-unreferenced branch forks (stop wedged branches) (#231) 2026-06-15 22:17:25 +02:00
src test(mcp): harden symptomatic MCP fixes to construction-enforced 2026-06-20 17:09:27 +02:00
tests test(mcp): harden symptomatic MCP fixes to construction-enforced 2026-06-20 17:09:27 +02:00
Cargo.toml feat(mcp): MCP server surface — Streamable-HTTP transport + tool/resource projection (RFC-003) 2026-06-17 14:00:52 +02:00