Skip to Content
FrameworksMCP + Curate-Me

MCP (Model Context Protocol)

The Curate-Me MCP server (@curate-me/mcp-server) exposes 50+ tools that let an MCP host (Claude Desktop, Cursor, OpenClaw, etc.) interact with the Curate-Me platform — check budgets, install skills, post to Slack, query shared memory. The server itself talks to the Curate-Me gateway, so any LLM calls it makes are governed.

Host config

{ "mcpServers": { "curate-me": { "command": "npx", "args": ["@curate-me/mcp-server"], "env": { "CM_API_KEY": "cm_sk_your_gateway_key", "CM_GATEWAY_URL": "https://api.curate-me.ai" } } } }

When the agent invokes a curate_* tool, the MCP server proxies the underlying request through ${CM_GATEWAY_URL} using X-CM-API-Key: ${CM_API_KEY}. Each request gets a X-CM-Request-Id header you can search for in the dashboard.

Full example + smoke test at examples/integrations/mcp/.

Auto-injection inside managed runners

When an OpenClaw / Claude Code session runs inside a Curate-Me managed runner container, CM_API_KEY and CM_GATEWAY_URL are auto-injected by the runner control plane. The agent doesn’t need to know its own credentials — they’re scoped to the runner session and revoked on session close.

Supported versions

SurfaceVersion
MCP protocol2025-06-18 (stdio transport)
@curate-me/mcp-serverlatest (npm)
Claude Desktop1.0+
Cursor0.45+
OpenClawv2026.4.2+

Known limitations

  • Streaming tools: SSE / streaming tool responses pass through unmodified. The cost-record event happens at stream-close, so a long stream’s cost won’t appear in the dashboard until it ends.
  • Admin-scoped tools: the curate_dashboard_* family requires a runner-tier or admin-scoped key. Non-admin keys see 403 on those tools (but the rest still work).
  • Non-OpenAI tool payloads: the gateway expects OpenAI’s tool format. If you need Anthropic-native tools, call /v1/anthropic/v1/messages directly rather than going through the MCP server’s OpenAI-shaped tool surface.
  • Bidirectional streams: the WebSocket / HTTP-streamable transport of MCP is supported by @curate-me/mcp-server itself; the gateway layer is stateless and only sees discrete LLM calls.