MCP
The MCP integration records a governed tool invocation before forwarding the call to your underlying handler. This is useful when you control an MCP server and want an explicit Arclasp decision boundary around selected tool calls.Install
mcp>=1.0.0,<2.0.0.
Integration skeleton
The current MCP Python SDK does not expose a universal server-patching hook that Arclasp relies on. Wire governance inside your owncall_tool handler.
server, read_stream, write_stream, and init_options come from your MCP server and transport setup.
Enforcement boundary
For a call routed throughhandle_tool_call():
- Arclasp records the proposed tool invocation.
- The backend evaluates policy.
- If the call is allowed, the adapter forwards to your handler.
- If the call is denied, the handler is not called.
- If approval is required, forwarding waits for the approval result.
Decorator pattern
You can also wrap individual tool implementations:What gets recorded
The MCP integration records the governed invocation and policy decision before forwarding to the customer handler. Current limitation: MCP does not provide universal persistence of arbitrary tool return values or execution exceptions as action evidence. Do not describe the MCP adapter as full result capture.Client identity
If your MCP server knows which client initiated the call,parent_agent_name can be used as additional attribution metadata.
This is useful for distinguishing client identities that use the same governed server. It is not a cross-organization tracking mechanism.