{
  "protocol": {
    "id": "pcl_mcp",
    "name": "MCP",
    "full_name": "Model Context Protocol",
    "purpose": "Standardizes how a single agent (this session, or a coworker binary) exposes tools and resources to a model, over a well-known stdio or HTTP transport, independent of which model or client is on the other end. This repo uses it both to expose this repo's own tools to Claude (crates/mcp-server) and to let Claude execute real operations on the developer's Mac (crates/engineering-coworker).",
    "transport": "stdio (crates/mcp-server, crates/engineering-coworker, both local process transport) or Streamable HTTP (subagentapi.com's own real POST /mcp JSON-RPC 2.0 endpoint, handling initialize, tools/list, and tools/call).",
    "sdk_or_impl": "crates/mcp-server (Rust binary, rmcp crate, stdio transport, backed by Postgres and Redis) plus crates/engineering-coworker (Rust MCP server, rmcp, stdio, exposes cargo_check, cargo_test, wrangler_deploy, d1_query, git_status, git_commit_push tools so Claude can execute, not just suggest, deploys and git pushes on the real Mac) plus vendored modelcontextprotocol/typescript-sdk and modelcontextprotocol/rust-sdk repos in vendors/ per .vendors.toml for protocol reference.",
    "real_usage_in_repo": "crates/mcp-server, crates/engineering-coworker, and the two vendored SDK repos are real files in this repo; subagentapi.com additionally runs a genuinely working Streamable-HTTP-style single-tool MCP endpoint in production.",
    "source_doc": "crates/mcp-server, crates/engineering-coworker, .vendors.toml (modelcontextprotocol/typescript-sdk, modelcontextprotocol/rust-sdk), CLAUDE.md section engineering-coworker MCP server",
    "status": "production",
    "created_at": "2026-07-02 05:30:12",
    "cite_as": "https://subagentprotocols.com/api/protocols/pcl_mcp"
  }
}