You don't have to download
skills anymore.
Add one MCP server and your agent can reach every skill in the catalog mid-session — searching by intent, loading one skill, then pulling only the files that skill actually asked for. No install step, no lockfile, nothing copied into your repo.
claude mcp add agent-skills -- npx -y @tech-leads-club/agent-skills-mcpWorks with any MCP-compatible client — Claude Code, Cursor, VS Code Copilot, Claude Desktop. Browse the catalog.
CLI or MCP?
Same catalog, same CDN, same skills. They differ in one thing: whether the skill lives on your disk or is fetched when the agent asks for it.
| CLI@tech-leads-club/agent-skills | MCP@tech-leads-club/agent-skills-mcp | |
|---|---|---|
| Use when | You want a curated set of skills installed in your agent, always available offline. | You want the agent to look one up the moment it needs it, without deciding in advance. |
| Persistence | Files land in .agents/, ~/.cursor/skills/ and friends, recorded in a lockfile. | Nothing is installed. The agent fetches from the CDN when a skill is actually needed. |
| Staying current | You re-run the installer to pick up new versions. | Always the published catalog — the registry is revalidated on a 15-minute TTL. |
| Context cost | Every installed skill description sits in the agent context from the start. | A search costs a few hundred tokens. Nothing else loads until it is chosen. |
| Best for | The handful of skills you use every day. | One-off help, exploring the catalog, or trying a skill before committing to it. |
You can run both: install your go-to skills with the CLI, and add the MCP so the agent can pull in the rest on demand.
Progressive disclosure, in three levels
Loading the whole catalog into a session would be wasteful, so the server never does. Each level pays only for itself, and the agent decides whether to spend the next one.
search_skillsFind by intent
A plain phrase like "react component testing" returns up to 5 ranked candidates with name, category, usage hint and a 0-100 relevance score. No query syntax, no guessing skill names.
~50–250 tokensread_skillLoad one skill
Returns the SKILL.md body with the YAML frontmatter stripped, plus the index of reference files the skill declares. Only the skill the agent actually picked gets loaded.
the skill body onlyfetch_skill_filesRead only what it needs
Fetches up to 5 reference files the instructions asked for, validated against the registry file list. Capped at a 50,000-char response budget so a big reference set cannot blow the context.
bounded at ~12.5k tokensprepare_skill_filesOr run what it needs
Writes checksum-verified files to disk and returns a skill_dir plus file:// links instead of contents — for skills whose instructions run a script. Nothing enters the context.
~700 tokens for a whole skillFive tools
Four of them are the search → read → fetch workflow. The fifth is there for when you just want to look around.
search_skillsStep 1. Fuzzy search over name, extracted triggers, description and category.
- Per-token matching, so natural phrases work without operators
- Each result carries a 0-100 score and a match_quality label
- Weak matches are dropped, so "no skill applies" is an answer the agent can reach
read_skillStep 2. Loads the canonical SKILL.md for one skill.
- Frontmatter stripped — search already delivered name and description
- Content hash verified over the original bytes before anything is returned
- Second block lists every reference file the registry declares
fetch_skill_filesStep 3. Returns the text of reference files meant to be read.
- All paths validated against the registry before any network call
- Files fetched in parallel; a partial failure still returns what succeeded
- Response budget names anything it had to leave out
prepare_skill_filesStep 3, alternative. Stages files on disk for skills that run scripts.
- Every file is checksum-verified before it is written
- Written without the execute bit, under ~/.cache/agent-skills-mcp/
- dry_run previews the destination and file list before any fetch or write
list_skillsCatalog browse, on explicit request only.
- Category-grouped list with truncated descriptions
- Served from the in-memory index — no extra registry fetch
- Requires explicit_request: true so agents do not call it mid-workflow
Plus a resource: skills://catalog
The full registry as JSON. Clients that support MCP Resources can cache it natively and skip the round-trip for catalog data entirely.
Slash commands, not tool names
The server ships MCP prompts, which compatible clients surface as slash commands. You describe the task; the prompt walks the agent through the workflow.
/skillstaskThe main entrypoint. Describe the task in natural language and the prompt drives search → read → apply.
/skills task:"refactor a large React component"/usename, contextA direct shortcut when you already know the skill name.
/use name:"docs-writer" context:"write a README for this package"/skills-help—Quick examples and when to reach for /skills versus /use.
/skills-help/find-skilltaskCompatibility alias for /skills, same argument.
/find-skill task:"plan a migration"Fetching beats installing only if you can trust it
Skipping the install step means content arrives over the network mid-session. These are the rules that content passes through first.
Every file is checksum-verified
The registry carries a SHA-256 content hash per skill. Nothing is returned to the agent — and nothing is written to disk — before the fetched bytes match it.
Only one tool writes to disk
prepare_skill_files, and it is declared as such. Files land under ~/.cache/agent-skills-mcp/ with mode 0600 and no execute bit, so running staged code takes a deliberate act.
Paths are validated twice
Once against the registry file list, then again after resolution — because that list is remote input served by a CDN. A path a skill did not declare is rejected.
Revisions land beside each other
The staging directory is keyed on the skill content hash, so a new revision never overwrites one a script may still be running out of. Superseded ones are reclaimed after an hour.
The catalog stays fresh
A 15-minute TTL with ETag revalidation: a 304 renews the cache without re-downloading. If the CDN goes down after warmup, the stale cache answers instead of erroring.
Responses are bounded
fetch_skill_files caps at ~12.5k tokens and names what it left out, so five large reference files cannot silently blow past the limit your client applies to tool responses.
Add it to your agent
Zero config. The server needs Node 24 or newer and nothing else — no API key, no account, no build step.
Cursor
Or search for agent-skills on cursor.com/marketplace./add-plugin agent-skillsClaude Code — plugin
Two commands: add the marketplace, then install the plugin./plugin marketplace add tech-leads-club/agent-skills
/plugin install agent-skills-mcp@tech-leads-clubClaude Code — CLI
One line, no JSON editing.claude mcp add agent-skills -- npx -y @tech-leads-club/agent-skills-mcpVS Code (GitHub Copilot)
.vscode/mcp.json uses a slightly different schema.{
"servers": {
"agent-skills": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@tech-leads-club/agent-skills-mcp"]
}
}
}Any other MCP client
The standard mcpServers block — works with most agents, including Claude Desktop.{
"mcpServers": {
"agent-skills": {
"command": "npx",
"args": ["-y", "@tech-leads-club/agent-skills-mcp"]
}
}
}One server. The whole catalog.
Add it once and stop deciding in advance which skills you will need.
claude mcp add agent-skills -- npx -y @tech-leads-club/agent-skills-mcp