Skip to main content
The Kestrel MCP server exposes workflow management as tools that AI coding agents (Cursor, Claude Desktop, OpenAI Codex, etc.) can call directly. This lets you create, modify, and monitor workflows through conversational AI.

Prerequisites

Install the Kestrel CLI and authenticate:
brew install KestrelAI/tap/kestrel
kestrel auth kestrel_sk_...
The MCP server uses your CLI credentials stored at ~/.kestrel/config.json.

Setup

The MCP server runs as a subcommand of the CLI. Configure your AI tool to run kestrel mcp.

Cursor

Add to ~/.cursor/mcp.json:
{
  "mcpServers": {
    "kestrel": {
      "command": "kestrel",
      "args": ["mcp"]
    }
  }
}

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
  "mcpServers": {
    "kestrel": {
      "command": "kestrel",
      "args": ["mcp"]
    }
  }
}

OpenAI Codex

Add via the Codex CLI:
codex mcp add kestrel -- kestrel mcp
Or add to ~/.codex/config.toml:
[mcp_servers.kestrel]
command = "kestrel"
args = ["mcp"]
If kestrel isn’t on your PATH, use the full path (e.g., /usr/local/bin/kestrel).

Available Tools

Workflow Management

ToolDescription
list_workflowsList all workflows, optionally filtered by status
get_workflowGet workflow details including definition and trigger config
create_workflowCreate a new workflow from a definition
update_workflowUpdate a workflow’s name, description, or definition
delete_workflowDelete a workflow
activate_workflowActivate a workflow
pause_workflowPause an active workflow
duplicate_workflowCopy a workflow as a new draft

Workflow Generation

ToolDescription
generate_workflowGenerate a workflow from natural language
request_workflowSubmit a request to trigger a matching workflow. If nothing matches, returns pending_confirmation with a request_id
confirm_workflow_requestResolve a pending_confirmation request: confirm to send it to the platform team, or dismiss it. The agent asks you before calling this
list_suggested_workflowsGet AI-suggested workflows

Execution Management

ToolDescription
list_executionsList executions for a workflow
get_executionGet execution details including step results
cancel_executionCancel a running execution
get_workflow_statsAggregate execution statistics

Approval Management

ToolDescription
list_pending_approvalsList pending approval gates
approve_stepApprove a gate (with optional justification)
reject_stepReject a gate

Request Management

ToolDescription
list_unmatched_requestsList unmatched workflow requests
approve_workflow_requestApprove a request
reject_workflow_requestReject a request

Catalog and Integrations

ToolDescription
get_catalogAvailable signal triggers and action blocks
get_integrations_statusIntegration connection status

Integration Management

ToolDescription
list_integrationsList every integration with its type, required credential fields, and connection status
connect_integrationConnect a token or knowledge-source integration, or get the browser URL for OAuth integrations (GitHub, GitLab, Slack)
test_integrationTest a connected integration’s credentials
disconnect_integrationDisconnect a token integration or knowledge source
Kubernetes, AWS, and OCI use multi-step flows and must be connected with the CLI (kestrel integrations connect <name>) instead of MCP tools. For credential safety, prefer the CLI’s interactive hidden prompts for secrets rather than pasting tokens into an agent chat.

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. Requesting a change with no matching workflow:
“Request a Redis cluster for the cache layer”
The agent calls request_workflow. When no workflow matches, it gets back pending_confirmation and asks whether you want to send the request to your platform team; based on your answer, it calls confirm_workflow_request to file or dismiss it.