Getting started as a client
Tool overview (server mode)
Themeerkat-mcp-server crate exposes Meerkat as MCP tools that other clients can call.
| Tool | Description |
|---|---|
meerkat_run | Start a new agent session |
meerkat_resume | Continue a session or provide tool results |
meerkat_config | Get or update server config |
meerkat_capabilities | Query runtime capabilities |
Use MCP servers as tools (client)
CLI configuration (recommended)
Use therkat mcp commands to manage MCP servers:
Config file format
MCP servers are stored in TOML in two scopes:- Project:
.rkat/mcp.toml - User:
~/.rkat/mcp.toml
Config file examples
Config file examples
Supported transports: stdio, streamable HTTP (default for URLs), and SSE.
Environment variables in config use
${VAR_NAME} syntax.Meerkat as an MCP server
Connecting other clients
You can connect any MCP-capable client to a Meerkat MCP server. Run a server process that exposes themeerkat_* tools (stdio or HTTP), then point the client at it.
- Claude Code
- Codex CLI
- Gemini CLI
Claude Code reads MCP servers from a
.mcp.json file in your project root.
Example stdio config:Hosting the MCP server
meerkat-mcp-server is a library crate that provides tool schemas and handlers. If you need a standalone MCP server process, add a thin binary wrapper around its tools_list() and handle_tools_call* entrypoints, or embed it in an existing MCP host.
Tool reference
meerkat_run
Start a new Meerkat agent session with the given prompt.Parameter reference
User prompt for the agent.
Override system prompt.
Model name (e.g.
"claude-opus-4-6", "gpt-5.2").Max tokens per turn.
Provider:
"anthropic", "openai", "gemini", "other".JSON schema for structured output (wrapper or raw schema).
Max retries for structured output validation.
Stream agent events via MCP notifications.
Enable verbose event logging (server-side).
Tool definitions for the agent (see McpToolDef schema below).
Enable built-in tools (task management, etc.).
Config for builtins (only used when
enable_builtins is true).Enable shell tools.
Default shell command timeout.
Run in host mode for inter-agent comms (requires
comms_name).Agent name for comms.
Run-scoped hook overrides.
McpToolDef schema
Tool name.
Tool description.
JSON Schema for tool input.
Handler type (
"callback" = result provided via meerkat_resume).handler: "callback" are provided and the agent requests a tool call, the response includes pending_tool_calls. The MCP client must execute the tool and provide results via meerkat_resume.
meerkat_resume
Resume an existing session or provide tool results for pending tool calls.Parameter reference
Session ID to resume.
Follow-up prompt (can be empty when providing tool results).
Stream agent events via MCP notifications.
Enable verbose event logging.
Tool definitions (should match the original run).
Tool results for pending tool calls.
ID of the tool call.
Result content (or error message).
Whether this is an error result.
Enable built-in tools.
Builtin tool config.
Enable host mode.
Agent name for comms.
Model override.
Max tokens override.
Provider override.
Run-scoped hook overrides.
Response format
Bothmeerkat_run and meerkat_resume return MCP-standard tool results. The inner text field is a JSON-encoded payload containing:
MCP content blocks with the agent’s text.
Session ID (save for
meerkat_resume).Number of LLM calls made.
Number of tool calls executed.
Parsed structured output.
Schema compatibility warnings.
meerkat_config
Get or update Meerkat config for this MCP server instance.One of
"get", "set", "patch".Full config to replace (for
set action).RFC 7396 merge-patch delta (for
patch action).meerkat_capabilities
Returns the runtime capability set with status resolved against config.status values:
| Status | Shape | Meaning |
|---|---|---|
Available | "Available" | Compiled in, config-enabled |
DisabledByPolicy | {"DisabledByPolicy": {"description": "..."}} | Compiled in but disabled |
NotCompiled | {"NotCompiled": {"feature": "..."}} | Feature flag absent |
NotSupportedByProtocol | {"NotSupportedByProtocol": {"reason": "..."}} | Protocol does not support it |
