The one-sentence version

A Skill packages instructions and reference material Claude loads on demand - it teaches Claude how to do a job well. An MCP server (Model Context Protocol) is a live connection to an actual external system - it gives Claude access to real, current data and the ability to act on it. One is knowledge. The other is reach.

A useful test: if you deleted the internet connection to the system in question, would the capability still work? A Skill's playbook still works offline - it's static instructions. An MCP connection to your CRM stops working instantly, because it was never anything but a live pipe.

What each one is actually for

Skills: how to do the job

Refund policy wording, escalation thresholds, brand tone, report formatting standards, domain reference tables - anything that's true regardless of which specific customer or record you're looking at right now.

MCP: what's actually true right now

This customer's current subscription tier, this quarter's real revenue numbers, this ticket's current status - anything that changes and needs to be fetched fresh, not memorized into a prompt.

Where teams actually get this wrong

The most common mistake isn't picking the wrong one - it's trying to make one do the other's job. Two failure patterns show up constantly:

Hardcoding live data into a Skill

Pasting current pricing, current inventory counts, or example customer records directly into a Skill's reference material. It's accurate on day one and silently wrong by week three, with no error to catch it.

Asking an MCP connection to enforce policy

Expecting the database connection itself to "know" the refund threshold or tone rules. A tool call returns data - it has no opinion on how Claude should use it. That judgment belongs in the Skill or the system prompt.

Not sure which piece your current AI project is actually missing? Talk to us about an architecture review before you build the wrong half first.

A concrete example: the support Skill from last week

In a Claude-powered support flow, the Skill carries the refund policy, the escalation criteria, and the approved response templates - static, versioned, editable by a support lead without touching code. When a specific ticket comes in, an MCP connection to the helpdesk (or a plain tool call, the underlying mechanism is similar) fetches that customer's actual plan tier, order history, and open ticket status. Claude combines both: the policy tells it what a plan-tier customer is entitled to; the live data tells it what plan tier this specific customer is actually on. Neither piece alone produces a correct answer.

Do you need to build your own MCP server?

Not always. Many common systems - popular CRMs, project trackers, cloud storage, common databases - already have community or vendor-published MCP servers you can connect to directly. Building a custom one is worth the engineering time specifically when you need access to an internal or proprietary system with no existing connector, or when you need to constrain exactly what Claude can read or write more tightly than a general-purpose connector allows - a legitimate and common requirement once real customer data is involved.

Decision table

You needReach for
Consistent policy, tone, or formatting across every responseA Skill
Claude to read or write a live system on your behalfAn MCP connection (or a plain tool call)
Both - judgment applied to current dataA Skill for policy + MCP for the data it acts on
A one-off, narrow capability specific to your appA custom tool definition, often simpler than either

Key takeaways

  • Skills package instructions and reference material Claude loads on demand - knowledge, not access.
  • MCP connects Claude to a live external system - access, not judgment.
  • Hardcoding live data into a Skill or expecting a tool connection to enforce policy are the two most common architecture mistakes in an early build.
  • Most production business agents need both: a Skill for how to reason, an MCP connection or tool call for what's currently true.
  • Check for an existing MCP server before building a custom one - many common systems already have one published.
This is a general architecture framework - which pieces you actually need depends on your specific systems and data sensitivity. Mapping your real integrations is the right next step before writing either.