Skip to content

MCP gateway: per-tool control of remote MCP servers, new servers held by default - #6

Merged
abhiabhijit merged 1 commit into
mainfrom
mcp-gateway
Oct 10, 2026
Merged

abhiabhijit merged 1 commit into
mainfrom
mcp-gateway

Conversation

@abhiabhijit

Copy link
Copy Markdown
Collaborator

Routes agents' remote MCP servers through Ring Zero, so you can switch individual tools on and off, with kernel enforcement that agents can't route around.

What this adds

  • Gateway: in the daemon, at http://127.0.0.1:7700/mcp/<id>, loopback only.
    • A switched-off tool disappears from the agent's tool list.
    • A call to a switched-off tool is refused with a JSON-RPC error the agent can read.
    • Every call, allowed or refused, is recorded in the commentary and Security history.
  • Kernel: agents are refused a direct connection to a managed or held server, so editing the config back does not get past the gateway. People on the machine are not affected.
  • rz mcp adopt | release | list | tool: password-gated. Adopt rewrites each agent's MCP config to point at the gateway, with a backup.
  • New servers are held by default. A remote server added to an agent's config later is held until an administrator approves it.
  • Discovery:
    • lists a remote server's tools
    • per-tool switches for managed servers
    • Approve for held servers
  • README: describes what Ring Zero does now.

Testing

  • On Ubuntu 26.04 (kernel 7.0), with opencode against DeepWiki and Context7, I checked:
    • adopt
    • tool use through the gateway
    • hiding and refusing a switched-off tool
    • kernel refusal of direct access by an agent (not by a person)
    • holding a newly added server, then approving it
  • Workspace tests pass (daemon: 357). The eBPF object loads under the verifier; formatting and licence headers are clean.

Known gaps

  • New servers are noticed within about 10 s.
  • Codex TOML and .jsonc configs are not adopted yet.
  • A URL's query string is dropped on adopt.

… by default

Ring Zero now sits between agents and their remote MCP servers.

- Gateway in the daemon at http://127.0.0.1:7700/mcp/<id> (loopback only).
  Agents speak MCP to it; it forwards to the real server with the agent's own
  headers.
  - A switched-off tool is removed from tools/list.
  - A tools/call to a switched-off tool gets a JSON-RPC error and never
    reaches the server.
  - Every call, allowed or refused, goes to commentary and Security history.
- Kernel: agent trees are refused direct connections to a managed or held
  server's addresses (IPv4 and IPv6, re-resolved each minute), so editing
  the config back cannot route around the gateway. People are not affected.
- `rz mcp adopt | release | list | tool <id> <tool> on|off`, password-gated
  through the app. Adopt rewrites each agent's JSON MCP config to the
  gateway, with a backup, preserving owner and mode.
- New servers are held by default: a remote server that appears in an
  agent's config later is held until an administrator approves it.
- Discovery lists a remote server's tools, shows per-tool switches for
  managed servers, and Approve for held ones.
- Commentary no longer narrates DNS fragments as hosts.
- README: what Ring Zero does now; AI agents, not AI coding agents.
@abhiabhijit
abhiabhijit merged commit 6e5e5b4 into main Oct 10, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants