Skip to main content
The Nous MCP server exposes the v2 customer graph as ten tools any MCP-compatible client can call. Your agent gets engineered, epistemics-tagged context, never raw rows. It runs two ways on the same code and the same tools. Locally as a stdio process (npx) for clients on your machine — Claude Code, Claude Desktop, Cursor, Codex, self-hosted n8n. Or hosted over Streamable HTTP at https://mcp.opennous.cloud/mcp for cloud clients that can’t launch a local process, such as n8n cloud. The MCP is one of two ways Nous exposes the same customer graph. Reach for it when the right call is reasoned at runtime. Use the REST API instead when a workflow runtime already knows the parameters (n8n filtering a list, a form intake creating a lead, a job patching sent_at mid-loop). Both surfaces sit on the same customer graph, so a write through one is visible to the other.

Install in 30 seconds

The server is published on npm. No clone, no global installnpx fetches it on first use.
/plugin marketplace add NousC/nous
/plugin install nous@nous-plugins
You’ll be prompted for your NOUS_API_KEY at install — it’s stored in your OS keychain, never plaintext. Ten tools become callable in every Claude Code session.

Codex

# ~/.codex/config.toml
[mcp_servers.nous]
command = "npx"
args = ["-y", "@opennous/mcp"]
env = { NOUS_API_KEY = "YOUR_API_KEY" }

Claude Desktop

// ~/Library/Application Support/Claude/claude_desktop_config.json    (macOS)
// %APPDATA%\Claude\claude_desktop_config.json                        (Windows)
{
  "mcpServers": {
    "nous": {
      "command": "npx",
      "args": ["-y", "@opennous/mcp"],
      "env": { "NOUS_API_KEY": "YOUR_API_KEY" }
    }
  }
}

Cursor

// ~/.cursor/mcp.json   (or .cursor/mcp.json in a project for project-scoped)
{
  "mcpServers": {
    "nous": {
      "command": "npx",
      "args": ["-y", "@opennous/mcp"],
      "env": { "NOUS_API_KEY": "YOUR_API_KEY" }
    }
  }
}

Any MCP-compatible client

{
  "mcpServers": {
    "nous": {
      "command": "npx",
      "args": ["-y", "@opennous/mcp"],
      "env": { "NOUS_API_KEY": "YOUR_API_KEY" }
    }
  }
}

Hosted server (remote HTTP)

Cloud clients that can’t launch a local process — n8n cloud above all, and any client that takes a remote MCP URL — connect to the hosted Nous MCP server over Streamable HTTP. Same ten tools, same customer graph; a write through one transport is visible to the other. Authenticate per request with your workspace API key as a Bearer token.
Endpoint   https://mcp.opennous.cloud/mcp
Auth       Authorization: Bearer YOUR_API_KEY

n8n cloud

Add an MCP Client Tool node and configure it:
  • Server TransportHTTP Streamable
  • Endpoint URLhttps://mcp.opennous.cloud/mcp
  • AuthenticationBearer Auth, token = your Nous API key

Claude Code (remote)

claude mcp add --transport http nous https://mcp.opennous.cloud/mcp --header "Authorization: Bearer YOUR_API_KEY"
Clients that accept only a bare URL with no auth header can pass the key as a query parameter — https://mcp.opennous.cloud/mcp?key=YOUR_API_KEY — but prefer the Bearer header, since URLs can land in logs.

The ten tools

get_context

Engineered context for a task about one entity — the headline call before drafting outreach or prepping a meeting.

get_account

The full Account Record — every claim with epistemics + recent timeline.

record

Record what happened. You observe; Nous derives the claims.

query

Retrieve + summarise a corpus of activity across many people.

attention

What needs your attention — accounts gone quiet, facts decayed.

verify

Re-check one claim before acting on it.

get_gtm_profile

The user’s own GTM profile — ICP, market, pricing, competitors.

update_gtm_profile

Write back a lasting change to a GTM section — it evolves, keeping history.

save_note

Keep a meeting brief, transcript, or note on a contact’s record.

search_notes

Semantic search across saved notes & documents — pull the relevant passage.
get_workspace_facts is still registered as a back-compat alias of get_gtm_profile; new integrations should call get_gtm_profile.

Environment

VariableRequiredDefaultPurpose
NOUS_API_KEYyesWorkspace API key. Create at Settings → API Keys.
NOUS_API_URLnohttps://api.opennous.cloudOverride for self-hosted.
The Claude Code plugin uses userConfig to prompt for these at install and store them in your OS keychain — never in plaintext or shell history.

How agents typically use it

  1. Start of a taskget_context with the right intent to get a ranked, budget-fit context block
  2. Action happensrecord an observation (an email was sent, a state changed)
  3. Produced something durable?save_note the brief / transcript / prep onto the contact so the record builds across meetings
  4. Need a past detail?search_notes to pull the relevant passage instead of dumping whole documents
  5. Stale-looking fact?verify before acting on it
  6. End of sessionattention to surface what to work next
get_gtm_profile is the meta-tool: any question about the user’s own business (ICP, pricing, market) goes here, never to query/get_account. When the business itself changes (repriced, moved upmarket, sharpened positioning), update_gtm_profile writes the change back so the context stays current.
record vs save_note. record logs that something happened (an email, a meeting, a state change) — Nous derives claims from it. save_note keeps the document itself (a brief, a transcript, prep) on the contact, append-only and dated. Use both: record the meeting happened, save_note the notes you took.

Source + versioning

The server lives at apps/mcp in NousC/nous. Each release is published to npm as @opennous/mcp@<semver> — pin a version in your config if you need reproducible installs:
NOUS_API_KEY=... npx -y @opennous/mcp@0.16.0