← All articles

Claude Skills – Creating and Sharing Skills

A Claude Skill is a folder of instructions, scripts and reference files that teaches Claude a repeatable task. We show how skills build on an IT help desk's MCP server, compare four ways to share skills, and set up a plugin marketplace to install them.

A skill folder holding SKILL.md, a reference file and a script plugs into Claude, which is also connected to an MCP server: the skill brings the know-how, the MCP server the tools. queue-brief/ SKILL.md brief-format.md sla_check.py SKILL CLAUDE MCP MCP SERVER
A skill packages the know-how for one task, so Claude can repeat it the same way every time.

Introduction

In our previous blog, Model Context Protocol (MCP) – A Deep Dive, we built a small MCP server for an IT service help desk. It lets employees and the IT service team raise, find and update tickets from an AI assistant, instead of filling in forms and searching through queues.

An MCP server on its own leaves two gaps. New users have to work out what to ask before they get anything useful out of it. And a task that should come out the same way every time, such as the morning review of a team’s ticket queue, has to be asked for in full each time. Even then, there is no guarantee that it comes back in the same format.

Claude Skills close both gaps. In this blog, we will look at what a skill is, how it differs from an MCP server, the skills that suit a help desk, and the ways to share skills across an organization, including a plugin marketplace. Setting up a marketplace and a plugin is much simpler than the terms suggest.

What is a Claude Skill?

A Claude Skill is a packaged folder of Markdown instructions, helper scripts and resources that teaches Claude how to perform a specialized, repeatable task. A prompt gives Claude instructions for one conversation. A skill stays installed, and Claude uses it whenever the task comes up.

What Goes Into a Skill?

Every skill is a folder with a SKILL.md file at its root. Below is the layout of a typical skill:

Folder layout
queue-brief/
├── SKILL.md            instructions, with the name and description at the top
├── brief-format.md     reference file, read only when needed
└── scripts/
    └── sla_check.py    helper script, run rather than read

The SKILL.md file has two parts:

  • Frontmatter: A short YAML block at the top with the skill’s name and a description. The description is the most important line in the skill, because Claude uses it to decide when the skill applies.
  • Instructions: Plain Markdown that tells Claude what to do, step by step, and what the result should look like.

Below is a simplified example, a queue brief for the IT service team. It lists the open tickets in the team’s queue, with the ones close to breaching their service level agreement (SLA) first:

Markdown
---
name: queue-brief
description: >-
  Summarizes the open tickets in an IT help desk queue. Use when the
  user asks what is open, for the morning brief, or which tickets are
  close to breaching their SLA.
---

# Queue brief

1. Use the user's own team, unless they name a different one.
2. Call the list_tickets tool for the open tickets in that team's queue.
3. Run scripts/sla_check.py to find the tickets close to their SLA.
4. Group the tickets by priority, and list the SLA risks first.
5. Write the brief in the format described in brief-format.md.

How Does Claude Load a Skill?

Claude does not read every installed skill in full. It loads each skill in three layers, which Anthropic calls progressive disclosure:

  • At startup: Only the name and description of each installed skill.
  • When the task matches: The full SKILL.md, once Claude decides that the skill applies. In Claude Code, users can also run a skill as a slash command, such as /queue-brief.
  • When needed: Supporting files, such as the reference file above, are read only when the instructions point to them. Scripts are run without their code being loaded into the conversation.
Claude loads a skill in three layers. At startup, only the name and description, which are always loaded. When the task matches, the full SKILL.md. When needed, the reference files are read and the scripts are run without loading their code. name + description SKILL.md reference files · scripts AT STARTUP always loaded WHEN THE TASK MATCHES full instructions loaded WHEN NEEDED files read, scripts run
Claude loads a skill in layers, so an installed skill costs almost nothing until it is used.

This is why you can install many skills without filling Claude’s context window, the same context bloat we warned about for MCP tools in our previous blog.

Claude Skills vs. MCP

Skills and MCP servers are often mentioned together, but they solve different problems. An MCP server gives Claude access to a system. A skill gives Claude the know-how to use that access for a particular task. This table shows the main differences:

MCP serverClaude Skill
What it providesTools and data from an external systemInstructions, scripts and reference files for a task
The question it answers“What can Claude do in this system?”“How should Claude do this task?”
How it is builtCode, deployed as a service or run locallyA folder of Markdown files, with optional scripts
Who can write itDevelopers who know the systemAnyone who knows the task
Exampleget_ticket returns the details of one ticketThe queue brief calls several tools and writes one report

The two work best together. In the help desk example, the MCP server provides the tools, and each skill describes which tools to call, in what order, and how to present the result.

A user asks for the queue brief. The queue-brief skill gives Claude the steps and an SLA script. Claude calls list_tickets on the help desk MCP server, runs the script, and returns one report to the user. USER /queue-brief REPORT SKILL queue-brief sla_check.py steps CLAUDE MCP SERVER create_ticketget_ticketupdate_ticketsearch_knowledge_base list_tickets
The skill says what to do and in what order. The MCP server’s tools and the skill’s script do the work.

Why Build Skills on Top of an MCP Server?

Skills on top of an MCP server help in three ways:

  • To help new users get started: A new user can run a skill without knowing what to ask. Running the queue brief gives a new member of the IT service team a useful report straight away, and it also shows them what the server can do.
  • To make tasks repeatable: A skill fixes the steps and the format, so the same report comes out the same way every day, whoever asks for it.
  • To capture the team’s know-how: Rules that live in a few people’s heads, such as which category of ticket goes to which team, can be written into a skill that everyone uses.

