Birta
← Back to blog

· Max Krou, Founder Birta

Agent Skills vs. MCP: The Difference, Shown With a Real Server

Agent Skills vs MCP: a Skill loads instructions into the agent; an MCP server is a program it calls. Shown with Birta's real MCP tools and a sample Skill.

Agent Skills vs. MCP: The Difference, Shown With a Real Server

"Agent Skill" and "MCP" show up in the same conversations, and it is easy to end up unsure which one you need. They are not two ways of doing the same thing. A Skill packages instructions that load into the agent's own context. An MCP server is a separate process the agent calls over a protocol, the way it would call any outside service.

What a Skill actually is

A Skill is a folder of instructions, sometimes with a few scripts, that an agent reads into its own context when a task calls for it. Nothing runs outside the agent: no server, no network call, no separate process to keep alive. The agent simply knows more than it did, the same as if you had pasted the instructions into the conversation.

The format is small. The Agent Skills specification asks for one required file, SKILL.md, with YAML frontmatter carrying a name and a description, followed by instructions in plain Markdown. Beside it you can put scripts/ for code the agent may run, references/ for longer documentation and assets/ for templates, all optional.

What makes Skills cheap is how they load. At startup the agent sees only each Skill's name and description, roughly a hundred tokens apiece. The body arrives when the Skill is activated, and the reference files only when a step needs them. The spec calls this progressive disclosure: dozens installed, one paid for at a time.

What an MCP server actually is

An MCP server is a program running somewhere else. The agent connects and calls the tools it exposes, the way a web app calls an API. Our full explainer on what MCP is has the background; short version, it gives an agent a consistent way to reach a live external system instead of a one-off integration per tool.

Do they replace each other?

No. They solve different problems, and most working setups have both. A Skill can tell the agent how to use an MCP server well: which tool to call first, what to check before publishing, what order to do things in. They stack.

A real MCP server: how Birta's works

Birta ships an MCP server, reachable two ways depending on how your agent runs. If it works from files on your machine, you connect locally, and the command starts a small MCP server as a local process:

npx -y @birta/cli mcp

If your agent runs somewhere else, or you'd rather not run anything locally, you connect to a remote server over HTTP instead, using the same setup as any hosted MCP connection:

claude mcp add --transport http birta https://birta.dev/mcp

Same product, same capabilities either way. Neither is a Skill: both are MCP, a server your agent connects to and calls rather than instructions it reads.

What the agent gets from that connection is a list of named tools. It can list_projects and create_project, open a draft with create_version, fill it with write_file and edit_file, read the remarks left on the draft with list_version_comments, and put it live with publish_version. There are tools for domains (connect_domain, verify_domain), lead forms (create_form, list_leads), visitor stats and rollback. The full list for both connections is on the Birta MCP reference.

Every one is an action the agent could not take alone. That is the tell for MCP: the capability lives on the other side of the connection.

A real Skill: a publish checklist that drives those tools

Birta ships no Skill of its own. It does not need to, because the server already describes its tools to any agent that connects. But a Skill is the right place for the judgment the server cannot carry: what to check before you publish, and in what order. Here is what one would look like, built only on tools the server exposes.

---
name: birta-publish-checklist
description: Publish a static site to Birta through its MCP tools without skipping review. Use when the user asks to publish, ship, or go live with a site on Birta.
---

1. Call `list_projects`. If the site has no project yet, `create_project`.
2. Call `list_versions`. If a draft already exists, work in it. Otherwise call
   `create_version` with `from_version` set to the live version, so you change
   only what you need.
3. Make the edits with `write_file` or `edit_file`. Confirm `index.html` is at
   the site root with `list_files`; publishing is refused without it.
4. Stop. Give the owner the draft address and wait for their reply.
5. Call `list_version_comments` on the draft. Fix every open thread in the same
   draft. Do not open a second one.
6. Only when the owner says it is good, call `publish_version` with a one-line
   note. Report both addresses it returns: the live site and the review page.
7. If the owner reports a problem after publishing, use `list_versions` and
   `rollback` to the previous number rather than editing live.

Read that again with the distinction in mind. The Skill contains no code that publishes anything, and cannot create a project or write a file. Every verb in it is a call to the MCP server, and the server would accept those calls in any order.

What the Skill adds is the order, and the two places where the agent should stop and wait for a person. That is knowledge rather than capability, and it costs nothing until the agent decides the task is about publishing and pulls the file in.

To try it, the folder layout is the one our own writing Skills use: a SKILL.md at the top, a references/ folder beside it when the instructions grow. Drop the folder where your agent looks for Skills, connect the MCP server, and ask it to publish something.

Skill vs. MCP, side by side

Agent SkillMCP server
What it isA folder with a SKILL.md and optional scripts and referencesA running program that speaks the Model Context Protocol
Who hosts itNobody. It sits on disk where the agent looks for SkillsWhoever runs the process: you, locally, or a service like Birta over HTTP
Who executesThe agent itself, inside its own contextThe server, on the other side of the connection
What it carriesInstructions, judgment, order of operationsCapabilities: named tools with typed inputs and live results
When it loadsName and description at startup; the body only when activatedTool list on connect; each tool when the agent calls it
What it can reachOnly what the agent could already reachWhatever the server has access to
Reach for it whenThe agent knows how to do the task badly and you want it done wellThe agent cannot do the task at all without an outside system
How they combineThe Skill says which tools to call, and when to stop and askThe server does the work when a tool is called

When to reach for which

Reach for a Skill when you want the agent to know how to do something well. Reach for MCP when it needs to do something outside its own context: publish a file, check a version, read a live status. Most real setups use both, the Skill supplying judgment and the protocol supplying action.

A useful test: if you deleted it, what would the agent lose? Delete a Skill and the agent still has every tool, it is just worse at using them. Delete an MCP server and a whole class of actions disappears.

See the MCP server in action

Try either connection, local or remote, and publish something to see the tool calls happen for real. Or skip the setup and describe the page in Birta's chat; its agent uses the same tools.

Read the connection guide

Frequently asked questions