Skip to content

MCP server

The Keel MCP server is a thin Model Context Protocol wrapper over the Keel REST API. It lets an MCP-compatible client, such as Claude Desktop, Claude Code, or Cursor, read and act on your Keel workspace in natural language. Every tool maps to a real API endpoint and is scoped to your API key’s organization, so the MCP server grants no more access than the key already has.

The server runs over stdio and is launched by your MCP client. It needs one environment variable, a workspace API key (create one in the app under Integrations).

Terminal window
KEEL_API_KEY=your_key npx keelgrc-mcp

Configuration (environment):

Variable Required Default Purpose
KEEL_API_KEY Yes none A workspace API key from Integrations
KEEL_BASE_URL No https://app.keelgrc.com Your workspace origin

Most MCP clients take a command, arguments, and environment. For example, a client configuration entry looks like:

{
"mcpServers": {
"keel": {
"command": "npx",
"args": ["keelgrc-mcp"],
"env": { "KEEL_API_KEY": "your_key" }
}
}
}

Point your client at that entry, restart it, and the Keel tools become available to the agent.

Each tool maps one-to-one to a REST API capability:

Tool What it does
keel_whoami Connection test and the organization the key belongs to
keel_list_controls List controls with status and owner
keel_readiness Framework readiness summary
keel_list_tasks List open and completed tasks
keel_create_task Create a task
keel_list_webhooks List webhook subscriptions
keel_create_webhook Subscribe to events
keel_delete_webhook Unsubscribe a webhook
  • The MCP server holds no credentials of its own; it uses the API key you provide, and inherits that key’s workspace scope and permissions.
  • Because every call goes through the same API surface, the same tenant isolation applies. An agent can only see and change what the key already allows.
  • Treat the API key like a password. Rotate it under Integrations if it is exposed.