The-Snip
Team knowledge base for code snippets, API calls and docs. Agents search and file items over MCP; humans review what becomes canon.
Documentation
How it works
- Your agent searches the base mid-task (search_base) and gets the team's approved answers.
- It trusts what it finds — only human-approved items are canon.
- When it learns something new it files it back (create_snippet / create_api / create_doc) — every write lands in review.
- 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
- Create a workspace at the-snip.com — free, no card.
- Generate an API key in Settings → API keys.
- 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):
| Harness | Config file | Header auth | Watch out for |
|---|---|---|---|
| Claude Code | .mcp.json / claude mcp add | Yes | .mcp.json entries need "type": "http" — a url with no type is a config error |
| Cursor | .cursor/mcp.json | Yes | ${env:VAR} interpolation works in headers — keep the key out of the file |
| OpenClaw | ~/.openclaw/openclaw.json | Yes | set "transport": "streamable-http"; env interpolation is undocumented — paste the key |
| Hermes (Nous) | ~/.hermes/config.yaml | Yes | allowed_tools can expose just search_base for read-only agents |
| VS Code Copilot | .vscode/mcp.json | Yes | top-level key is "servers", not "mcpServers" |
| OpenAI Codex CLI | ~/.codex/config.toml | Yes | bearer_token_env_var sends the env value as a Bearer header |
| Gemini CLI | ~/.gemini/settings.json | Yes | the field is "httpUrl" — "url" means SSE in Gemini CLI |
| Cline | Cline panel / ~/.cline/mcp.json | Yes | "type": "streamableHttp" must be explicit — omitting it falls back to legacy SSE |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | Yes | the URL field is "serverUrl", not "url" |
| Continue | config.yaml | Yes | headers go under requestOptions.headers, not a bare headers key |
| Zed | settings.json | Yes | servers live under "context_servers" |
| Goose (Block) | ~/.config/goose/config.yaml | Yes | type 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
| Tool | What it does | Behavior |
|---|---|---|
| search_base | Search 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_item | Fetch 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_collections | List 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_snippet | File 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_api | File 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_doc | File 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_item | Correct 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_collection | Create 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.
Keep exploring
More use cases
- An MCP snippet server for Claude Code
- Connect Cursor to a team knowledge base
- A shared API request library for your team
- A reviewed team memory for Claude Code
- Team snippets in Cursor
- Shared memory for AI coding agents — reviewed, not auto-captured
Snippets by language
- Snippets by language
- Python snippets
- TypeScript snippets
- SQL snippets
Alternatives
- Alternatives
- GitHub Gists alternative
- Pieces alternative
- Notion alternative
Head-to-head comparisons
- Head-to-head comparisons
- GitHub Gists vs Pieces
- GitHub Gists vs Notion
- massCode vs Pieces
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.
Start freeSee pricing