Skills, MCP servers, plugins, hooks and subagents
These five pieces are easy to confuse. All of them work on their own; a plugin is only needed to package several together.
Scroll sideways to see all columns. With the table focused, use the arrow keys.
| Piece | What it is | Where it lives | SpringRoll |
|---|---|---|---|
| Skill | A SKILL.md file of instructions Claude loads when relevant, or you run as /name | ~/.claude/skills/ or .claude/skills/ in a project | The springroll skill: the deployment procedure, run as /springroll |
| MCP server | Tools and data Claude can call | Added with claude mcp add | SpringRoll's remote MCP server: springroll.deploy, springroll.deploy.status and more |
| Plugin | A package of skills, agents, hooks and MCP servers installed as one unit | A directory with .claude-plugin/plugin.json, installed with /plugin | Not needed: the skill and MCP server cover deployment |
| Hook | A command Claude Code runs at a point in its lifecycle, such as after every edit | Settings, or a plugin's hooks file | Not needed |
| Subagent | A specialised agent Claude can delegate work to | Agent definition files, or a plugin | Not needed |
What is a Claude Code skill?
A skill is a folder containing a SKILL.md file: YAML frontmatter that tells Claude when to use it, followed by the instructions Claude follows when it runs. Only the description is recommended; the folder name becomes the command. Claude loads a skill on its own when your request matches its description, or you run it directly as /skill-name with arguments.
Unlike CLAUDE.md, a skill's body loads only when it is used, so long procedures do not crowd every conversation. Custom slash commands have been merged into skills: .claude/commands/deploy.md and .claude/skills/deploy/SKILL.md both create /deploy. Claude Code skills follow the Agent Skills open standard, so the same folder can work in other tools that support it.
This example turns a team's release process into a skill that uses SpringRoll's MCP tools. Saved as ~/.claude/skills/ship/SKILL.md, it creates /ship. disable-model-invocation stops Claude from running a deploy on its own; Anthropic recommends that setting for workflows with side effects.
---
description: Build this project and deploy it to the team through SpringRoll. Use when the user asks to ship, publish or deploy the app.
disable-model-invocation: true
---
1. Run the production build and fix any errors before continuing.
2. Call springroll.placement.preview and show me the placement receipt.
3. After I confirm, call springroll.deploy and follow springroll.deploy.status until READY or failure.
4. Report the app URL, the provider and plan chosen, and who can open the app.Where Claude Code skills live
Where you save a skill decides who gets it. Project skills load from the working directory and each parent up to the repository root.
Scroll sideways to see all columns. With the table focused, use the arrow keys.
| Location | Path | Who gets it |
|---|---|---|
| Personal | ~/.claude/skills/<name>/SKILL.md | You, in every project on this machine |
| Project | .claude/skills/<name>/SKILL.md | Everyone working in the repository, once committed |
| Nested | <subdir>/.claude/skills/<name>/SKILL.md | Sessions started in or below that folder |
| Plugin | <plugin>/skills/<name>/SKILL.md | Wherever the plugin is enabled, as /plugin-name:skill-name |
| Enterprise | The managed settings directory | Everyone your organization deploys it to |
How to install a Claude Code skill
The simplest install is a copy: put the skill's folder in ~/.claude/skills/ for yourself or .claude/skills/ in the repository for your team. Skills published on GitHub can also be installed with the open-source skills CLI from Vercel Labs, which supports Claude Code, Codex, Cursor and many other agents. It installs into the current project by default; add -g for every project, and --skill to pick one skill from a repository that holds several.
npx skills add <owner/repo> # every skill in the repository
npx skills add <owner/repo> --skill <name> # one skill
npx skills add <owner/repo> -g # for all your projects
npx skills list # what is installed
npx skills update # update installed skills
npx skills remove <name>Add SpringRoll's skill and MCP server to Claude Code
SpringRoll needs both pieces. The MCP server gives Claude the tools to deploy, follow builds and share apps; the skill gives it SpringRoll's deployment procedure, plus app-record templates for Next.js, Node, Docker, Redis and Cloudflare D1 projects. Connect the server first, because the skill uses it.
Run the two commands below in your project folder, start Claude Code, run /mcp to sign in to SpringRoll, then type /springroll deploy. Claude follows the skill: it inspects the project, shows you the proposed deployment and placement, and follows the build to its real result.
claude mcp add --transport http springroll https://springroll.dev/api/mcp
npx skills add springroll-dev/springroll-skill --skill springroll
# start Claude Code, run /mcp to sign in, then:
/springroll deployWhat is a Claude Code plugin, and how do you install one?
A plugin is a directory of skills, agents, hooks, MCP servers or other components that Claude Code installs and loads as one unit, usually with a manifest at .claude-plugin/plugin.json. Plugins come from catalogs: Claude Code adds Anthropic's official catalog the first time you start an interactive session, and you can add others from GitHub repositories or folders. Run /plugin and install from the Discover tab.
Choose a scope when you install: user (you, in every project), project (everyone in the repository, through the committed .claude/settings.json) or local (you, in this repository only). A plugin's skills appear as /plugin-name:skill-name. Everything a plugin runs, it runs as you, so read what it contains first. Disable one without uninstalling it with /plugin or claude plugin disable.
An enabled plugin costs context in every session: the names and descriptions of its skills and agents are in Claude's context on every turn, even when unused. Keep only the plugins you use.
Skill, plugin or MCP server: which should you use?
Match the piece to the job. Deployment needs two: a tool to act on the hosting platform and a procedure for doing it safely, which is why SpringRoll ships as an MCP server and a skill.
- Claude should follow a procedure or house rules: write a skill.
- Claude should read from or act on another system, such as a deployment platform or database: add an MCP server.
- Something must happen every time without Claude deciding, such as formatting after each edit: use a hook.
- You want to hand several of these to a team as one versioned install: package them as a plugin.
Frequently asked questions
Where are Claude Code skills stored?
Personal skills are in ~/.claude/skills/<name>/SKILL.md and project skills in .claude/skills/<name>/SKILL.md. Plugin skills live inside the plugin's skills folder.
What is the difference between a skill and a slash command?
They have been merged. A file in .claude/commands/ and a skill in .claude/skills/ both create the same /command; skills add supporting files and control over when Claude uses them.
Do Claude Code skills work in Codex?
Skills follow the Agent Skills open standard, and the skills CLI installs them into Codex as well as Claude Code. Claude Code-specific frontmatter fields may be ignored elsewhere.
How do I add SpringRoll to Claude Code?
Add SpringRoll's MCP server with claude mcp add and its skill with the skills CLI, sign in with /mcp, then run /springroll deploy. Together they give Claude the tools and the procedure.
