Prerequisites
Install the Kestrel CLI:whoami, register, verify_email, login, and create_api_key; as soon as an API key exists (both verify_email and login create one, named after the connected harness) the full tool set is registered and tools/list_changed is emitted. Credentials live in ~/.kestrel/config.json, so kestrel auth kestrel_sk_... works too if you already have a key.
For the end-to-end agent flow with every human step marked, see the Agent Quickstart.
Setup
The MCP server runs as a subcommand of the CLI. Configure your AI tool to runkestrel mcp.
Cursor
Add to~/.cursor/mcp.json:
Claude Desktop
Add to~/Library/Application Support/Claude/claude_desktop_config.json:
OpenAI Codex
Add via the Codex CLI:~/.codex/config.toml:
Available Tools
Bootstrap and Status
Available before authentication (bootstrap) and after it (status).Workflow Management
Workflow Generation
Execution Management
Approval Management
Request Management
Catalog and Integrations
Integration Management
For credential safety, prefer the CLI’s interactive hidden prompts for secrets (
kestrel integrations connect <name>) over pasting tokens into an agent chat when a human is present.Client identification
Every request the MCP server makes carriesX-Kestrel-Client: mcp/<harness>/<version> from the MCP initialize handshake, and the CLI sends cli (or cli/agent/<name> when KESTREL_AGENT is set). Kestrel records this at signup and on every audited action so agent-driven usage is attributable.
Example Conversations
Creating a workflow:“Create a workflow that triggers when a PagerDuty alert fires, runs K8s RCA, and posts results to #incidents on Slack”The AI agent calls
generate_workflow, reviews the result, then create_workflow and activate_workflow.
Checking executions:
“Show me the last 5 failed workflow executions and what went wrong”The agent calls
list_workflows, list_executions, then get_execution for failed ones.
Approving a gate:
“Are there any pending approvals? Approve the production deployment one”The agent calls
list_pending_approvals, identifies the right one, and calls approve_step.
Connecting an integration:
“Connect our PagerDuty account to Kestrel”The agent calls
list_integrations to find the required credential fields, asks you for the values, then calls connect_integration and verifies with test_integration.