MCP server

Connect your agent to your team's base

The-Snip hosts an MCP server at https://the-snip.com/mcp. Your agent searches the team's snippets, API calls and docs mid-task — and files what it learns back into the base. Every agent write lands in review; a human approves what becomes canon.

Reads are free — any agent can search the base on the Free plan. Agent writes (create and update) need Pro & Team, $8/user/mo. Listed in the official MCP registry as com.the-snip/mcp.

How it works

  1. Your agent searches the base mid-task (search_base) and gets the team's approved answers.
  2. It trusts what it finds — only human-approved items are canon.
  3. When it learns something new it files it back (create_snippet / create_api / create_doc) — every write lands in review.
  4. A human approves it in the review queue; the base stays trustworthy.

Hand one of these files to any AI agent — the combined file covers MCP + REST; the MCP file is just this page's contract:

// the-snip-for-agents.md — paste into your CLAUDE.md
Download the agent instructions file
// the-snip-mcp-setup.md — MCP-only setup, for your agent's context
Download the MCP setup file

How to connect

  1. Create a workspace at the-snip.com — free, no card.
  2. Generate an API key in Settings → API keys.
  3. Add the server to your client with one of the configs below.
// Claude Code — one command
claude mcp add --transport http the-snip https://the-snip.com/mcp \
  --header "Authorization: Bearer snip_YOUR_WORKSPACE_KEY"
// Cursor — .cursor/mcp.json
{
  "mcpServers": {
    "the-snip": {
      "url": "https://the-snip.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:THESNIP_API_KEY}"
      }
    }
  }
}
// OpenClaw — ~/.openclaw/openclaw.json
{
  "mcp": {
    "servers": {
      "the-snip": {
        "url": "https://the-snip.com/mcp",
        "transport": "streamable-http",
        "headers": {
          "Authorization": "Bearer snip_YOUR_WORKSPACE_KEY"
        }
      }
    }
  }
}
// Hermes (Nous Research) — ~/.hermes/config.yaml
mcp_servers:
  the-snip:
    url: "https://the-snip.com/mcp"
    headers:
      Authorization: "Bearer snip_YOUR_WORKSPACE_KEY"
// VS Code (Copilot agent mode) — .vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "thesnip-api-key",
      "description": "The-Snip workspace API key (snip_...)",
      "password": true
    }
  ],
  "servers": {
    "the-snip": {
      "type": "http",
      "url": "https://the-snip.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:thesnip-api-key}"
      }
    }
  }
}
// OpenAI Codex CLI — ~/.codex/config.toml
[mcp_servers.the-snip]
url = "https://the-snip.com/mcp"
bearer_token_env_var = "THESNIP_API_KEY"
// Gemini CLI — ~/.gemini/settings.json
{
  "mcpServers": {
    "the-snip": {
      "httpUrl": "https://the-snip.com/mcp",
      "headers": {
        "Authorization": "Bearer $THESNIP_API_KEY"
      }
    }
  }
}
// Cline — ~/.cline/mcp.json
{
  "mcpServers": {
    "the-snip": {
      "type": "streamableHttp",
      "url": "https://the-snip.com/mcp",
      "headers": {
        "Authorization": "Bearer snip_YOUR_WORKSPACE_KEY"
      }
    }
  }
}
// any MCP client (.mcp.json)
{
  "mcpServers": {
    "the-snip": {
      "url": "https://the-snip.com/mcp",
      "headers": { "Authorization": "Bearer snip_YOUR_KEY" }
    }
  }
}

Works with

Any client that speaks Streamable HTTP and can send an Authorizationheader connects today. Config syntax per harness, verified against each project's official docs (July 2026):

HarnessConfig fileHeader authWatch out for
Claude Code.mcp.json / claude mcp addYes.mcp.json entries need "type": "http" — a url with no type is a config error
Cursor.cursor/mcp.jsonYes${env:VAR} interpolation works in headers — keep the key out of the file
OpenClaw~/.openclaw/openclaw.jsonYesset "transport": "streamable-http"; env interpolation is undocumented — paste the key
Hermes (Nous)~/.hermes/config.yamlYesallowed_tools can expose just search_base for read-only agents
VS Code Copilot.vscode/mcp.jsonYestop-level key is "servers", not "mcpServers"
OpenAI Codex CLI~/.codex/config.tomlYesbearer_token_env_var sends the env value as a Bearer header
Gemini CLI~/.gemini/settings.jsonYesthe field is "httpUrl" — "url" means SSE in Gemini CLI
ClineCline panel / ~/.cline/mcp.jsonYes"type": "streamableHttp" must be explicit — omitting it falls back to legacy SSE
Windsurf~/.codeium/windsurf/mcp_config.jsonYesthe URL field is "serverUrl", not "url"
Continueconfig.yamlYesheaders go under requestOptions.headers, not a bare headers key
Zedsettings.jsonYesservers live under "context_servers"
Goose (Block)~/.config/goose/config.yamlYestype is "streamable_http" with a "uri" field

