Nora

io.github.solomon2773Published by GitHub account solomon2773v0.1.4Updated Oct 24, 2026

Operate self-hosted OpenClaw and Hermes agent fleets on Docker or Kubernetes from MCP clients.

Overview

AI-generated overview

MCP server for Nora, a self-hosted AI agent ops platform, letting an assistant inspect and control an agent fleet on Docker or Kubernetes.

What you can do
  • List and inspect agents, their versions and per-agent statistics
  • Read fleet status, platform metrics, agent metrics and metric summaries
  • Review monitoring events and per-agent cost figures
  • Deploy agents and start, stop, restart or redeploy them
  • Delete an agent, only when destructive tools are explicitly enabled
When to use it
Useful when you run a self-hosted Nora control plane and want to operate its OpenClaw or Hermes agent fleet in natural language from Claude Code, Claude Desktop, Cursor or another MCP client, instead of clicking through the dashboard or CLI.
Requirements
Runs locally over stdio via npx from the @noraai/mcp-server package (Node.js), or as a Docker container. Needs NORA_API_URL pointing at your Nora backend and a Nora workspace API key in NORA_API_KEY; both fall back to NORA_HOST/NORA_TOKEN and then the Nora CLI config at ~/.nora/config.json. Network access to that deployment is required.
Before you install
The API key grants access to your Nora workspace with the scopes it carries: agents:write allows deploy and lifecycle changes, and agents:read plus monitoring:read cover the read tools. Destructive tools such as delete_agent are off unless NORA_MCP_ALLOW_DESTRUCTIVE is set to true. Tool requests and the key go directly to the deployment named in NORA_API_URL, so point it only at a trusted backend.

Installation

In SourceWeft

  1. Open Nora in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@noraai/mcp-server

MCP server for Nora, the self-hosted AI agent ops platform. Connect Claude Code, Claude Desktop, Cursor, or any Model Context Protocol client to your Nora control plane and operate your agent fleet in natural language: deploy runtimes, start/stop/restart them, tail fleet status, and pull metrics, events, and per-agent cost.

bash
claude mcp add nora \  --env NORA_API_URL=https://nora.example.com \  --env NORA_API_KEY=nora_xxxxxxxx \  -- npx -y @noraai/mcp-server

The repository also ships a Claude Code plugin manifest under claude-plugin/. Validate and load it from a Nora checkout with:

bash
claude plugin validate ./mcp-server/claude-plugin --strictclaude --plugin-dir ./mcp-server/claude-plugin

Or in any MCP client's JSON config:

json
{  "mcpServers": {    "nora": {      "command": "npx",      "args": ["-y", "@noraai/mcp-server"],      "env": {        "NORA_API_URL": "https://nora.example.com",        "NORA_API_KEY": "nora_xxxxxxxx"      }    }  }}

Docker

Build the same stdio server as a non-root container:

bash
docker build -t nora-mcp ./mcp-serverdocker run --rm -i \  -e NORA_API_URL=https://nora.example.com \  -e NORA_API_KEY=nora_xxxxxxxx \  nora-mcp

MCP clients should keep stdin open and pass secrets through environment variables; the image does not persist credentials or other state.

Auth

Uses Nora workspace API keys (create one under Workspace → API Keys). Scopes apply unchanged:

  • agents:read + monitoring:read → read tools
  • agents:write → deploy/lifecycle tools

Fallbacks: NORA_HOST/NORA_TOKEN env vars, then the Nora CLI's ~/.nora/config.json — so after nora login, nora mcp (or plain npx @noraai/mcp-server) just works.

Tools

Read: list_agents, get_agent, get_agent_stats, get_agent_versions, get_platform_metrics, get_fleet_status, list_monitoring_events, get_agent_metrics, get_agent_metrics_summary, get_agent_cost.

Write: deploy_agent, start_agent, stop_agent, restart_agent, redeploy_agent — and delete_agent, which is only registered when NORA_MCP_ALLOW_DESTRUCTIVE=true.

Tool output is the raw Nora REST JSON; the server is a pure API client and stores nothing.

Full guide: docs.norafleet.ai/guides/mcp-server

Privacy Policy

The Nora MCP connector runs locally and does not collect telemetry or persist credentials, tool inputs, or API responses. It sends each tool request and the configured API key directly to the Nora deployment identified by NORA_API_URL; no separate connector service or advertising network receives that data.

The connector retains no data after its process exits. Your Nora operator controls the storage and retention of account, agent, log, metric, and integration data in that deployment, and connected providers may apply their own policies when Nora invokes them. See the full Nora Privacy Policy or contact [email protected].

Contributing

From the repository root, run npm run contributor:setup -- --scope mcp-server once, then npm run contributor:check -- mcp-server. Keep tool schemas, safety annotations, README tool lists, and mocked transport tests synchronized with the public REST endpoints.

If Nora is useful to you, a ⭐ on the GitHub repo helps other self-hosters find it.

License

Apache-2.0

Source: mcp-server/README.md at commit 358b1be

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.4LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts