Expand description
MCP (Model Context Protocol) integration — JSON-RPC client, tool bridging, lazy loading.
Re-exports§
pub use lease::McpLeaseCapability;pub use lease::McpRuntimeManager;pub use lease::McpSessionEndGuard;
Modules§
- descriptors
- Task 19 (Commit A) — safe local MCP descriptor cache and dormant deferred-tool integration (spec §7.4).
- lease
- Task 19 (Commit B) — session-scoped exact MCP runtime leases (spec §7.4).
Structs§
- McpConfig
- MCP config file format: { “mcpServers”: { “name”: { command, args, env } } }
- McpConnect
Tool - A tool that lazily connects to MCP servers on demand. Instead of spawning all servers at startup (burning tokens on 65 tool schemas), this registers ONE tool that the model calls to activate a specific server.
- McpServer
Config - MCP server configuration — matches claude-code/gemini-cli format.
- McpTool
- A dynamic tool backed by an MCP server connection. The connection is shared (Arc<Mutex<>>) across all tools from the same server.
Constants§
- MCP_
CONFIG_ MAX_ ARGS - MCP_
CONFIG_ MAX_ ARG_ BYTES - MCP_
CONFIG_ MAX_ BYTES - Hard byte bound on
mcp.json. - MCP_
CONFIG_ MAX_ COMMAND_ BYTES - MCP_
CONFIG_ MAX_ ENV_ ENTRIES - MCP_
CONFIG_ MAX_ ENV_ KEY_ BYTES - MCP_
CONFIG_ MAX_ ENV_ VALUE_ BYTES - MCP_
CONFIG_ MAX_ SERVERS - Structural bounds on
mcp.json(Task 19 review): the 1 MiB byte cap alone leaves server/env counts and string shapes unbounded. Violations fail the WHOLE config closed with a static reason. - MCP_
CONFIG_ MAX_ SERVER_ NAME_ BYTES
Functions§
- connect_
mcp_ servers - Connect to all configured MCP servers and register their tools. Returns the number of tools registered.
- load_
mcp_ config - Load MCP config from ~/.synaps-cli/mcp.json (or profile variant).
- setup_
lazy_ mcp - Set up MCP loading at engine boot, before any session tool set exists.
- validate_
mcp_ config - Validate config structure before ANY use. Static reasons only — no config content is ever echoed.