agent-skills MCP · the whole catalog, nothing installed

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-mcp

Works 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-skillsMCP@tech-leads-club/agent-skills-mcp
Use whenYou 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.
PersistenceFiles 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 currentYou re-run the installer to pick up new versions.Always the published catalog — the registry is revalidated on a 15-minute TTL.
Context costEvery 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 forThe 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.

1DISCOVERYsearch_skills

Find 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 tokens
2ACTIVATIONread_skill

Load 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 only
3EXECUTIONfetch_skill_files

Read 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 tokens
3EXECUTIONprepare_skill_files

Or 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 skill

Five tools

Four of them are the search → read → fetch workflow. The fifth is there for when you just want to look around.

search_skills

Step 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_skill

Step 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_files

Step 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_files

Step 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_skills

Catalog 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.

/skillstask

The main entrypoint. Describe the task in natural language and the prompt drives search → read → apply.

/skills task:"refactor a large React component"
/usename, context

A 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-skilltask

Compatibility 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-skills

Claude 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-club

Claude Code — CLI

One line, no JSON editing.
claude mcp add agent-skills -- npx -y @tech-leads-club/agent-skills-mcp

VS 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