GitHub Copilot Spec (Agents, Skills, MCP)
Last verified: 2026-02-14
Primary sources
Config locations
| Scope |
Path |
| Project agents |
.github/agents/*.agent.md |
| Project skills |
.github/skills/*/SKILL.md |
| Project instructions |
.github/copilot-instructions.md |
| Path-specific instructions |
.github/instructions/*.instructions.md |
| Project prompts |
.github/prompts/*.prompt.md |
| Org/enterprise agents |
.github-private/agents/*.agent.md |
| Personal skills |
~/.copilot/skills/*/SKILL.md |
| Directory instructions |
AGENTS.md (nearest ancestor wins) |
Agents (.agent.md files)
- Custom agents are Markdown files with YAML frontmatter stored in
.github/agents/.
- File extension is
.agent.md (or .md). Filenames may only contain: ., -, _, a-z, A-Z, 0-9.
description is the only required frontmatter field.
Frontmatter fields
| Field |
Required |
Default |
Description |
name |
No |
Derived from filename |
Display name |
description |
Yes |
— |
What the agent does |
tools |
No |
["*"] |
Tool access list. [] disables all tools. |
target |
No |
both |
vscode, github-copilot, or omit for both |
infer |
No |
true |
Auto-select based on task context |
model |
No |
Platform default |
AI model (works in IDE, may be ignored on github.com) |
mcp-servers |
No |
— |
MCP config (org/enterprise agents only) |
metadata |
No |
— |
Arbitrary key-value annotations |
Character limit
Agent body content is limited to 30,000 characters.
Tool names
| Name |
Aliases |
Purpose |
execute |
shell, Bash |
Run shell commands |
read |
Read |
Read files |
edit |
Edit, Write |
Modify files |
search |
Grep, Glob |
Search files |
agent |
Task |
Invoke other agents |
web |
WebSearch, WebFetch |
Web access |
Skills (SKILL.md)
- Skills follow the open SKILL.md standard (same format as Claude Code and Cursor).
- A skill is a directory containing
SKILL.md plus optional scripts/, references/, and assets/.
- YAML frontmatter requires
name and description fields.
- Skills are loaded on-demand when Copilot determines relevance.
Discovery locations
| Scope |
Path |
| Project |
.github/skills/*/SKILL.md |
| Project (Claude-compatible) |
.claude/skills/*/SKILL.md |
| Project (auto-discovery) |
.agents/skills/*/SKILL.md |
| Personal |
~/.copilot/skills/*/SKILL.md |
MCP (Model Context Protocol)
- MCP configuration is set via Repository Settings > Copilot > Coding agent > MCP configuration on GitHub.
- Repository-level agents cannot define MCP servers inline; use repository settings instead.
- Org/enterprise agents can embed MCP server definitions in frontmatter.
- All env var names must use the
COPILOT_MCP_ prefix.
- Only MCP tools are supported (not resources or prompts).
Config structure
Server types
| Type |
Fields |
| Local/stdio |
type: "local", command, args, tools, env |
| Remote/SSE |
type: "sse", url, tools, headers |
Prompts (.prompt.md)
- Reusable prompt files stored in
.github/prompts/.
- Available in VS Code, Visual Studio, and JetBrains IDEs only (not on github.com).
- Invoked via
/promptname in chat.
- Support variable syntax:
${input:name}, ${file}, ${selection}.
Precedence
- Repository-level agents
- Organization-level agents (
.github-private)
- Enterprise-level agents (
.github-private)
Within a repo, AGENTS.md files in directories provide nearest-ancestor-wins instructions.