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
- 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:
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 mcp add --transport http the-snip https://the-snip.com/mcp \ --header "Authorization: Bearer snip_YOUR_WORKSPACE_KEY"
{
"mcpServers": {
"the-snip": {
"url": "https://the-snip.com/mcp",
"headers": {
"Authorization": "Bearer ${env:THESNIP_API_KEY}"
}
}
}
}{
"mcp": {
"servers": {
"the-snip": {
"url": "https://the-snip.com/mcp",
"transport": "streamable-http",
"headers": {
"Authorization": "Bearer snip_YOUR_WORKSPACE_KEY"
}
}
}
}
}mcp_servers:
the-snip:
url: "https://the-snip.com/mcp"
headers:
Authorization: "Bearer snip_YOUR_WORKSPACE_KEY"{
"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}"
}
}
}
}[mcp_servers.the-snip] url = "https://the-snip.com/mcp" bearer_token_env_var = "THESNIP_API_KEY"
{
"mcpServers": {
"the-snip": {
"httpUrl": "https://the-snip.com/mcp",
"headers": {
"Authorization": "Bearer $THESNIP_API_KEY"
}
}
}
}{
"mcpServers": {
"the-snip": {
"type": "streamableHttp",
"url": "https://the-snip.com/mcp",
"headers": {
"Authorization": "Bearer snip_YOUR_WORKSPACE_KEY"
}
}
}
}{
"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:
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
{"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".
{"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.
{"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.