Claude Code Evolution: MCP, Commands, Agents & Skills
A visual journey through 9 months of Claude Code's tool evolution. From MCP to Slash Commands, Agents, and Skills — understand the design philosophy behind each tool.
Have you ever wondered why Claude Code has so many different tools? MCP, Slash Commands, Agents, Skills… they all seem similar, yet serve different purposes.
This article traces the 9-month evolution journey from April 2025 to January 2026, showing how each tool emerged to solve a specific problem — all working toward the same goal.
The Timeline at a Glance
MCP (Foundation) → Slash Commands → Agents → Skills → Skills 2.0 → Merge
↓ ↓ ↓ ↓ ↓
Before 0.2.31 v0.2.31 v1.0.60 v2.0.20 v2.1.0/v2.1.3
(Open Standard) (2025-04-02) (2025-07-24) (2025-10-16) (2026-01-07/09)
Quick Reference Table
| Tool | Version | Date | Purpose |
|---|---|---|---|
| MCP | Before v0.2.31 | - | External API integration (open standard) |
| Slash Commands | v0.2.31 | 2025-04-02 | Reusable workflow prompts |
| Agents | v1.0.60 | 2025-07-24 | Isolated task execution |
| Skills | v2.0.20 | 2025-10-16 | Auto-detected capabilities |
| Skills + Fork | v2.1.0 | 2026-01-07 | Skills with isolated execution |
| Merge | v2.1.3 | 2026-01-09 | Commands & Skills unified |
The Core Problem: Context vs Knowledge
Before diving into each tool, understand the fundamental challenge they all address:
Limited Context Window vs Infinite Knowledge Needs
Every token in your Context Window is precious. Yet, Claude needs to know:
- How to use Google Drive API
- Your Git commit conventions
- How to navigate your codebase
- What “good code” looks like in your project
If everything lives in Main Context, you run out of space for your actual problem.
Each tool in Claude Code exists to solve this from a different angle.
MCP: Move Universal Knowledge Out
What It Is
Model Context Protocol — An open standard for connecting AI assistants to external systems and data sources.
Why It Was Created
The common explanation: “Unified architecture for Claude to access external data.”
The real reason: Context saving.
Without MCP, every time you want to use Google Drive, Claude would need to know:
- API endpoints
- Authentication flows
- Request/response formats
- Error codes
- Rate limiting rules
This could easily consume 3000+ tokens of universal knowledge that has nothing to do with your specific problem.
How MCP Solves It
❌ Without MCP:
Main Context = Your Problem + API Documentation
✅ With MCP:
Main Context = Your Problem
External Server = API Documentation (loaded as tools)
The essence: Move universal knowledge outside, keep Context for your problem.
Key Insight
MCP is an open standard — not unique to Claude Code. Anyone can implement MCP servers, creating an ecosystem of reusable integrations.
Slash Commands: Load Details On Demand
What It Is
Custom markdown files in .claude/commands/ that insert predefined prompts into your conversation.
Why It Was Created
MCP solved external tools, but what about development workflow details?
Consider Git commits:
- Conventional Commits format
- When to use
--amend(and when never to) - Pre-commit hook handling
- Force push rules
Writing these in Main Context wastes space. Slash Commands solve this:
“Don’t load until needed”
How It Works
<!-- Main Context only knows: -->
"When user types /commit, execute commit.md"
<!-- commit.md (loaded only when triggered): -->
## Git Commit Workflow
1. Check git status
2. Parse changes
3. Git Safety Protocol (detailed rules...)
4. Handle pre-commit hooks
Key Insight
Slash Commands enable progressive disclosure — details appear only when needed. They also provide stability during model uncertainty, ensuring workflows execute in fixed steps.
Agents: Fork Out, Execute, Return Results
What They Are
Autonomous subprocesses that handle complex, multi-step tasks independently.
Why They Were Created
As tasks grow complex, single-context processing becomes unwieldy.
Imagine asking Claude to analyze a large project:
- Scan hundreds of files
- Each file has discoveries
- Massive intermediate thinking
Problems:
- Context explosion — intermediate processes fill tokens
- Main dialogue pollution — analysis details mix with primary conversation
How Agents Solve It
“Do it elsewhere, bring back results”
The key insight: Sub-agent Context never flows back to main dialogue.
- Independent conversation history
- Specialized system prompts
- Restricted tool sets (e.g., Explore agent: Read/Grep/Glob only)
- Returns “answer,” not “process”
This is Fork — branch out, execute independently, merge results.
Skills: Reusable Workflows
What They Are
Modular packages that extend Claude’s capabilities. Claude auto-detects when to use them.
Why They Were Created (v2.0.20 - 2025-10-16)
Initially, Skills provided:
- Reusable workflow definitions
- Auto-detection (vs manual slash commands)
- Bundled resources (scripts, references, assets)
Limitation: Skills ran in Main Context using the default agent.
The Major Upgrade: Skills + Fork (v2.1.0 - 2026-01-07)
Just 3 months after Skills launched came the game-changing update:
Two Superpowers Added
context: fork— Execute in isolated sub-agent contextagentfield — Specify which agent executes the skill
What Changed
| Before v2.1.0 | After v2.1.0 |
|---|---|
| Runs in Main Context | Runs in forked context |
| Uses default agent | Uses specified agent |
| Execution pollutes Main Context | Main Context stays clean |
The Evolution Timeline
Skills 2.0.20 (2025-10-16)
❌ No fork context
❌ No agent specification
│
├── 3 months →
│
▼
Skills 2.1.0 (2026-01-07) ⚡ MAJOR UPGRADE
✅ context: fork
✅ agent: Explore | general-purpose | custom
│
├── 2 days →
│
▼
Skills 2.1.3 (2026-01-09)
Slash Commands & Skills merged
(now Slash Command = Skill + user-invocable: true)
Complete Progressive Disclosure
With v2.1.0, Skills achieved full progressive disclosure:
- Definition layer → SKILL.md frontmatter
- Trigger layer → description determines when to use
- Execution layer → specify specialized agent
- Isolation layer → fork context keeps things clean
The Merge (v2.1.3 - 2026-01-09)
Just two days after v2.1.0, slash commands and skills merged:
“Merged slash commands and skills, simplifying the mental model with no change in behavior”
Now: Slash Commands are Skills — just with user-invocable: true.
This unified the mental model while preserving all functionality.
The Unified Architecture
All four tools solve the same core problem from different angles:
┌─────────────────────────────────────────────────┐
│ Main Context │
│ (Current Task + Project Config) │
└───────────────────┬─────────────────────────────┘
│
┌───────────────┼───────────────┬─────────────┐
│ │ │ │
▼ ▼ ▼ ▼
┌───────┐ ┌───────┐ ┌──────┐ ┌───────┐
│ MCP │ │Skills │ │Agents│ │Command│
└───────┘ └───────┘ └──────┘ └───────┘
│ │ │ │
External Workflows Expert Quick
Tools Knowledge Execution Triggers
【Move universal knowledge out】【Load on demand】【Isolate execution】
Solution Matrix
| Tool | Solves | How |
|---|---|---|
| MCP | External API knowledge | Move docs to external server |
| Commands | Workflow details | Don’t load until triggered |
| Agents | Complex task execution | Fork out, complete independently |
| Skills | Reusable workflows | Combine all three |
The Goal: Main Context only holds “current problem + project config.” Everything else loads on demand, executes in isolation, or exits when done.
The Essence: It’s All Prompts
Strip away the fancy names, and what remains?
MCP Server = External system prompts
Agent = Role-based prompts
Skill = Workflow prompts
Slash Command = User-triggered prompts
Tool names exist for different stages of use.
- “Connect MCP” is easier than “load external prompt package”
- “Use Explore agent” is clearer than “use exploration-type prompts”
- “Run /commit” is simpler than “trigger commit prompt”
The Design Philosophy
“Put the right prompt, in the right place, at the right time.”
This is progressive disclosure. This is context saving. This is the architecture of Claude Code.
Summary: 9 Months of Evolution
| Date | Version | Milestone |
|---|---|---|
| Before 0.2.31 | - | MCP foundation |
| 2025-04-02 | v0.2.31 | Slash Commands |
| 2025-07-24 | v1.0.60 | Custom Subagents |
| 2025-10-16 | v2.0.20 | Skills introduced |
| 2026-01-07 | v2.1.0 | Skills + Fork + Agent (major upgrade) |
| 2026-01-09 | v2.1.3 | Commands & Skills merged |
Nine months of iterative improvement, each tool building on the last — all toward the same vision.
Want to Explore Further?
Check out the interactive evolution timeline at /evolution to see this history visualized, or dive deeper into:
This article is based on the official Claude Code CHANGELOG and git commit history.