Snap
Uses Cloudflare Workers AI as a routing/decision model endpoint to score and select the best skill for an agent task.
Stores skill content in MinIO object storage and returns time-limited signed URLs for downloading matched skills.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Snap
One skill library for all your AI agents, with on-demand skill discovery.

Watch the launch video · Music and sound credits
Current limits: 64 skills in the dashboard; each skill is a single SKILL.md. Associated scripts, assets and multi-file packages are not bundled.
Quick start
Requires Git and a running Docker installation with Compose. No host Node.js or Python install is needed. These are the three shell commands; after copying .env, configure the model and replace JWT_SECRET before starting the stack. The first image build downloads dependencies and can take several minutes.
git clone https://github.com/sanjaykannan8/Snap.git && cd Snap
cp -n .env.example .env
# Edit .env as described below before running the third command.
docker compose up -d --buildgit clone https://github.com/sanjaykannan8/Snap.git; if ($LASTEXITCODE -eq 0) { Set-Location Snap }
if (!(Test-Path .env)) { Copy-Item .env.example .env }
# Edit .env as described below before running the third command.
docker compose up -d --buildIf already cloned, enter your existing Snap directory instead of cloning again. Keep an existing .env and edit its settings. Install Docker Desktop on Windows/macOS, or Docker Engine with Compose on Linux. Check docker info if the daemon is unavailable.
Configure the model
Open .env in your editor. Replace JWT_SECRET with a random secret, then choose one routing provider:
# Cloudflare Workers AI
ROUTING_PROVIDER=cloudflare
CLOUDFLARE_ACCOUNT_ID=YOUR_ACCOUNT_ID
CLOUDFLARE_API_TOKEN=YOUR_WORKERS_AI_TOKENOr point Snap at an already running System One-compatible model server:
ROUTING_PROVIDER=local
LOCAL_SYSTEMONE_URL=http://YOUR_MODEL_HOST:30000/v1/systemone
LOCAL_SYSTEMONE_MODEL=Cloudflare/clef-flash
LOCAL_SYSTEMONE_API_KEY=YOUR_MODEL_SERVER_KEYUse host.docker.internal for a model on the Docker host, or a reachable hostname/IP for another machine. Set the model name and key to those expected by your endpoint; the key can be blank for a server without authentication. Snap does not install the model server.
openssl rand -hex 32Paste the result into JWT_SECRET in .env.
$snapBytes = New-Object byte[] 32
[Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($snapBytes)
-join ($snapBytes | ForEach-Object { $_.ToString('x2') })Paste the result into JWT_SECRET in .env.
After startup, open localhost:3000, create an account, publish a SKILL.md, and generate a key under Connections. Copy the displayed configuration into your agent. The init container should exit successfully; web, mcp, dynamodb and minio should stay running. Check with docker compose ps -a.
Related MCP server: skill-router-mcp
Why Snap
Publish once, use across agents. Maintain one central library and connect MCP clients to it.
Load skills on demand. Snap returns at most one matched skill per call, without preloading the whole library into the agent.
Choose your decision endpoint. Use Cloudflare Workers AI or a System One-compatible server. The endpoint receives the task and skill names/descriptions.
A decision model returns probabilities for typed choices instead of generating text. Snap defaults to Clef-flash; its System One state/questions interface is compatible with TypeSafe's Jev API, with the model identifier configured for your endpoint.
How it works
Publish a
SKILL.mdwith a name and description.Connect your agent through MCP using its generated
X-Snap-API-Keyheader.The agent calls
get_skillwith a task; Snap scores the library metadata and returns a skill when the confidence clearsSKILL_MATCH_THRESHOLD(default0.42). Otherwise it returns no match.
Example get_skill call
Input through your MCP client:
{
"name": "get_skill",
"arguments": {
"problem": "Extract the invoice line items from this scanned PDF into a table."
}
}Illustrative decoded tool response for an object-backed skill (confidence is the model's score, not a guarantee):
{
"name": "pdf-extract",
"description": "Extract text, tables and form fields from PDF files, including scanned PDFs that need OCR.",
"confidence": 0.97,
"content": "---\nname: pdf-extract\n---\nUse pdfplumber for text and tables. Fall back to OCR for scanned pages.",
"url": "https://storage.example/snap-skills/pdf-extract/SKILL.md?X-Amz-Signature=...",
"expiresInSeconds": 300
}No match returns No matching skill found. See network and response details for content handling and download URLs.
Mini benchmark
Measured on 2026-11-01, using live Cloudflare/clef-flash inference through a LAN System One endpoint, local DynamoDB and MinIO, and authenticated HTTP MCP calls:
Library size | In-scope top-1 match | Correct no-match | End-to-end p50 | End-to-end p95 |
10 | 16/16 (100%) | 8/8 (100%) | 372 ms | 583 ms |
30 | 16/16 (100%) | 8/8 (100%) | 495 ms | 612 ms |
64 | 16/16 (100%) | 6/8 (75%) | 553 ms | 713 ms |
Small synthetic smoke test: eight in-scope and four out-of-scope prompts, each run twice per size (72 measured calls), with one excluded warm-up per size and threshold 0.42. Timing includes authentication, catalog lookup, model inference, matched skill retrieval, signing and the MCP response; it excludes agent reasoning and a separate download. No request errors occurred. These fixtures do not establish production accuracy or a universal latency target. Method, fixtures, raw results and reproduction.
Snap vs native skills
Native skills: a simpler choice for one agent with a small local library, especially when you need bundled scripts/assets or existing client-specific workflows.
Snap: useful when several agents should share one centrally managed library and retrieve a single matched skill through MCP. It adds a service, storage and an inference dependency.
Connect your agent
Connections generates setup for Claude Code, Codex, Cursor and VS Code. Copy the new key before dismissing the panel; it is shown once. Client configuration examples, including OpenCode.
Skill format
---
name: api-review
description: Review API endpoints for consistency and error handling.
---
# API review
Check request validation, response shapes, and error handling.Troubleshooting
Symptom | What to check |
| Run |
A remote agent receives a URL containing | Follow the storage-address fix, then request the skill again. |
MCP returns | Send |
Routing is unavailable | Check |
More documentation
Stop the local stack with docker compose down; named data volumes are preserved.
Security and limitations
MCP keys are account-scoped and stored as SHA-256 hashes. The dashboard uses signed JWTs in HttpOnly, SameSite=Lax cookies. Keep keys and .env files private; use HTTPS and SESSION_COOKIE_SECURE=true for internet-facing deployments. Only publish and apply skill instructions you trust.
The dashboard caps the library at 64 single-file skills; multi-file packages are not supported.
No explicit “none applies” model option exists yet. The confidence threshold can return false matches, as the benchmark demonstrates.
Context use depends on the client, library and frequency of calls. Retrieved content and history still accumulate; no general break-even point or constant total-session context has been established.
Automatic fallback to the larger Clef model and an R2 deployment are not implemented.
Contributing
Run npm run lint for frontend changes and uv run pytest from mcp-service for MCP changes. The live benchmark is opt-in and requires a model endpoint.
License
MIT © 2026 Kannan K
This server cannot be deployed
Maintenance
Related MCP Connectors
Search & install 13,000+ AI agent skills from skills-hub.ai inside any MCP tool.
Governed AI agent skills — one library, distributed to devs and exposed to remote agents over MCP.
Sharebench — search & pull AI skills, agents, prompts & playbooks (SKILL.md) into any MCP client
Find the right MCPs, tools and skills for any AI task - discovery over a 14k+ resource catalog.
Related MCP Servers
- AlicenseAqualityFmaintenanceUnified MCP and skill management gateway for AI agents, enabling tool discovery, installation, and sharing with 99% context token savings.876 npm91Apache 2.0
- AlicenseAqualityDmaintenanceRoutes SKILL.md libraries to any MCP client, enabling task matching and skill loading with embedding-based scoring, keyword fallback, and context-window discipline.59 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, browse, install, and manage a large library of skills via only 7 MCP tools, with skills stored locally and loaded on demand to minimize context overhead.4MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to discover and execute over 1,000 developer skills and tools via MCP and WebMCP, with progressive disclosure for efficient token usage.MIT