Claude Code has three kinds of extensions. They look similar in a catalog, but they work โ and cost โ very differently. Here's the mental model.
Expert knowledge Claude loads on demand. At session start Claude sees only each skill's one-line description; when your request matches, it loads the full instructions and follows them.
Separate Claude instances with their own context window and system prompt. The main Claude delegates to them like a tech lead handing off tickets โ automatically, or when you name them.
External tools Claude can operate: a real browser, your Notion, a database, Stripe. Approved once per project, then used conversationally.
uvx skilldex search <keyword>.uvx skilldex install pdf. Skills land in ~/.claude/skills, subagents in .claude/agents, MCP servers in the project's .mcp.json.# uvx ships with uv (brew install uv) โ or: pip install skilldex uvx skilldex search pdf uvx skilldex install pdf # skill โ available in every project uvx skilldex install playwright # MCP server โ this project only uvx skilldex list # see everything installed
| Type | Idle cost | Rule of thumb |
|---|---|---|
| Skill | ~2 lines of context each | Install liberally |
| Subagent | Free until used; each use is a separate Claude run | Install freely |
| MCP | Tool definitions load into every session | Connect sparingly, per project |
No. Install them, then describe what you want in plain language. Claude reads every installed extension's description and routes your request itself. Naming one ("use the pdf skill", "ask the security-auditor agent") is just a nudge for when routing doesn't happen on its own.
Depends on the type. Skills are nearly free โ only their one-line descriptions sit in context until used. Subagents cost nothing until invoked. MCP servers are the heavy ones: every connected server loads its tool definitions into each session, so ten servers means slower startup, less context for your actual work, and occasional wrong-tool choices.
Rule of thumb: skills liberally, agents freely, MCP sparingly per project.
Installing it drops several specialist definitions (e.g. a context manager, task decomposers)
into .claude/agents/. When you give Claude a big multi-part task, it can delegate
pieces to those specialists, each in its own context window โ which keeps your main conversation
clean and lets work run in parallel. You'll see delegation happen in the session log. Ask Claude
"what agents do you have available?" to see the roster.
Skills and agents go to ~/.claude/ by default โ available in every project.
Add --project to install into ./.claude/ instead, scoped to the current
repo (and shareable with your team via git). MCP servers are project-scoped by default โ
written to ./.mcp.json where you run the install โ or add --global
to register one user-wide so it loads in every session, in every folder. Keep global for the
one or two servers you use constantly; each one costs context in every session.
Registry entries never contain real keys โ they use ${VAR} placeholders, and the
install output tells you which environment variables to set (e.g.
export NOTION_TOKEN=... in your shell profile). Never paste a real key into
.mcp.json: it's usually committed to git. uvx skilldex audit checks
your machine for exactly that mistake.
Delete its folder: rm -rf ~/.claude/skills/<id> (or the project-scoped
equivalent), remove agent files from .claude/agents/, and remove the server's block
from .mcp.json. uvx skilldex list shows where everything lives.
Every entry is a small JSON file in a public repo, added by pull request and validated by CI (schema, kebab-case ids, and a scan that rejects anything resembling a hardcoded secret). Entries point at their source repos โ many are official (Anthropic, Notion, Stripe, Supabase, Sentry, Google, Microsoft). Always review what you install; the source link is on every card.
No โ skilldex is an independent, MIT-licensed community project and isn't affiliated with Anthropic. Skills, subagents, and MCP are open extension formats; skilldex is a package manager for them.