MCP¶
Open standards
Model Context Protocol (MCP) lets an agent
call tools hosted by a separate server. The agent still calls
ToolContract.call_tool(name, arguments). Infra decides whether a local
function or an MCP server answers.
How MAS-Lab implements it¶
MCP client and server plugins ship in mas-library-ioa and use the official
Python SDK (mcp>=2.2). The console script is mas-mcp.
A remote tool is a ToolServerRegistry entry:
apiVersion: infra/v1
kind: ToolServerRegistry
metadata:
name: mcp-localhost
spec:
tool_servers:
- name: mcp-web-search
protocol: mcp
usage: use
url: http://127.0.0.1:9001/mcp
tools: [web-search]
--bind NAME=mcp://host:port/mcp#tool is a shortcut for a usage: use row.
Serve a tool with mas-mcp serve --tool-manifest … --transport streamable-http.
Dependencies¶
| Piece | Package |
|---|---|
Client, server, mas-mcp |
mas-library-ioa |
| Official Python SDK | mcp>=2.2 (mcp[cli] extra for mcp version / mcp dev) |
| Infra kind | ToolServerRegistry |
Compliance¶
Conformance uses the official npm runner, not a vendored checkout:
npx @modelcontextprotocol/conformance server \
--url http://127.0.0.1:9001/mcp \
--requirements 2026-07-28
Pinned revisions are MCP 2025-11-25 and 2026-07-28. The runner version is
@modelcontextprotocol/conformance@0.2.0-alpha.11 (MCP_CONFORMANCE_VERSION).
The v0.2 release notes record 98.3% of required checks on the 2026-07-28
stateless revision. Workflow, reports, and what is not scored:
library-ioa MCP compliance
and RESULTS.md.