Quirl MCP server
Canonical Quirl project documentation synced from docs/mcp.md.
Run the explicitly scoped stdio server with the capabilities an MCP client actually needs:
quirl serve mcp --capabilities catalog,complete,check,formatThe server is newline-delimited JSON-RPC on standard input/output. It exposes
only the named tools (quirl_catalog, quirl_complete, quirl_check, and
quirl_format); an ungranted tool is not callable. Source-oriented check and
format requests accept bounded in-memory text only. They do not read paths,
load plugins, start a shell, write files, or open the network.
Modern clients negotiate 2026-07-28 with server/discover. Every modern
request must include its _meta.io.modelcontextprotocol envelope with that
protocol version, client information, and client capabilities. Responses carry
the matching server-information envelope, and tools/list supplies an
immutable deterministic cache hint.
For existing clients, Quirl also accepts legacy initialize negotiation for
2025-03-26, 2025-06-18, and 2025-11-25, followed by the usual
notifications/initialized, tools/list, and tools/call messages. A
connection selects exactly one era; modern metadata and legacy negotiation
cannot be mixed.
Messages, nested JSON, tool input, and tool output are bounded. Oversized tool results return a JSON-RPC error while the stdio connection remains usable.
MCP intentionally exposes the compiled builtin catalog only. It does not read the plugin lock, evaluate installed Lua, invoke extension callbacks, or claim that plugin commands are MCP-executable. Installed plugin metadata remains available through the validated CLI catalog, LSP, documentation, completion, and agent projections.