The short answer: Use a skill when one repeatable workflow lives in a single markdown file. Use a plugin when that workflow depends on external tools or you want to bundle related skills together. Use MCP when your AI needs to talk to a live system — a database, a CRM, a Slack channel — and you want that connection to work across any assistant, not just one platform.
That sounds abstract until you’re staring at a prompt that should do something useful, realizing it can’t reach your tools, and wondering whether to write another one-off script or build an entire plugin for it. This guide cuts through the overlap so you can choose fast and move on with your day.
Why This Is Confusing Right Now
In roughly the last year and a half, Anthropic shipped three different extension mechanisms. OpenAI absorbed the Model Context Protocol. Google followed. The names are vague, the capabilities overlap, and no one has published a clean comparison that actually helps a solo founder decide which one to install today.
You see terms like skills, plugins, apps, app templates, and MCP servers used interchangeably across documentation, blog posts, and product launch announcements. When you’re trying to save time instead of spending it reading release notes, that ambiguity has a real cost.
The good news: these mechanisms solve different problems. Once you separate them, the decision becomes mechanical rather than mysterious.
Skills: The Reusable Instruction File
A skill is a folder with one main file — SKILL.md — written in plain markdown with a small YAML header at the top. Inside, you write step-by-step instructions the assistant follows. No code required. No build step. It is, in the words of the people who defined it, an onboarding guide for a new hire.
A typical skill looks like this:
---
name: review-pr
description: Review a pull request for security, tests, and style violations
---
# Pull Request Review
1. Read the diff of the current pull request.
2. Check for common security issues.
3. Verify that new functions have tests.
4. Flag style guide violations.
5. Post review comments on the PR.
That’s it. The assistant reads the description, decides when to use the skill based on what you ask, and loads the full instructions when it matches.
Skills are the right choice when:
- The task is self-contained and repeatable — deploying to staging, writing a status update in a fixed format, reviewing a PR, prepping for a sales call.
- The instructions fit comfortably in one markdown file.
- You don’t need to connect to an external API or live system during execution.
- You want to share the workflow with a teammate without making them read a tutorial.
Skills fall apart when:
- The workflow needs to pull data from a database, post to Slack, or read from Google Drive. Skills tell the assistant what to do — they don’t give it the reach to do it.
- You’re trying to manage a collection of related workflows and keeping them in sync manually.
- You need versioned installs, metadata, or dependency management.
Think of a skill as a recipe. It works great until you realize you also need a grocery delivery service, and the recipe doesn’t include that.
Plugins: The Installable Package
A plugin wraps one or more skills — and potentially other components — into a single installable package. It has a manifest file, usually called plugin.json, with a name, version, and description. When you install it, everything inside arrives together: skills, agents, hooks, custom commands, and sometimes MCP server connections.
Beyond skills, a plugin can include:
- Agents: Specialized AI assistants tuned for specific jobs
- Hooks: Automated actions triggered by events, like running a linter after every edit
- MCP server connections: Bundled access to Slack, Jira, a database, or other external tools
- Custom commands: Slash commands that kick off multi-step workflows
Plugins are the right choice when:
- You have a collection of related skills that should travel together — a “sales enablement” package might bundle call prep, account research, and deal analysis plus a CRM connection.
- The workflow requires external tool integrations and you don’t want to configure each one separately.
- You want to distribute or version a complete capability, not just a single instruction file.
Plugins add complexity when:
- Your need is genuinely a one-off task. Installing a full plugin for a single workflow is like buying a cookbook when you only need one recipe.
- You need to audit what external permissions the bundle requests. Plugins can carry more attack surface than a single skill file, especially when they include MCP connections or custom agents.
- You’re maintaining multiple plugins across a team and need to coordinate updates.
The analogy that actually holds: if a skill is a recipe, a plugin is the cookbook. Useful when you want the whole collection packaged together. Overkill when you just need one dish.
MCP Servers: The Plumbing Layer
The Model Context Protocol is an open standard for connecting AI models to external systems. It runs on JSON-RPC 2.0 and was designed so that a connector built once works across any compliant client — Claude Desktop, ChatGPT, Gemini, and others. Anthropic donated the protocol to the Agentic AI Foundation under the Linux Foundation, co-founded with OpenAI and Block, which means it’s now governed as neutral infrastructure rather than proprietary software.
Under the hood, MCP gives you three things:
- Tools: Functions the AI can call, like querying a database or posting to a webhook
- Resources: Readable data the AI can access, like files or documents
- Prompts: Pre-built message templates the AI can invoke
MCP servers are the right choice when:
- Your AI needs real-time access to a live system — querying Postgres, reading from Google Drive, interacting with GitHub, pulling from a CRM, posting to Slack.
- You want a connection that works across multiple assistants, not just one platform.
- You’re building infrastructure that other tools will connect to, and you want to avoid vendor lock-in.
MCP adds friction when:
- You only need behavioral instructions, not external connectivity. A skill handles the instructions; MCP handles the plumbing. Don’t install a server for a job a markdown file does.
- You’re configuring a host application and need to understand the client-server relationship before anything works.
- Security and permissions matter and you haven’t audited what the server exposes. MCP servers have broad access by design — that’s the point. That’s also the risk.
If skills are recipes and plugins are cookbooks, MCP is the kitchen itself: the infrastructure that makes cooking possible, invisible when it works, catastrophic when it’s misconfigured.
Apps and App Templates: Where Do They Fit?
OpenAI and other platforms have introduced apps and app templates as a higher-level packaging format. An app typically bundles skills, plugins, and MCP connections into a single installable unit with its own configuration and UI. An app template is a starting point — a pre-built app you can clone and customize for your own workflow.
The tension here is real: app templates promise speed, but they often ship with more capability than you need and less control than you’d like. A template might include five skills when you only need one, or hardcode integrations you don’t use. That’s fine if you’re happy to pay the tax of unused complexity. It’s expensive if you’re trying to keep your stack lean.
Use app templates when:
- You want a starting point fast and don’t mind removing pieces you don’t need.
- The template covers the exact workflow you’re trying to replicate, and customization is minimal.
Skip app templates when:
- You can define the workflow yourself in a single skill file in five minutes.
- The template includes integrations you don’t use and you’re concerned about surface area or cost.
- You want full visibility into every component that runs when you invoke the app.
The Decision Framework
When you’re trying to choose between these mechanisms, start with the simplest option that covers the job. Each level up adds capability but also adds complexity, setup time, and maintenance burden.
Ask yourself these questions in order:
-
Is this a repeatable workflow with clear instructions? If yes and it doesn’t need external tools, write a skill. Five minutes. Done.
-
Does the workflow need to reach outside the conversation? If yes, you need either an MCP server for the connection or a plugin that bundles the MCP server and the skills together. Choose the plugin if you want an easier install. Choose the MCP server directly if you want transparency about what’s happening under the hood.
-
Do you have multiple related workflows that should travel together? Bundle them into a plugin. A plugin is the right shipping format for a team-wide capability.
-
Do you want something pre-built you can customize quickly? Consider an app or app template, but audit it first. Strip out what you don’t need before you commit to it.
-
Is this a genuinely one-off task? Don’t build a skill for it. Don’t install a plugin. Use the assistant directly and move on. Not everything deserves to be automated.
Real Scenarios, Real Choices
Here’s how this looks in practice for founders and small teams:
Scenario A: You want your assistant to review every PR before you merge it.
- Write a skill. The instructions describe the review process. No external tools needed beyond what the assistant already has access to. This is a behavioral pattern, not a connectivity problem.
Scenario B: You want your assistant to pull live metrics from your analytics dashboard and summarize them for a weekly report.
- You need an MCP server connected to your analytics API, or a plugin that includes that MCP connection plus a skill for formatting the report. If you already have an MCP server for that data source, the skill or plugin is the lighter choice.
Scenario C: You want your whole team to follow the same onboarding workflow for new hires.
- Package the workflow as a plugin. It bundles the skills, any required MCP connections, and custom commands into one installable unit your team can add without asking you to explain it each time.
Scenario D: You found a template online that does 80% of what you need.
- Download it. Audit every skill, every MCP connection, every command inside. Remove what you don’t use. Customize what’s left. If removing pieces leaves you with a single skill, you’ve learned something about your own stack — and you saved yourself from carrying dead weight.
What Not to Build
The biggest mistake founders make here isn’t choosing wrong — it’s building when they shouldn’t. Every skill, plugin, and MCP server you add is a thing that can break, a thing your team needs to learn, a thing that drifts out of sync as the underlying platforms change.
Before you write a single line of instruction:
- Can the assistant already do this with its native tools?
- Will this workflow happen more than twice a week? If not, a skill may be overengineering.
- Is the bottleneck actually the instruction, or is it the data the assistant can’t reach? If it’s the data, you need connectivity, not a better prompt.
- Could you accomplish the same outcome by changing how your team works, rather than automating the current process?
The best AI extension is the one you never have to maintain.
FAQ
Can I use skills and MCP servers together? Yes. Skills tell the assistant what to do. MCP servers give it the tools to do it. A typical setup pairs both: a skill that describes the workflow and an MCP server that provides access to the external systems the workflow depends on.
Are plugins going to replace skills? No. Plugins include skills. They don’t replace them. The distinction is packaging, not capability.
Is MCP the same as a plugin? No. MCP is a protocol — the plumbing. A plugin is a packaging format that may include MCP servers, skills, and other components. They operate at different levels of the stack.
What if the platform I use changes how skills or plugins work? That’s a real risk. All of these mechanisms are still evolving. The strongest reason to prefer MCP and well-scoped skills over closed plugin formats is that MCP is open and vendor-neutral. When one platform shifts its plugin rules, your MCP-based connections keep working elsewhere.
Should I evaluate these by how much time they save, not how many features they have? Exactly. The metric that matters is: does this remove a repetitive pain point without adding a maintenance burden? If the answer is yes, it earns its place. If the answer is no, it’s noise.







