MCP Gateway
Management of MCP overlay documents over WAMP — the operator-authored layer that exposes a realm to agents: it names tools, names topic-backed resources, declares resource templates, and adds MCP-only annotations. Under the default curated manifest mode this is the exposure act — exactly the entries overlays name exist. This is also the overlay's only management surface; there is no console or file-based alternative.
An overlay document has the same lifecycle as an interface document: it carries an id and entries, it is validated as a whole (the first invalid entry rejects the document with nothing written), loading an id again replaces the previous version, and a (realm, name) claimed by one document is refused to every other. Documents replicate cluster-wide and every node's manifests rebuild from a change within the debounce window.
Each entry names one tool, resource or resource template:
| Field | Required | Meaning |
|---|---|---|
realm | yes | The realm the entry belongs to. Bondy rejects the document if the realm does not exist at load time. |
kind | yes | tool, resource or resource_template. |
name | yes | The MCP-facing name: 1–256 bytes, printable ASCII, no whitespace. |
wamp_procedure | tools & templates | The exact-match WAMP procedure the entry fronts. |
wamp_topic | resources | The exact-match WAMP topic a resource entry fronts; its payload schemas from the interface layer become the resource's output shape. |
description, annotations, wamp_options, args_schema, kwargs_schema, result_args_schema, result_kwargs_schema, version | no | MCP-facing detail; an absent field falls through to the interface entry of the WAMP binding (the tool's procedure, or the resource's topic). |
redaction | no | {"fields": [...]} — fields removed before audit digests are computed. |
uri_template, uri_vars_schema, wamp_args, wamp_kwargs, update_topic | resource templates | The RFC 6570 template contract. Bondy rejects the entry unless the variables of uri_template and the keys of uri_vars_schema are the same set. Each {{var}} reference in wamp_args, wamp_kwargs and update_topic names a template variable. A template entry also declares result_args_schema, result_kwargs_schema, or both. |
Under the default curatedmanifest mode the manifest holds exactly the entries overlays name. Under derived, described procedures and topics also surface URI-named, and an entry that claims one replaces its URI-named form — a rename, not an alias. In both modes, two entries claiming one name with different WAMP bindings are both skipped from the manifest and a major alarm names the collision.
Procedures
All five are master realm only, like bondy.interface.*: an overlay document may target any realm, so managing one is an operator act. A call from any other realm fails with wamp.error.not_authorized.
bondy.mcp.overlay.load(document) -> []
Loads (or replaces) an overlay document. Errors name the first violation — an invalid name, an unknown realm, a duplicate (realm, name) inside the document, or a name another document owns.
Supports dry_run: true as a keyword argument. A dry run runs every check of the real call and writes nothing. Its result carries dry_run (true), would, id and entry_count.
bondy.mcp.overlay.get(id) -> [document]
The source document as originally loaded.
bondy.mcp.overlay.list() -> [documents]
The sources of every loaded overlay document.
bondy.mcp.overlay.delete(id) -> []
Removes the document. Under the default curatedmanifest mode the entries it named disappear from the manifest; under derived, a claimed procedure reverts to its URI-named form.
bondy.mcp.overlay.suggested() -> [result]
The overlay documents Bondy ships, as {"documents": [...]}, in the shape bondy.mcp.overlay.load accepts.
Returning a document is not loading it. This procedure writes nothing; it exists so that adopting a shipped surface needs no console step and no copy of the document outside the build. Load one by passing it to bondy.mcp.overlay.load unchanged, or edit it first — it is an ordinary document once you hold it.
Bondy ships one document, bondy_sre_read: the four alarm and two task read procedures as tools, and the three alarm event topics as resources, all naming the master realm. See Giving an Agent Read-Only Access.