Below are some skills that suit an IT help desk:

SkillUsed byWhat it does
raise-ticketEmployeesTurns a description of a problem into a ticket with the details the IT team needs, or finds a known fix instead
my-ticketsEmployeesShows the status of the user’s open tickets
queue-briefIT service teamLists the open tickets in a queue, with the SLA risks first
triage-ticketIT service teamSuggests a category, priority and assignee group for a ticket
weekly-sla-reportIT service teamReports a week’s SLA performance, by team and by priority

Note that raise-ticket does more than call create_ticket. It first searches the knowledge base, so that a known fix can save a ticket altogether, and it asks for any missing details, such as the device or the location, instead of guessing them.

The /queue-brief command produces a report in a fixed format: first the tickets at risk of breaching their SLA, then the open tickets by priority, from P1 to P4. /queue-brief QUEUE BRIEF SLA RISKS OPEN TICKETS BY PRIORITY P1P2P3P4
The queue brief: the open tickets in one queue, SLA risks first, in the same format every time.

How Can You Share Skills Across an Organization?

A skill only helps the people who have it installed. There are four ways to share skills, and they differ mainly in how new versions reach your users:

OptionHow it worksBest for
Zip file exportPackage the skill folder as a zip file, and each user uploads it in their Claude settings.Sharing one skill with a few people
Shared Git repo or cloud driveKeep the skills in a repository or a shared folder. Users copy them into their own skills folder, or the project’s .claude/skills folder in Claude Code.Teams that already share a repository
Claude Team or EnterpriseAn admin uploads skills once, and they are available to users across the organization.Organizations on a Team or Enterprise plan
Bundled pluginsSkills are packaged in a plugin, which is listed in a marketplace and installed with a few commands. New versions come from the same marketplace.Many users who need to stay up to date

Which option fits depends on how many people need the skills and how often they change. When skills are used across several teams and change over time, a plugin in a marketplace gives everyone one place to install them from and to get updates. That is the option we will set up below.

How Do You Create a Marketplace and a Plugin?

The two terms sound heavier than they are:

  • Plugin: A folder that bundles skills with a small manifest file. It can also carry other things, such as slash commands, subagents, hooks and MCP server settings.
  • Marketplace: A catalog of plugins. In practice, it is a Git repository with one JSON file that lists the plugins and where to find them.

Below is a simplified layout of a Git repository that holds both:

Folder layout
helpdesk-skills/                      marketplace root (the Git repository)
├── .claude-plugin/
│   └── marketplace.json              lists the plugins in this marketplace
└── plugins/
    └── helpdesk/
        ├── .claude-plugin/
        │   └── plugin.json           the plugin's manifest
        └── skills/
            ├── queue-brief/
            │   └── SKILL.md
            ├── raise-ticket/
            │   └── SKILL.md
            └── triage-ticket/
                └── SKILL.md

The marketplace file needs a name, an owner and the list of plugins, each with a name and the path to its folder:

JSON
{
  "name": "helpdesk-skills",
  "owner": { "name": "IT service team" },
  "plugins": [
    {
      "name": "helpdesk",
      "source": "./plugins/helpdesk",
      "description": "Skills for the IT help desk"
    }
  ]
}

The plugin’s manifest only needs a name, though a version and a description help users:

JSON
{
  "name": "helpdesk",
  "version": "1.0.0",
  "description": "Skills for the IT help desk"
}

Keep the plugin’s name the same in both files, because it is the name users type when they install it.

A marketplace is a Git repository with a marketplace.json file. It holds a plugin with a plugin.json file and three skills: queue-brief, raise-ticket and triage-ticket. In Claude Code, /plugin marketplace add registers the repository, /plugin install installs the plugin, and /reload-plugins loads its skills. MARKETPLACE Git repository marketplace.json PLUGIN plugin.json queue-briefraise-tickettriage-ticket 1/plugin marketplace add 2/plugin install 3/reload-plugins CLAUDE CODE
A marketplace is a Git repository that lists plugins, and a plugin bundles the skills.

Once the repository is pushed, each user runs three commands in Claude Code:

Claude Code
/plugin marketplace add your-org/helpdesk-skills
/plugin install helpdesk@helpdesk-skills
/reload-plugins
  • The first command registers the repository as a marketplace.
  • The second finds the plugin in that marketplace and installs it.
  • The third loads the new skills into the running session, without a restart.

Skills from a plugin are named after the plugin, so the queue brief runs as /helpdesk:queue-brief and cannot clash with a personal skill of the same name. A plugin can also declare MCP servers in a .mcp.json file, so one install can give users both the tools and the skills that use them.

Tips for Writing a Skill

Anthropic’s documentation on skills covers the details. Three points from it are worth keeping in mind from the start:

  • Write the description for Claude: Say what the skill does and when to use it, in the words users actually use, such as “my tickets” or “SLA”. Claude picks a skill by its description, so a vague one means the skill is rarely used.
  • Keep SKILL.md short: Anthropic recommends keeping it under 500 lines. Move long reference material into separate files, and point to them from the instructions.
  • Use scripts for fixed logic: When a step must give the same result every time, such as working out the business hours left before an SLA breach, a script does it more reliably than written instructions.

The Bottom Line

An MCP server gives Claude access to a system, and skills teach Claude how to use that access for specific, repeatable tasks. Because a skill is a folder of Markdown, anyone who knows a task can write one. To share skills across teams, a plugin in a Git-based marketplace takes a few small files to set up and three commands to install, and it gives everyone one place to get updates.