# Agent Skills

Skills are packages of instructions and resources that teach the agent how to perform specific tasks. Amp includes built-in skills, and you can install or create your own—either project-specific (`.agents/skills/`) or user-wide (`~/.config/agents/skills/` or `~/.agents/skills/`).

#### Creating Skills

Amp has a built-in `building-skills` skill that can create skills tailored to your codebase, workflow, and systems. To create one, just ask:

```
Create a skill for deploying to staging
```

Ask for a "project-specific skill" to save it to the current project, or a "user-wide skill" for personal use across all your projects. Project skills live in `.agents/skills/` and can be committed to git so your team gets them automatically.

Skill precedence (first wins):
- `~/.config/agents/skills/`
- `~/.agents/skills/`
- `~/.config/amp/skills/`
- `.agents/skills/`
- `.claude/skills/`
- `~/.claude/skills/`
- Plugins, legacy toolbox directories, and built-in skills

#### Viewing Skills

To view installed skills, use the command palette (`Ctrl+O` in the CLI):
- **skill: list** — View installed skills

#### Skill Format

Each skill is a directory containing a `SKILL.md` file with YAML frontmatter:

```markdown
---
name: my-skill
description: A description of what this skill does
---

# My Skill Instructions

Detailed instructions for the agent...
```

The `name` and `description` are always visible to the model and determine when it invokes the skill. Names must be unique—project-specific skills take priority over user-wide, and both override built-in skills. The rest of the `SKILL.md` content is only loaded on demand when the skill is invoked.

Skills can include bundled resources (scripts, templates, etc.) in the same directory, which the agent can access relative to the skill file.

#### MCP Servers in Skills

Skills can bundle MCP servers by including an `mcp.json` file in the skill directory. The servers start when Amp launches, but their tools remain hidden until the skill is loaded. This is the recommended way to use MCP servers—it keeps the tool list clean and reduces context bloat compared to adding servers directly to your Amp configuration.

**Example `mcp.json` (local command-based server):**

```json
{
	"chrome-devtools": {
		"command": "npx",
		"args": ["-y", "chrome-devtools-mcp@latest"],
		"includeTools": ["navigate_*", "take_screenshot", "click", "fill*"]
	}
}
```

**Example `mcp.json` (remote HTTP server):**

```json
{
	"linear": {
		"url": "https://mcp.linear.app/sse",
		"includeTools": ["list_issues", "create_issue", "update_issue"]
	}
}
```

**Fields for local servers:**
- `command` (`string`) — the command to run
- `args` (`string[]`, optional) — command arguments
- `env` (`object`, optional) — environment variables

**Fields for remote servers:**
- `url` (`string`) — the server endpoint
- `headers` (`object`, optional) — HTTP headers to send with requests

**Common fields:**
- `includeTools` (`string[]`, optional but recommended) — tool names or glob patterns to filter which tools are exposed