MCP server¶
Each tool in the tools file becomes an MCP tool whose only argument is a context. The server owns the question and the options, so the agent cannot invent them at call time. --generic-tools adds mimir_choose, mimir_verify, mimir_rank, and mimir_rate, which take the question and options as arguments and decide at --risk.
Every tool declares its full output schema, returns structured content, and is annotated read-only, idempotent, and closed-world. Its description instructs the agent to act only on decided or abstained and to escalate deferred. A deferral is a normal result, not an error. Invalid arguments, a model still loading, and engine failures are tool errors that name the cause.
Transports¶
uvx --from "mimir-decisions[local,mcp]" mimir-decisions mcp --tools tools.yaml # stdio
MIMIR_API_KEYS=... mimir mcp --http --host 0.0.0.0 --tools tools.yaml # Streamable HTTP at /mcp
MIMIR_API_KEY=... mimir mcp --tools tools.yaml --remote https://mimir.internal # forward to a server
mimir serve --mcp --tools tools.yaml # HTTP API and /mcp together
--http serves stateless Streamable HTTP with JSON responses, behind the HTTP server's key and loopback rules. --remote forwards every tool call to a MIMIR HTTP server, so a local MCP host can use a GPU server without installing the model locally.
Clients¶
In claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"mimir": {
"command": "uvx",
"args": ["--from", "mimir-decisions[local,mcp]", "mimir-decisions", "mcp", "--tools", "/path/to/tools.yaml"]
}
}
}
For a remote server, add "--remote", "https://mimir.internal" to args and "env": {"MIMIR_API_KEY": "..."} beside them.
In ~/.cursor/mcp.json, or .cursor/mcp.json in a project:
In .vscode/mcp.json:
{
"servers": {
"mimir": {
"command": "uvx",
"args": ["--from", "mimir-decisions[local,mcp]", "mimir-decisions", "mcp", "--tools", "${workspaceFolder}/tools.yaml"]
},
"mimir-remote": {
"type": "http",
"url": "https://mimir.internal/mcp",
"headers": {"Authorization": "Bearer ${input:mimir-key}"}
}
},
"inputs": [
{"type": "promptString", "id": "mimir-key", "description": "MIMIR API key", "password": true}
]
}
The server is registered in the MCP Registry as io.github.abderahmane-ai/mimir.