Bondy Connect
Skip to content

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:

FieldRequiredMeaning
realmyesThe realm the entry belongs to. Bondy rejects the document if the realm does not exist at load time.
kindyestool, resource or resource_template.
nameyesThe MCP-facing name: 1–256 bytes, printable ASCII, no whitespace.
wamp_proceduretools & templatesThe exact-match WAMP procedure the entry fronts.
wamp_topicresourcesThe 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, versionnoMCP-facing detail; an absent field falls through to the interface entry of the WAMP binding (the tool's procedure, or the resource's topic).
redactionno{"fields": [...]} — fields removed before audit digests are computed.
uri_template, uri_vars_schema, wamp_args, wamp_kwargs, update_topicresource templatesThe 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.