If you've been extending your AI agent's capabilities, you've probably encountered two formats: MCP (Model Context Protocol) and SKILL.md. They're both ways to make agents more powerful — but they solve completely different problems.
Getting them confused leads to using the wrong tool for the job. Here's a clear breakdown.
What MCP does
MCP (Model Context Protocol) is an open protocol developed by Anthropic that lets agents connect to external tools, APIs, and data sources.
An MCP server exposes tools — functions the agent can call at runtime. A GitHub MCP server gives the agent tools to create PRs, comment on issues, and read repository data. A database MCP server lets the agent run queries. A file system MCP server gives it access to files outside the current project.
The agent calls these tools like function calls. The MCP server responds with data. The agent uses the data in its response.
MCP is about connectivity — what the agent can reach.
What SKILL.md does
A SKILL.md defines a workflow — a procedure the agent follows on a specific type of task.
It doesn't connect to anything external. It's a Markdown file that describes: what the agent should do, the steps it should follow, how it should format the output, and an example of ideal behaviour.
# pr-security-reviewer
## Purpose
Review pull requests for OWASP Top 10 vulnerabilities and dependency risks.
## Instructions
1. Read the changed files
2. Check for injection patterns, exposed secrets, vulnerable dependencies
3. Rate each finding by severity
## Output format
severity | location | issue | recommendation
When a skill is installed in .claude/skills/, the agent reads it before each task and activates it when the task matches the Purpose field.
SKILL.md is about behaviour — how the agent performs a task.
The clearest way to think about it
| MCP | SKILL.md | |
|---|---|---|
| What it provides | Tools and data access | Procedures and output formats |
| Analogy | A library of functions | A set of operating procedures |
| Lives in | A running server process | A Markdown file in your repo |
| Example | GitHub API tool, Postgres query tool | "Review PRs like this every time" |
| Requires a server | Yes | No |
| Version-controlled | Depends | Always |
They're complementary, not competing
The power comes from using both together.
Imagine a code review workflow:
- The MCP GitHub server gives the agent access to PR diffs, comments, and file contents
- The SKILL.md security reviewer tells the agent exactly how to review the PR — what to look for, how to rate findings, what format to return
Without MCP, the agent can't fetch the PR data. Without the skill, the agent improvises its review procedure each time — inconsistent quality, different output format, no guarantee it checks the things you care about.
With both: the agent fetches the PR via MCP tools, reviews it using the skill procedure, and returns a structured audit with consistent fields every run.
When to reach for each
Use MCP when the agent needs to call an external service, read from a database, access an API, or interact with tools beyond the current working directory.
Use SKILL.md when the agent needs to follow a specific procedure, produce a particular output format, or apply institutional knowledge consistently across runs.
Use both when the task requires both external data and a defined procedure — which most real workflows do.
How to get started with skills
Skills are installed from the MDSkill directory. Search for one:
npx mdskill search "security review"
Install it:
npx mdskill add owner/repo/skill-name
Every skill in the directory carries a security audit score — an automated check that flags skills trying to behave deceptively or access data they shouldn't. You can browse by category or search the full catalog.
What's next?
- What is a SKILL.md file? — the full explainer on the format
- How to install skills in Claude Code — step-by-step
- Build your own skill and publish it to the directory