Client setup
Every MCP-compatible client can reach Nitrograph at:
https://api.nitrograph.com/mcp
Transport is streamable HTTP, stateless. No API key. Free tier is
IP-rate-limited; set NITROGRAPH_API_KEY for paid invocations on prepaid
credits (primary), or use pay-to-continue advertised in 402 responses when
you run out of quota.
Support matrix
This page is the single source of truth for what works where. If copy elsewhere (CLI wizard, marketing, tool descriptions) disagrees, this table wins.
| Client | Preferred path | Auto-install via npx nitrograph | Notes |
|---|---|---|---|
| Claude Code | OAuth connect (or plugin) | ✓ | claude mcp add --transport http nitrograph https://api.nitrograph.com/mcp, then /mcp → Authenticate. |
| Claude Desktop | Custom Connector on claude.ai | ✓ (stdio fallback) | Doesn't take remote HTTP in local JSON yet, connector syncs down. |
| Cursor | ~/.cursor/mcp.json | ✓ | Native streamable HTTP. |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | ✓ | Uses serverUrl, not url. |
| Cline (VS Code) | VS Code settings.json | manual | Manual config only; no filesystem marker for auto-detect. |
| Zed | ~/.config/zed/settings.json via mcp-remote | manual | Zed doesn't speak HTTP MCP; bridge through stdio. |
| Hermes | ~/.hermes/config.yaml | manual | Native streamable HTTP. |
| Codex | OAuth connect | manual | MCP config with https://api.nitrograph.com/mcp; OAuth on first use. |
| SuperGrok Heavy | OAuth connect / URL key | manual | Same MCP URL; OAuth if the host supports it, else ?key= or pair-in-chat. |
| Grok Bot | grok.com/connectors (Custom) | manual | URL-only connector; carry the key in the URL or pair in chat. |
The "Auto-install" column reflects what npx nitrograph detects on
disk and writes to. Anything marked manual is a fully supported
client; it just doesn't have a stable filesystem fingerprint for us to
detect, so you paste the config block below.
Below is the exact config per client. Restart the client after editing its config file.
Claude Code
Preferred plugin install:
/plugin marketplace add nitrographtech/claude-plugins
/plugin install nitrograph@nitrograph
This installs the MCP server, the Nitrograph skill instructions, and a
/discover command. If you only want the MCP server, add it manually:
claude mcp add --transport http nitrograph https://api.nitrograph.com/mcp
Store it globally with --scope user; without it the server is added
only to the current project's ~/.claude.json entry.
Codex
Install the Codex plugin marketplace entry from the nitrograph npm
repo:
codex plugin marketplace add nitrographtech/cli --sparse .agents/plugins
codex plugin marketplace upgrade nitrograph-plugins
Restart Codex, open the plugin directory, select Nitrograph Plugins, and install Nitrograph. The plugin provides the Nitrograph skill and MCP wiring so Codex knows to discover, inspect, then call services directly.
Claude Desktop
Claude Desktop doesn't take remote HTTP servers in its local JSON
config yet. Add Nitrograph as a
Custom Connector on
claude.ai instead; it syncs into the desktop app automatically.
Cursor
~/.cursor/mcp.json (or .cursor/mcp.json inside a workspace):
{
"mcpServers": {
"nitrograph": {
"type": "streamableHttp",
"url": "https://api.nitrograph.com/mcp"
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"nitrograph": {
"serverUrl": "https://api.nitrograph.com/mcp"
}
}
}
Windsurf uses serverUrl, not url.
Cline (VS Code)
VS Code settings JSON:
{
"cline.mcpServers": {
"nitrograph": {
"type": "streamableHttp",
"url": "https://api.nitrograph.com/mcp"
}
}
}
Zed
Zed doesn't speak HTTP MCP natively. Bridge through mcp-remote in
~/.config/zed/settings.json:
{
"context_servers": {
"nitrograph": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.nitrograph.com/mcp"]
}
}
}
Hermes
~/.hermes/config.yaml:
mcp_servers:
nitrograph:
url: https://api.nitrograph.com/mcp
Grok Bot
Grok's connector form takes a name and URL (no header editing). Two ways in:
With a key - put it in the URL:
https://api.nitrograph.com/mcp?key=ng_live_YOURKEY
Without a key - register the bare URL, then in chat tell the bot to
authenticate with Nitrograph. It calls nitrograph_authenticate, hands you a
short code and nitrograph.com/pair; approve once and it receives its own
spend-capped key. Save it into the connector URL afterward so every
conversation starts authenticated.
Treat a key-carrying connector URL as a secret.
OAuth connect (Claude Code, Codex, any MCP-spec host)
The hosted MCP implements the MCP authorization spec (OAuth 2.1 + PKCE, dynamic client registration, RFC 8414/9728 discovery). Hosts that support it need only the URL:
claude mcp add --transport http nitrograph https://api.nitrograph.com/mcp
Then authenticate from the host (/mcp → Authenticate in Claude Code): a
browser consent screen shows the app name and editable spend caps, and the
host receives short-lived tokens that refresh silently. No ng_live_ key
is ever issued to or stored by the client, and you can revoke the
connection any time from API Keys
(shown as "via app-name (OAuth)").
Verifying the connection
Once registered, your client should list the Nitrograph tools:
nitrograph_discovernitrograph_service_detailnitrograph_invoke_servicenitrograph_report_outcomenitrograph_report_patternnitrograph_session_status
Ask your agent to run nitrograph_discover with any query. It should
return a ranked, pre-formatted list. If you see 402 or a payment
challenge, that means you've exhausted the free tier - set
NITROGRAPH_API_KEY (see the quickstart) or settle
the challenge.