Expand description
Bundles stop carrying MCP servers: they belong to Connectors
(docs/specs/SPEC_BUNDLE_CONTENTS_MEMORY_NOT_MCP_2026_10_07.md §3.1, D3).
For this channel:
- logs each agent that loses a server it reached only through a bundle, naming the agent and the server, so the loss shows in the srv log;
- deletes the servers private to a bundle from the identity store: not
global, referenced by a bundle here, and bound to no agent here. An
agent can’t bind another entity’s private server (
mcp.catalog.bindtakes global ones only), so no other channel’s agent holds one either; - deletes every
db_bundle_mcp_refrow; - clears the shared store’s inline
db_bundles.mcp_serversto[].
An agent’s own servers (db_agent_mcp_ref) and the global ones are left
alone. db_bundle_mcp_ref stays defined, because an older build on the
same channel expects it; dropping it is a later cleanup.
Idempotent: a second run finds no refs and nothing inline. Fails (to be retried on the next boot) when the shared store can’t be opened or the inline column can’t be cleared, since those hold server configs. Never fails over the identity store: when it can’t be opened, the private servers are left (unreachable, since their refs go) and that is logged.
Structs§
- Dropped 🔒
- What one run removed, for the log and the tests.
- M0036
Drop Bundle Mcp
Functions§
- agent_
bound_ 🔒mcp_ ids - bundle_
mcp_ 🔒refs - Every bundle’s MCP refs on this channel, bundle id to server ids.
- drop_
bundle_ 🔒mcp - log_
agents_ 🔒losing_ servers - One log line per agent that reached a server only through its bundles: not a global one, and not one bound to the agent itself.
- open_
identity_ 🔒store