What is a Claude Code skill?
A skill is a packaged capability: a folder of instructions, and often supporting files, that Claude can invoke when a task matches it. Each skill carries a short description that tells the model when it is the right tool for the job, so the model can reach for it without you wiring anything up by hand. In practice a skill is the smallest, most self-contained unit of the four.
Skills live in one of two places. A global skill sits under ~/.claude/skills and is available in every project on your machine. A project skill sits in that repository's .claude/skills folder and applies only inside that project. Each skill folder holds a SKILL.md with the description and the instructions Claude follows when it picks the skill up.
What is a Claude Code plugin?
A plugin is a bundle. Where a skill is a single capability, a plugin can ship a whole set of things at once: its own skills, its own agents, and its own MCP servers, packaged together so you can install them in one step. That packaging is convenient, and it is also the source of the most common surprise in a Claude Code setup.
Here is the key insight. Because a plugin bundles skills, agents, and MCP servers, installing a single plugin can quietly give you copies of capabilities that overlap with standalone items you already had. You install one plugin and gain half a dozen things you never picked individually, and if one of those bundled skills matches a standalone skill you added earlier, you now hold two copies of the same capability without ever deciding to. That is exactly where duplicate detection earns its keep.
What is an MCP server in Claude Code?
MCP stands for Model Context Protocol. An MCP server is a separate process that exposes tools and data to Claude over that protocol. Each server advertises its tool schemas, the names and shapes of the things it can do, so the model knows what it is allowed to call and how. A server might give Claude access to a database, an API, your file system, or any other external system its author chose to wrap.
Like skills, MCP servers can be configured at two levels: globally, so they are available everywhere, or per project, so they apply only inside a given repository. The thing to remember is that every connected server contributes its advertised tool schemas to what the model has to consider, whether or not you ever call those tools.
What is a Claude Code agent (subagent)?
An agent, sometimes called a subagent, is a scoped helper with its own instructions and its own set of tools that Claude can delegate a task to. Instead of doing everything in one thread, the model can hand a focused job to an agent that has been set up for exactly that kind of work, then use the result. An agent is defined by its own file describing its purpose, its instructions, and what it is allowed to use.
Agents follow the same scope rules as the rest of your setup. A global agent lives under ~/.claude/agents and is available everywhere; a project agent lives in that repository's .claude folder and applies only there. As with skills, the same agent can end up defined in more than one place once plugins enter the picture.
How do they fit together, and where do duplicates come from?
The cleanest way to hold all four in your head is along two axes: what the thing is, and where it lives. Skills, MCP servers, and agents are each a distinct kind of capability. A plugin is the odd one out, because it is not a single capability at all, it is a container that can ship the other three. And every one of these can exist at global scope, under ~/.claude, where it applies everywhere, or at project scope, under a repository's .claude folder, where it applies only there.
Duplicates fall straight out of those two facts. Because plugins bundle skills, agents, and MCP servers, a plugin can hand you a copy of something you already installed on its own, and because the same capability can live in both global and project scope, you can hold two copies in two different folders that never sit next to each other. That is precisely how a setup ends up with duplicates you never installed directly, and why they are so hard to spot by reading folders one at a time.
How do I see everything I have installed?
The fastest way to get an honest picture is to scan your setup instead of reading folders by hand. Run npx stack-cleaner@latest (or the curl one-liner from the setup guide). The scan reads your local Claude Code setup, strips secrets, and writes a small stack-cleaner.json file. It only reads; it changes nothing on your machine.
Then drop that file into the inventory tool. The parsing happens entirely in your browser, the file is held in localStorage only, nothing is uploaded, and there is no backend. You get every skill, plugin, MCP server, and agent laid out and split by global versus project scope, with real usage counts pulled from your local transcripts so you can see what you lean on versus what you installed and forgot, and with duplicate detection that flags the overlaps plugins introduced.
Where to go next
Now that the four pieces are clear, the natural next step is to act on them. Start with the setup guide to run the scan, open the inventory tool to see everything you have, and follow how to clean up your Claude Code setup for a step-by-step pass through the duplicates and the things you never use.