Primitive's hosted MCP server at mcp.primitive.tech — connect Claude, ChatGPT, Codex, Cursor, Copilot, and Gemini over OAuth.
Primitive MCP is Primitive's official Model Context Protocol server. It's a remote MCP server with OAuth that lets AI clients securely access your Primitive resources — hardware, jobs, projects, files, and billing — at:
https://mcp.primitive.tech/mcpThe server is hosted by Primitive. There is nothing to install or self-host.
Primitive MCP only accepts connections from AI clients on the approved list below. Primitive does not audit third-party client source code — review each vendor's own security documentation before connecting any client with mcp:write.
Enforcement status: Allowlist enforcement on dynamic client registration is tracked separately and is not yet active in the deployed backend. Until enforcement ships, the policy here describes intended behavior; any public client with a loopback redirect URI can currently register. Do not rely on the allowlist as a security boundary until enforcement is deployed.
If you need a client not listed above (Windsurf, Zed, JetBrains, Amazon Q, Warp, Continue, Cline, goose, Replit, LibreChat, Mistral Le Chat, Microsoft Copilot Studio, or anything else from the official MCP clients index), email hello@primitive.tech with the client name and version.
If Anthropic, OpenAI, GitHub, or another vendor publishes a security advisory for a specific client version, follow their guidance. Primitive does not maintain per-version trust lists — treat client updates like any dependency update and apply security patches promptly.
Most tools on Primitive MCP require one of two scopes:
mcp:read — list and inspect organizations, projects, hardware, jobs, files, and billing data. Safe to grant broadly for general-purpose agents. Org admins should note that billing and invoice tools live under mcp:read and return sensitive financial data — see Available MCP tools — Billing before granting mcp:read to cloud-hosted or web-browsing agents.mcp:write — modify resources: rename hardware, update jobs, cancel job runs, change member roles, revoke invitations, delete files.A small set of utility tools (health, whoami) are unscoped — they don't require either mcp:read or mcp:write. Everything else is gated by exactly one scope.
Grant mcp:read freely. Require human confirmation before any mcp:write action. See Security best practices for the full guidance.
Every setup flow ends with an OAuth consent screen hosted at mcp.primitive.tech:
mcp.primitive.tech. Any other domain means you may be on a phishing page — close the tab.mcp:read, mcp:write, or both).The token is bound to your user and the specific client. You can revoke it at any time from Managing connected applications.
Snippets below use https://mcp.primitive.tech/mcp as the server URL. On first tool call, every client opens the First connect consent screen in your browser.
Claude Code is Anthropic's official coding CLI.
claude mcp add --transport http primitive https://mcp.primitive.tech/mcpThen in a session, type /mcp to see the server. If your Claude Code version doesn't accept --transport http, run claude mcp add --help for the current flag form.
Custom connectors require Pro, Max, Team, or Enterprise on Claude Desktop (verify against Anthropic's current pricing).
Primitive and URL to https://mcp.primitive.tech/mcp. Save.Connectors require Pro, Team, or Enterprise on Claude.ai (verify against Anthropic's current pricing).
Primitive and URL to https://mcp.primitive.tech/mcp. Save.Custom connectors require Pro or Plus on ChatGPT with Developer Mode enabled (verify against OpenAI's current pricing).
Primitivehttps://mcp.primitive.tech/mcpOAuthOpenAI changes this UI frequently. If you don't see Connectors, check OpenAI's help center for the current location of Developer Mode on your account tier.
OpenAI's Codex ships as both a CLI and an IDE extension. Both read ~/.codex/config.toml:
[mcp_servers.primitive]
url = "https://mcp.primitive.tech/mcp"Then start Codex:
codexCodex's MCP support is evolving. CLI subcommand names and config keys have changed in past releases — if the snippet doesn't work as written, check the current Codex docs.
Requires Cursor 0.46 or later. (Earlier versions may need "type": "http" inside the server block.)
Open .cursor/mcp.json in your project root (or ~/.cursor/mcp.json to make it global):
{
"mcpServers": {
"primitive": {
"url": "https://mcp.primitive.tech/mcp"
}
}
}Reload Cursor (Cmd/Ctrl+Shift+P → Developer: Reload Window).
Cmd/Ctrl+Shift+P).MCP: Add Server → choose HTTP.https://mcp.primitive.tech/mcp and Name to Primitive. Save.MCP: List Servers → select Primitive → Start Server → complete the URL-handler OAuth.To call Primitive tools, switch Copilot Chat to Agent mode (the mode selector in the chat input) and ask in natural language — for example, List my Primitive projects. MCP servers in Copilot are not addressed with @mentions.
The GitHub Copilot CLI is on GitHub's MCP roadmap, but the subcommand surface for adding MCP servers has not stabilized. Run gh copilot --help for the current subcommand name and pass:
https://mcp.primitive.tech/mcpSee GitHub's official MCP docs for the canonical configuration steps.
This is the highest-blast-radius MCP configuration in Primitive. An org-level setting applies to every Copilot coding agent run for every developer in the organization. Double-check the URL before saving.
The Copilot coding agent runs in GitHub's cloud, so configuration happens on the GitHub side — there is no local config to edit. Requires repository or organization admin rights.
Primitivehttps://mcp.primitive.tech/mcpOAuthBecause the cloud agent can't open a browser, an authorized user has to pre-authorize the connection manually: open the URL GitHub provides in the agent's settings UI (or its first run log), sign in to Primitive, and approve. The OAuth token is bound to the Primitive account of the user who completes the consent screen — for org-level configs, use a shared service or bot account so individual team-member changes don't break the integration. Until pre-authorization is complete, the first tool call from the agent fails with 401 Unauthenticated.
Gemini CLI connects via the mcp-remote shim. Open ~/.gemini/settings.json (create if missing):
{
"mcpServers": {
"primitive": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.primitive.tech/mcp"]
}
}
}When Gemini CLI ships native HTTP transport, this snippet will be updated.
For Primitive contributors only. End users should pick a supported client instead.
Requires the allowlist deployment. The
mcp-inspectorpre-registration ships with Primitive's MCP OAuth allowlist deployment. Until that's live in the environment you're targeting, this flow fails with a client-rejection error.
mcp-inspector is the official MCP debugger. Primitive maintains a known client_id value of mcp-inspector for use against per-developer cloudflared tunnels.
npx @modelcontextprotocol/inspectorIn the Inspector UI:
HTTPhttps://mcp.<username>.primitive.tech/mcpmcp-inspector (case-sensitive)http://localhost/... for its redirect target, change it to http://127.0.0.1/... — the pre-registered redirect URIs are 127.0.0.1-only.See development/ in the monorepo for cloudflared tunnel setup.
mcp:read / mcp:write.mcp:write.