STAGINGThis is a preview of nitrograph.com. Actions here hit the production API.
Docs / the trusted interface for every API

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.

ClientPreferred pathAuto-install via npx nitrographNotes
Claude CodeOAuth connect (or plugin)✓claude mcp add --transport http nitrograph https://api.nitrograph.com/mcp, then /mcp → Authenticate.
Claude DesktopCustom 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.jsonmanualManual config only; no filesystem marker for auto-detect.
Zed~/.config/zed/settings.json via mcp-remotemanualZed doesn't speak HTTP MCP; bridge through stdio.
Hermes~/.hermes/config.yamlmanualNative streamable HTTP.
CodexOAuth connectmanualMCP config with https://api.nitrograph.com/mcp; OAuth on first use.
SuperGrok HeavyOAuth connect / URL keymanualSame MCP URL; OAuth if the host supports it, else ?key= or pair-in-chat.
Grok Botgrok.com/connectors (Custom)manualURL-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_discover
  • nitrograph_service_detail
  • nitrograph_invoke_service
  • nitrograph_report_outcome
  • nitrograph_report_pattern
  • nitrograph_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.