1) Skills — What Claude can do
A skill is a reusable capability stored as a file on disk (not embedded in a prompt). Each skill is a singleSKILL.md file composed of two parts:
- Frontmatter: provides
nameanddescription. Thedescriptionis especially important — Claude uses it as the primary signal to decide when to invoke the skill. - Markdown body: contains the step-by-step instructions or actions the skill performs.
.claude/skills and the SDK discovers them automatically. You do not explicitly call a skill; when a user request arrives, Claude matches the request text against every skill description and invokes the best-fit skill.
Example SKILL.md:
Write clear, concise frontmatter descriptions. The description is the primary signal Claude uses to select the appropriate skill, so include the common user phrasings and intent you expect.
- Location:
.claude/skills/*.md - Naming: use short, intent-focused
namevalues (e.g.,ec2-list,vpc-create). - Behavior: keep skill steps deterministic and explicit so subagents or orchestrators can rely on them.
2) Subagents — Who does the work?
Rather than one monolithic agent handling everything, break responsibilities into a team of specialist subagents. Each specialist has an agent definition containing:nameanddescription— when to use the specialist- a focused system prompt tailored to the domain
- a minimal, least-privileged toolset
- Orchestrator splits the request into tasks.
- A network specialist handles VPCs, subnets, and routing.
- A security specialist handles security groups and policies.
- The orchestrator gathers results and presents a unified response.

Benefits:
- Smaller contexts per specialist (faster reasoning)
- Least-privileged tools reduce blast radius
- Easier to test and maintain individual specialists
3) MCP — Where the tools live
MCP (Managed Connector Provider / tool server) is where external system integrations live. Instead of writing bespoke wrappers, plug Claude into an MCP server — a separate process that already knows how to communicate with systems (filesystem, CloudFormation, databases, custom APIs) and exposes those capabilities as structured tools. Key points:- Declare servers in your agent configuration under
mcpServers— you do not enumerate each tool. - At runtime, Claude discovers the server’s available tools.
- Tools are namespaced by server using double underscores, e.g.,
mcp__cfn__list_resources. The double underscore separates server and tool names to avoid collisions. - One agent can connect to multiple MCP servers; adding capability is as simple as plugging in another server.

Do not list individual tools in your agent config. Declare
mcpServers and let the SDK discover and namespace the server’s tools at runtime to avoid configuration drift and tool name collisions.mcp__cfn__list_resources(servercfn, toollist_resources)mcp__filesystem__read_file(serverfilesystem, toolread_file)
Putting the three together — What, Who, Where
- Skills (What): Reusable, disk-based capability definitions (intent + steps).
- Subagents (Who): Specialist agents with focused prompts and least-privileged tool access.
- MCP (Where): External tool servers that expose structured tools Claude can call.
- A subagent can execute a skill.
- A skill can instruct the subagent to call an MCP tool.
- The orchestrator coordinates and threads state/memory across the interaction.

Next steps
Now that you understand Skills, Subagents, and MCP and how they fit together, the next lesson will show a full walkthrough: plan, delegate, and deploy — using all three at once.Links and references
- Claude Agent SDK docs (reference)
- CloudFormation basics (example external system)
- Kubernetes Basics (general infra reference)