# Skills vs MCP

A skill is a markdown file, sometimes a folder of them, that an AI coding agent reads as part of its working context. The file tells the agent _when_ to apply itself and _what_ to do when it does.

Agent skills use an open format. The [skills.sh](https://www.skills.sh) registry indexes them across agents and provides one command that installs any of them.

## How agent skills work

Without Stream Agent Skills installed, an agent has to guess how to work with Stream based on whatever it learned during training and whatever it can find by searching online. With the skills installed, the agent reads our authoritative `SKILL.md` before writing any code and pulls live doc references when it needs them.

This means with the skills you know that the SDK versions in your generated code are current, specific function usage is correct, token generation follows our recommended patterns, and more - generally, you'll see fewer errors.

## How skills differ from MCP

MCP (Model Context Protocol) is a runtime protocol that connects an agent to tools and data sources through a long-lived server process.

A skill, by contrast, is static markdown that ships once and is read on demand. There's no server to run and no connection or state to maintain.

|              | Skill                   | MCP server               |
| ------------ | ----------------------- | ------------------------ |
| What it does | Teaches the agent _how_ | Gives the agent _access_ |
| Lifetime     | Read on demand          | Long-lived process       |
| Format       | Markdown                | Code                     |

A skill is read on demand and then it's done. An MCP server has to start up and hold a connection open the whole time the agent might reach for it:

<mermaid>

```text
flowchart TB
    subgraph Skill["Agent skill"]
      direction TB
      S1["Install once<br/>markdown lands on disk"] --> S2["Agent reads SKILL.md<br/>on demand"] --> S3["Generates code"]
    end
    subgraph MCP["MCP server"]
      direction TB
      M1["Start server process"] --> M2["Agent connects,<br/>connection stays open"] --> M3["Agent calls tools<br/>over the connection"]
    end

    style Skill fill:transparent,stroke:transparent
    style MCP fill:transparent,stroke:transparent
```

</mermaid>

<Admonition type="info">

The two approaches are complementary. Stream Agent Skills currently rely on the Stream CLI for live data access rather than an MCP server, because the CLI is already audited and maintained, and it only runs when the agent invokes it explicitly.

</Admonition>

## Project info

Stream Agent Skills are released under the Apache 2.0 license. Bug reports and pull requests are welcome at [GetStream/agent-skills](https://github.com/GetStream/agent-skills) on GitHub.


---

This page was last updated at 2026-06-16T16:17:06.654Z.

For the most recent version of this documentation, visit [https://getstream.io/agent-skills/docs/concepts/skills-vs-mcp/](https://getstream.io/agent-skills/docs/concepts/skills-vs-mcp/).