MCP tools give Claude the ability to do things. Skills give Claude the instructions for how to do things. These solve different problems, and conflating them is one of the most common structural mistakes in Claude Code builds. If your workflow requires Claude to query a database or call an API, you need MCP. If your workflow requires Claude to follow a specific sequence of steps or apply a particular methodology, you need a skill. Most production workflows need both.
TL;DR: Use MCP tools when Claude needs to take external actions: read a file, query a database, call an API, or run a shell command. Use a skill when Claude needs to follow specific instructions, apply domain knowledge, or produce output in a defined format. The two are not alternatives to each other — they solve different layers of the same problem.
What does MCP actually do?
MCP (Model Context Protocol) is a connection standard that lets Claude call external processes, tools, and APIs as part of a conversation. An MCP server runs as a separate process and exposes a named set of tools that Claude can invoke on demand.
MCP SDK downloads grew from 100,000 in November 2024 to over 8 million by April 2025 (PulseMCP, 2025).
Examples of what MCP tools do:
- File system access: Read, write, or search files on the local machine beyond Claude's native file handling
- Database queries: Run SQL against a PostgreSQL or SQLite database and return results
- API calls: Hit external endpoints, GitHub, Jira, Slack, and return structured data
- Shell commands: Execute scripts, run tests, check git status
MCP tools give Claude agency over the external environment. Without MCP, Claude operates entirely within the conversation context. With MCP, Claude can interact with the world.
At AEM, a skill-engineering service that builds production-ready Claude Code skills and agents on demand, every commission that involves Claude reading from or writing to an external system uses MCP. No exceptions. The alternative, asking Claude to generate code that the user then runs manually, shifts agency to the user and breaks the workflow's continuity (source: AEM commission analysis, 2026, internal dataset of 84 skill builds).
What does a skill do that MCP cannot?
A skill (a SKILL.md file) contains instructions, procedures, and workflow logic that Claude follows when invoked. It specifies the steps to take, the output format, and the quality constraints. MCP cannot do any of this. An MCP server exposes tools; it cannot specify how Claude should use them, in what order, or with what domain context.
Qodo's 2025 State of AI Code Quality report found that 65% of developers cite missing context as the top issue during AI-assisted code reviews, a direct consequence of relying on tool access without workflow instructions (Qodo, 2025).
"The single biggest predictor of whether an agent works reliably is whether the instructions are written as a closed spec, not an open suggestion." — Boris Cherny, TypeScript compiler team, Anthropic (2024)
A skill is a closed spec. It defines the workflow completely enough that Claude does not need to improvise. An MCP server is a capability grant. It expands what Claude can do. Combine both and you get a workflow where Claude knows how to do something and has the tools to actually do it.
When should you use MCP tools?
Use MCP when the workflow requires Claude to interact with systems outside the conversation. This covers steps where Claude needs live data, must write to an external system, needs to run code, or must query resources too large to fit in the context window.
- Read live data that changes: Database records, API responses, file contents on disk. Claude's context window contains only what you put in it. If the data needs to be current, it needs to come from a live source via MCP.
- Write to an external system: Saving a file, updating a record, posting to an API, committing to git. These are side effects. Claude cannot cause side effects without tools.
- Execute code or commands: Running a test suite, calling a build script, checking system state. These require a process, not a language model.
- Access resources too large for context: A codebase with 200 files cannot fit in Claude's context window. An MCP server with a search tool lets Claude query the relevant parts on demand.
By 2024, 21.9% of AI agent traces involved tool calls, up from 0.5% in 2023 (LangChain State of AI Agents, 2024). If your workflow has none of these requirements, you probably do not need MCP. A skill that works entirely with information the user provides in the conversation needs only the SKILL.md file.
For context on how skills and agents divide these responsibilities differently, see When Does a Workflow Need Multiple Agents vs a Single Skill?.
When should you encode logic in a skill instead of using MCP?
Encode logic in a skill when the requirement is about how Claude thinks and works, not what external systems it can reach. Methodology, domain knowledge, quality constraints, and output format all belong in the skill file. MCP cannot carry this context. A skill does, carrying it into every invocation without repetition.
- Methodology: A 5-step content review process, a specific debugging sequence, a code review rubric. These belong in a skill's procedure section, not in an MCP server.
- Domain knowledge: Industry-specific terminology, brand voice guidelines, output format specifications. Reference files attached to a skill carry this context into every invocation.
- Quality constraints: "Always include a cited source for every statistic." "Never use passive voice." "Output must be valid JSON matching this schema." Constraints live in a skill's instructions, not in a tool definition.
- Workflow orchestration: Which steps happen in what order, what constitutes a complete output, when to ask for user confirmation. A SKILL.md file can specify all of this. An MCP server cannot.
The distinction is clean in most cases: if the requirement involves what Claude does with external systems, use MCP. If it involves how Claude reasons, structures, and produces its output, use a skill. Research tracking enterprise AI deployment found that 78% of enterprise AI teams now have at least one MCP-backed agent in production (guptadeepak.com, MCP Enterprise Adoption Guide, 2025). Each of those workflows requires an instruction layer too, which is exactly where the skill file earns its place.
What does a workflow that uses both look like?
A code review workflow is the clearest example. MCP handles the data retrieval steps: reading the git diff and querying historical review patterns. The skill handles the reasoning steps: applying the rubric and producing the structured report. Neither layer can do the other's job. Both must be designed explicitly.
- Read the git diff for a pull request (external data, needs MCP)
- Apply a specific review rubric checking security, performance, and style (methodology, belongs in skill)
- Query a database of past review comments to identify patterns (external data, needs MCP)
- Produce a structured review report in a defined format (output contract, belongs in skill)
The MCP server handles steps 1 and 3. The skill handles steps 2 and 4. Neither can do the other's job.
Teams that have deployed AI code review report PR review time falling from an average of 18 hours to 4 hours, with 62% fewer production bugs (Digital Applied, 2025). That result requires both layers: MCP to pull the diff, skill to apply the rubric.
In practice, this pattern shows up in roughly 40% of production skill builds at AEM — workflows where both the capability layer (MCP) and the instruction layer (skill) need to be designed. The other 60% are either pure skills with no external actions required, or standalone MCP configurations without workflow logic.
"When you give a model an explicit output format with examples, consistency goes from around 60% to over 95% in our benchmarks." — Addy Osmani, Engineering Director, Google Chrome (2024)
The output contract in the skill is doing that work. The MCP tools are gathering the inputs. Both matter.
Is there ever a reason to encode external logic in a skill?
One case exists: when you want Claude to generate code that calls an external system, rather than calling it directly. If the workflow is "write a Python script that queries this API," the API call is not happening at skill-invocation time. The skill produces the script. The user runs the script later.
This approach is appropriate when the user needs to review, modify, or schedule the external action. It is wrong when the workflow requires Claude to act on live data in real time.
This pattern does not scale to multi-step workflows where each step depends on the result of the previous one. For those, MCP is necessary. For a single-step "generate a script" workflow, encoding the logic in a skill instruction is fine. The registry of available MCP servers reached over 5,500 by late 2025 (MCP Manager, 2025), so direct tool integration now exists for most common systems. The "generate a script instead" pattern is increasingly a last resort, not a first choice.
For context on how this compares to the broader choice between skills and agents, see When Should I Use a Subagent Instead of a Skill?.
Frequently Asked Questions
MCP and skills are independent by design: you can use either without the other, and they do not need to be explicitly linked. When both are configured in the same Claude Code environment, Claude has access to all MCP tools during every skill session automatically, without any declaration in the SKILL.md file.
Can I use MCP tools without a skill? Yes. You can configure MCP servers without any SKILL.md files. Claude will have access to the MCP tools and can use them in response to user requests. The skill adds workflow structure on top of those tools — it is not required for MCP to function.
Can a skill work without any MCP tools? Yes. The majority of skills in production have no MCP dependency. If your workflow operates entirely on information provided in the conversation — text the user shares, code they paste, questions they ask — a skill can handle all of it without MCP.
Does a skill get access to MCP tools automatically? Yes, if MCP servers are configured in the same Claude Code environment. A skill does not need to explicitly declare which MCP tools it uses. Claude has access to all configured MCP tools during every conversation, regardless of which skill is active.
What happens if my skill requires an MCP tool that is not configured? The skill will fail silently on any step that requires the missing tool. Claude will attempt the action, find that the tool is unavailable, and either report an error or improvise by doing something different. The fix is to bundle the MCP configuration with the skill using a plugin, so they are always installed together.
Should I put API endpoint URLs in my skill file or my MCP configuration? API endpoint URLs belong in the MCP server configuration, not the SKILL.md file. The SKILL.md should contain instructions for how to use the API's data, not the technical details of how to reach it. Separating these concerns makes both easier to maintain.
Can I use multiple MCP servers with one skill? Yes. A single skill can instruct Claude to use tools from multiple MCP servers. Claude treats all configured MCP tools as available during a conversation regardless of how many MCP servers provide them.
Last updated: 2026-05-06