What a skill is and what an MCP server is
A skill is a folder with a SKILL.md file and optional scripts/, references/ and assets/ subfolders. The format is the open Agent Skills standard, originally developed by Anthropic. At startup the agent sees only each skill name and description (about 100 tokens), reads the body when a task matches, and opens bundled files as needed.
An MCP server is a separate program that exposes tools to the agent over the Model Context Protocol, which its docs describe as an open-source standard for connecting AI applications to external systems. It runs locally over stdio or remotely over HTTP, and the agent calls its tools like built-in ones.
In short: a skill answers "how", MCP answers "what can I reach".
Side-by-side comparison
SkillMCP serverWhat it isMarkdown instructions plus filesa process or remote service with toolsWhat it addsprocedures, conventions, ready scriptsnew actions: query a DB, click in a browser, file a ticketWhere it lives.claude/skills/, .agents/skills/, .cursor/skills/ and others.mcp.json, .cursor/mcp.json, ~/.codex/config.toml, Gemini CLI settings.jsonPortabilityone SKILL.md works in Claude Code, Codex, Cursor, Copilot, Gemini CLI, Kiro, OpenCode, Zed, Windsurfthe protocol is shared, the config is not: JSON mcpServers, TOML in Codex, servers in VS Code, context_servers in ZedContext costname and description always, body on demand (under 5,000 tokens recommended)tool outputs; Claude Code warns above 10,000 tokens and caps at 25,000Needs networkno, unless its scripts doyes for remote serversRisksprompt injection in the text; GitHub warns that skills are not verifiedaccess to data and actions; Claude Code asks before using project servers, Cursor asks for each tool call by default
MCP vs API: how they differ
An API is one service interface: GitHub has its own, Postgres has its own wire protocol. MCP sits a level above and defines one way for an AI app to discover tools and call them. Inside, an MCP server nearly always talks to a regular API or database. The layer buys you two things: the same server plugs into Claude Code, Cursor and Codex, and the agent gets tool descriptions in a shape it understands.
For scale: on October 24, 2026, glama.ai listed 109,544 MCP servers, and gateways like Pipedream advertise 3,000+ APIs and 10,000+ tools behind a single connection.
How to choose
- The agent does not know how your team does things (migrations, releases, test style, review checklist): you need a skill.
- The agent cannot reach a system (a database with no CLI, a browser, Jira, Figma): you need an MCP server.
- You need both: look for a plugin. A Claude Code plugin can hold
skills/,agents/, hooks and.mcp.json; a Codex plugin bundles skills, MCP servers and hooks; a Gemini CLI extension carries bothmcpServersandskills/.
Our opinion, and you may disagree: when a service has a decent CLI (gh, psql), a skill that explains how to call it is often simpler than an MCP server. No extra process, no per-client config, and every command shows up in the log. MCP pays off where there is no CLI or you need a browser.
Where subagents, commands and plugins fit
A subagent runs in its own context with its own system prompt and tools, while a skill body loads into the current conversation and stays there. In Claude Code a skill can also run in a separate context with context: fork.
Slash commands in Claude Code are merged into skills: both create /name, and old files in .claude/commands keep working. Codex deprecated its custom prompts in favor of skills, and Cursor converts commands with /migrate-to-skills.
A plugin is packaging, not a separate kind of knowledge: inside are the same skills, subagents, hooks and MCP servers.
Next: skills catalog, MCP server catalog, how to add an MCP server, how to write a SKILL.md.