ChatGPT and claude.ai custom connectors now work too — over OAuth. Add a custom connector pointed at https://the-snip.com/mcp and your browser runs a one-time OAuth sign-in: log in to The-Snip, pick a workspace, and click Allow — no key to paste. The connector then reads and proposes (in-review) items over MCP, scoped to the workspace you chose. Revoke it any time under Settings → API keys → Connected apps.

Two setup notes for OAuth connectors. ChatGPT requires Developer mode (Settings → Connectors → Advanced) and shows an “unverified” warning during connect — that is expected for any custom connector. Free workspaces connect too — reads are free; agent writes (create and update) need Pro & Team. The static Authorization: Bearer snip_… header path above is unchanged and still the simplest option for Claude Code, Codex, and mcp-remote.

Stdio-only clients can bridge with mcp-remote, configured as a stdio server:

// stdio-only clients — mcp-remote bridge
npx -y mcp-remote https://the-snip.com/mcp --header "Authorization: Bearer snip_YOUR_WORKSPACE_KEY"

Eight tools

ToolWhat it doesBehavior
search_baseSearch the team's reviewed base of code snippets, saved API calls and Markdown docs. ALWAYS search before creating — near-duplicates rot a shared base. Full-text, not semantic: 2-4 keywords work best; if results are empty, retry with synonyms. An empty query returns the most recent items. Returns full items; take ids from here for get_item and update_item. Free on every plan.read-only · free
get_itemFetch one item in full by id. Take ids from search_base results — never guess them (an id outside your workspace returns 404). Free on every plan.read-only · free
list_collectionsList the workspace's collections (id and name). Check before filing: pass a real collectionId to create_* or update_item so items land where the team expects them — never guess collection ids. Free on every plan.read-only · free
create_snippetFile reusable code worth keeping: a hook, a helper, a fix the team will hit again. Search first to avoid duplicates. Include description (what and when) and sampleOutput (what correct output looks like — future agents rely on it). Lands in review: a human approves before it becomes canon; "in review" is expected, do not re-submit. Needs the paid plan.lands in review (201) · paid
create_apiFile a working API request — the method, URL, headers and body that actually worked. Search first to avoid duplicates. Use sampleResponse to show what a good response looks like. Lands in review for human approval; do not re-submit while pending. Needs the paid plan.lands in review (201) · paid
create_docFile prose knowledge: runbooks, how-tos, architecture notes, gotchas. The body is Markdown; [[wikilinks]] resolve to other docs in the workspace. Search first to avoid duplicates. Lands in review for human approval. Needs the paid plan.lands in review (201) · paid
update_itemCorrect or extend an existing item when a search result is outdated or incomplete. Patch by id from search_base — never guess ids (404 if not visible). Accepts any create field, all optional; the update re-gates the item to review. Also how you move an item into a collection: pass collectionId from list_collections. Needs the paid plan.re-gated to review · paid
create_collectionCreate a collection to organize items. Check list_collections first — do not create near-duplicates of existing collections. Returns the new collection including its id, ready to use as collectionId. Needs the paid plan.201 — no review (organizational metadata) · paid

Agents propose, humans approve

Every agent write — create or update — lands with status "in review", and updating an approved item re-gates it. Agents structurally cannot set status: the input schemas reject unknown fields, so a smuggled status: "approved" field comes back as a 400, never a silent pass. A human approves items in the review queue, and only approved items are canon. That gate is what makes the base trustworthy enough to serve as a reviewed team memory for Claude Code — see how agents read and write The-Snip.

Troubleshooting

// 401 — missing or invalid key
{"error":{"code":"unauthorized","message":"Missing API key"}}
{"error":{"code":"unauthorized","message":"Invalid API key"}}

Send the key as Authorization: Bearer snip_.... "Invalid API key" means the key was revoked or mistyped — generate a fresh one in Settings → API keys. A 401 from /mcp also carries WWW-Authenticate: Bearer error="invalid_token".

// 403 — write from a Free workspace
{"error":{"code":"forbidden","message":"Agent writes need the Pro & Team plan — reads are free. Upgrade at https://the-snip.com/upgrade"}}

Reads (search_base, get_item, list_collections) are free on every plan; agent writes — create and update — are on the paid plan. Upgrade at the-snip.com/upgrade and the same key starts writing.

// 405 — GET probe on the endpoint
{"error":{"code":"method_not_allowed","message":"MCP is POST-only (Streamable HTTP). See https://the-snip.com/settings/api-keys for setup."}}

The response carries Allow: POST. The endpoint speaks Streamable HTTP only — clients on the older SSE transport open with a GET and see this; switch the server entry to the Streamable HTTP type shown above.

Start your base — free.

Free: 25 items, no card. Pro & Team: $8/user/mo — unlimited items, REST API, review workflow, and the hosted MCP server.