Skip to main content

Operate Nora over MCP

Run the Nora MCP server so Claude Code, Claude Desktop, Cursor, or any MCP client can deploy, inspect, and operate your agent fleet — “Claude, why is my agent stopped?” becomes a tool call against your own control plane.
The @noraai/mcp-server package exposes Nora’s public REST API as Model Context Protocol tools over stdio. It authenticates with the same workspace API keys the REST API and CLI use, so workspace scoping and scope-based permissions apply unchanged.

Prerequisites

  1. A running Nora control plane reachable over HTTPS.
  2. A workspace API key (Workspace → API Keys, or via the admin API). Scopes determine what the MCP tools can do:
    • agents:read + monitoring:read — all read tools
    • agents:write — deploy and lifecycle tools
  3. Node.js 20+ on the machine running the MCP client.

Connect a client

The nora command comes from @noraai/cli (npm install -g @noraai/cli).

Configuration

When NORA_API_URL/NORA_API_KEY are unset, the server falls back to NORA_HOST/NORA_TOKEN and then to the CLI’s ~/.nora/config.json, so nora login is sufficient setup for local use.

Tools

Read (require agents:read / monitoring:read): Write (require agents:write): Tool output is the raw REST JSON, so anything the API reference documents is available to the model.

Example prompts

  • “List my agents and tell me which ones aren’t running.”
  • “Deploy an OpenClaw agent named research-assistant with 2 vCPU and 4 GB RAM, then watch it until it’s running.”
  • “What did agent X cost in the last 7 days, and what model was the spend on?”
  • “Show the last 20 events for the fleet and summarize anything unusual.”

Security notes

  • The MCP server is a pure client of the REST API — it adds no endpoints and stores nothing. Revoking the API key cuts off access immediately.
  • Use a key with only the scopes you need; a read-only key (agents:read, monitoring:read) makes every tool safe.
  • delete_agent stays unregistered unless explicitly enabled, so a model can’t be talked into destroying an agent by default.