What is the difference between skills, MCP and workflows?
They answer three different questions. A skill answers "how do I do this kind of task?" MCP answers "what can I reach?" A workflow answers "what happens next, and where do we stop?" Comparing them as rivals is the root of most confusion. They sit at different layers, and the strongest setups use each for its own job.
The table compares them on the dimensions that matter when you choose. "Workflow" covers two different designs, because the word means two things today: a script that orchestrates agents inside one session, and a process an engine holds across sessions.
| Layer | Answers | Who decides next | Best for |
|---|---|---|---|
| Skill | How to do a task | The model | Reusable know-how |
| MCP server | What the agent can reach | The model | Access to systems and data |
| Scripted workflow | How to fan out one big job | The script | Large parallel sweeps |
| Engine-held workflow | What happens next, where it stops | The engine | Repeatable work with people in it |
- Skill: a folder with SKILL.md in a repo or home folder; sign-off only if the model asks
- MCP server: a local process or remote URL exposing tools; sign-off through per-tool permission prompts
- Scripted workflow: a script file such as .claude/workflows/, resumable within the session; no mid-run input
- Engine-held workflow: stored outside the session, so any session resumes the run; approval gates hold it
What is an agent skill?
An agent skill is a packaged procedure the agent loads on demand. The Agent Skills format, originally developed by Anthropic and released as an open standard, defines a skill as a folder containing a SKILL.md file with a name, a description and instructions, optionally bundled with scripts, references and assets. It is supported by many agent products, including Claude Code, OpenAI Codex, Cursor, GitHub Copilot and OpenCode.
The key mechanism is progressive disclosure: at startup the agent loads only each skill's name and description; the full instructions load when a task matches, or when you invoke the skill directly. In Claude Code, project skills live in .claude/skills/<name>/SKILL.md and run with /skill-name. That makes skills cheap to keep on hand.
What a skill is not: an enforcement mechanism. The model decides whether a skill is relevant and follows its instructions as context. That is exactly right for know-how ("how we write release notes") and not enough for obligations ("nothing ships without sign-off").
---
name: release-notes
description: Write release notes. Use when a release is being prepared.
---
Lead with what users can do now.
Group changes by user impact, not by component.
No internal ticket numbers.What is MCP?
The Model Context Protocol is "an open-source standard for connecting AI applications to external systems". Its own analogy is a USB-C port for AI applications: one way to plug data sources, tools and workflows into any compatible client. A server exposes tools the model can call, resources it can read and prompts it can use; clients such as Claude, ChatGPT, Cursor and VS Code connect to servers through configuration.
MCP is the reach layer (see the MCP definition). It is how an agent gets to your issue tracker, your database or your workflow engine without custom glue for every pair of client and system. Permission prompts and server-side checks control what each call may do.
What MCP is not: a plan. A server describes what is possible; it does not say in what order things should happen or where a person must decide. That belongs to the layer above.
Treat each server as access you grant. A server acts with the credentials you give it, local servers run as programs on your machine, and remote servers usually sign you in with OAuth. Prefer servers with narrow scopes, read what each tool can change before you approve it, and remove servers you no longer use, since every connected server adds tool descriptions to the context.
claude mcp add --transport http convops https://mcp.convops.app/What is a workflow for AI agents?
A workflow decides the order of work. Two designs share the name, and they solve different problems.
A scripted workflow moves the plan into code that runs inside a session. Claude Code's dynamic workflows are the clearest example: Claude writes a JavaScript script that orchestrates many subagents, a runtime executes it in the background, and saved scripts live in .claude/workflows/. Anthropic documents its limits plainly: no mid-run user input ("for sign-off between stages, run each stage as its own workflow"), resumable within the same session, and up to 1,000 agents per run. It is excellent for audits, migrations and cross-checked research.
An engine-held workflow keeps the process outside any session. The engine stores the steps and the cursor, hands the agent one step at a time, and evaluates gates before the run can move. Runs persist, so a different person or a different AI client can resume where the last one stopped. ConvOps is this kind of engine, reached over MCP. Steps inside one workflow run in order, never at the same time; parallel work is split into child tasks that start together while the parent waits.
The two designs answer different risks. A scripted workflow protects you from doing a large job by hand: it spreads the work across many agents and collects the results. An engine-held workflow protects you from doing a repeated job differently each time: it keeps the order, holds the run at the points where a person must decide, and records each step so the run can be picked up by someone else. A team that runs a nightly audit and a weekly release may reasonably use both, and the release workflow can even start a step that kicks off a scripted sweep.
sourcesClaude Code docs: dynamic workflows
When should you use a skill, MCP or a workflow?
Choose by the question you are trying to answer, then combine. A quick rule of thumb: reach for MCP when the data or the action lives in another system, a skill when the know-how stays the same from task to task, and a workflow when the order and the stopping points matter.
| Need | Layer | Example |
|---|---|---|
| Consistent pull request descriptions | Skill | A pr-description skill in the repo |
| The agent reads tickets and docs | MCP | Issue tracker and docs servers |
| Audit every package in the monorepo tonight | Scripted workflow | One script, many subagents, one report |
| Every release signed off by a person | Engine-held workflow | A release workflow with an approval gate |
- The agent keeps doing a task slightly differently each time: write a skill
- The agent cannot reach a system it needs: connect an MCP server
- One job needs dozens of agents in parallel, finished in one sitting: use a scripted workflow
- Work must follow the same steps every time, across people, sessions or tools: use an engine-held workflow
- A person must approve before something happens: put an approval gate in a workflow, not a sentence in a skill
- A rule should reach the agent at the moment it applies: deliver it inside the step, and keep stops in gates
How do skills, MCP and workflows work together?
Take a release process. MCP connects the agent to the workflow engine and to your code host. The workflow holds the steps: prepare the changelog, run the checks, wait for approval, publish. The changelog step names a skill, so the agent loads the release-notes know-how exactly when it is needed. The approval step is a gate, so the run stops until a person passes it, whatever the model thinks.
Each layer does what it is good at. The skill keeps the craft in one file. MCP keeps access standard. The workflow keeps order and accountability. Remove any layer and you push its job into a place that handles it badly: process written into a skill, or know-how pasted into every step.
The layers also travel well. The Agent Skills format and MCP are both supported across many clients, and an engine reached over MCP serves the same steps to any of them. A teammate in Cursor and another in Claude Code can run the same release workflow, load the same skill and stop at the same gate.
{
"id": "changelog",
"instructions": "Draft the release notes with the release-notes skill.",
"gate": { "require_context": true }
}
{
"id": "approve",
"gate": { "requires_approval": true }
}What are the common mistakes?
Most failures come from asking one layer to do another layer's job. The fix is rarely a better prompt; it is moving the responsibility to the layer built for it.
| Mistake | Symptom | Fix |
|---|---|---|
| A whole process written as one skill | Steps skipped when the model judges them unnecessary | Move the order into a workflow; keep the craft in the skill |
| Approval asked for in a prompt | "Approved" appears in chat, nothing records it, nothing blocks | An approval gate the engine evaluates |
| One MCP server per thought | Dozens of tools crowd the context | Fewer servers with clear scopes; know-how in skills instead |
| A scripted fan-out for multi-day work | The run dies with the session, no sign-off between stages | An engine-held workflow with child tasks |
| Everything in CLAUDE.md or AGENTS.md | A long file the agent skims | Facts in the file, procedures in skills, process in workflows |
in the prompt read by the AI
Shipped. Nobody said yes.
as a gate checked by the engine
Waiting for you.
Frequently asked questions
Are skills replacing MCP?
No. They solve different problems. A skill tells the agent how to do something; MCP gives it access to systems. A skill can tell the agent which MCP tools to use and how.
Can a skill enforce an approval?
Not reliably. A skill is instructions the model follows when it judges them relevant. An approval that must hold needs a gate evaluated outside the model, such as a workflow engine's approval gate.
What is the difference between Claude Code dynamic workflows and ConvOps workflows?
Dynamic workflows are scripts that orchestrate many subagents inside one session, with no mid-run user input. ConvOps workflows are processes an engine holds across sessions, serving one step at a time, with approval gates that pause the run. They suit different jobs and can be used together.
Do I need MCP to use a workflow engine?
To use ConvOps from an AI client, yes: the engine is an MCP server your client connects to, and it uses OAuth sign-in on first use. Other workflow tools may use their own SDKs or APIs.
Where do subagents fit?
A subagent is a worker the main agent spawns for a delegated task. Skills can run in a subagent, scripted workflows orchestrate many of them, and an engine-held workflow can name which agent a step should use.