# Model Context Protocol (MCP) (llmcpp) Model Context Protocol (MCP) exposes compiler tools through a discoverable interface. After initialization, an external agent requests the available tool schemas: ```json { "jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {} } ``` The reply describes tools such as `get_task`, `lookup`, `try_compile`, and `submit`, including their argument schemas. The agent should use those schemas rather than guess argument shapes. The documented handshake uses `initialize`, `tools/list`, and `notifications/initialized`. Tool execution then uses `tools/call` over [[llmcpp-json-rpc|JSON-RPC]]. The separate `llm/generate` message supplies the implementation task and effective policy. MCP describes tool discovery and calls; it does not itself implement the requested C++ body. The agent translates model actions into these compiler operations and delivers a checked submission.