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 install —npx fetches it on first use.
Claude Code (recommended)
NOUS_API_KEY at install — it’s stored in your OS keychain, never plaintext. Ten tools become callable in every Claude Code session.
Codex
Claude Desktop
Cursor
Any MCP-compatible client
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.n8n cloud
Add an MCP Client Tool node and configure it:- Server Transport →
HTTP Streamable - Endpoint URL →
https://mcp.opennous.cloud/mcp - Authentication →
Bearer Auth, token = your Nous API key
Claude Code (remote)
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
| Variable | Required | Default | Purpose |
|---|---|---|---|
NOUS_API_KEY | yes | — | Workspace API key. Create at Settings → API Keys. |
NOUS_API_URL | no | https://api.opennous.cloud | Override for self-hosted. |
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
- Start of a task →
get_contextwith the rightintentto get a ranked, budget-fit context block - Action happens →
recordan observation (an email was sent, a state changed) - Produced something durable? →
save_notethe brief / transcript / prep onto the contact so the record builds across meetings - Need a past detail? →
search_notesto pull the relevant passage instead of dumping whole documents - Stale-looking fact? →
verifybefore acting on it - End of session →
attentionto 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 atapps/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: