Issue 19 | What is MCP? Why is it the "USB interface" for AI Agents?
🎯 Learning Objectives
By the end of this issue, you will understand:
- The core concepts and design philosophy of Model Context Protocol (MCP)
- The fundamental differences between MCP and traditional REST APIs, SDKs
- Why MCP is considered the "USB Standard" for the AI Agent ecosystem
- Anthropic's open ecosystem strategy and business logic
📖 Core Concepts Explained
19.1 Why is MCP needed?
AI Agent's tool connection dilemma:
Without MCP:
Claude ──┬──► GitHub API (requires Token + REST)
├──► Jira API (requires OAuth + GraphQL)
├──► Slack API (requires WebSocket + Bot Token)
├──► Database (requires Connection String + SQL)
└──► ... N tools, N protocols
Each tool requires:
❌ Separate authentication methods
❌ Separate data formats
❌ Separate calling protocols
❌ Separate error handling
This is like before 2000 when every device had a different interface:
Printers used LPT ports, mice used PS/2,
Cameras used FireWire, phones used various strange interfaces...
19.2 MCP = USB for the AI World
With MCP:
Claude ──► MCP (Unified Protocol) ──┬──► GitHub
├──► Jira
├──► Slack
├──► Database
└──► Any tool
MCP provides:
✅ Unified tool description format (Tool Schema)
✅ Unified calling protocol (JSON-RPC)
✅ Unified authentication mechanism
✅ Unified error handling
✅ Plug & Play
USB Analogy:
┌────────────────────────────────────────────────┐
│ USB Standard: │
│ Defines electrical specifications, transmission protocols, device types, │
│ Any device conforming to the USB specification can be plug-and-play │
│ │
│ MCP Standard: │
│ Defines tool descriptions, calling protocols, resource types, │
│ Any service implementing an MCP Server can be called by an Agent │
└────────────────────────────────────────────────┘
19.3 MCP's Three-Layer Architecture
╭──────────────────────────────────────────────╮
│ MCP Three-Layer Architecture │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ MCP Host │ │ MCP Host │ │ MCP Host │ │
│ │(Claude │ │(Cursor │ │(Custom │ │
│ │ Code) │ │ IDE) │ │ App) │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────┐ │
│ │ MCP Client (SDK) │ │
│ │ Unified tool discovery, invocation, result parsing │ │
│ └─────────────┬────────────────────────┘ │
│ │ │
│ ┌────────┼────────┐ │
│ ▼ ▼ ▼ │
│ ┌────────┐┌────────┐┌────────┐ │
│ │MCP ││MCP ││MCP │ │
│ │Server ││Server ││Server │ │
│ │(GitHub)││(Slack) ││(DB) │ │
│ └────────┘└────────┘└────────┘ │
│ │
╰──────────────────────────────────────────────╯
Host: Applications running AI models (Claude Code, Cursor...)
Client: MCP SDK, handles protocol communication
Server: MCP adapter for specific tools
19.4 Four Core Capabilities of MCP
1. Tools
Enables Agent to perform actions: create files, send messages, query data
Analogy: USB device's "write" capability
2. Resources
Enables Agent to read data: file content, database records, API responses
Analogy: USB device's "read" capability
3. Prompts (Prompt Templates)
Predefined interaction patterns: "code review template", "bug report template"
Analogy: USB device's "driver"
4. Sampling (Sampling Requests)
MCP Server actively requests AI for inference
Analogy: USB device's "interrupt request"
💻 Simulated Claude TUI Interaction
Scenario: Viewing Installed MCP Services
> I want to know which MCP services Claude Code is connected to.
╭─ Claude ─────────────────────────────────────────────╮
│ │
│ 🔍 Tool: Read → ~/.claude/settings.json │
│ │
│ Currently configured MCP Servers: │
│ │
│ ╭──────────────────────────────────────────╮ │
│ │ MCP Server │ Status │ Tool Count │ │
│ │─────────────────│───────│────────────│ │
│ │ @anthropic/mcp │ ✅ Online│ 12 tools │ │
│ │ github-mcp │ ✅ Online│ 8 tools │ │
│ │ postgres-mcp │ ❌ Offline│ - │ │
│ │ slack-mcp │ ✅ Online│ 5 tools │ │
│ ╰──────────────────────────────────────────╯ │
│ │
│ 📋 GitHub MCP Available Tools: │
│ - github_create_issue (Create Issue) │
│ - github_create_pr (Create Pull Request) │
│ - github_list_repos (List Repositories) │
│ - github_search_code (Search Code) │
│ - github_read_file (Read File) │
│ - github_add_comment (Add Comment) │
│ - github_merge_pr (Merge PR) │
│ - github_list_issues (List Issues) │
│ │
│ To use these tools, simply describe what you want to do in the conversation, │
│ and I will automatically select the appropriate MCP tool to execute it. │
│ │
╰──────────────────────────────────────────────────────╯
Scenario: Understanding the Difference Between MCP and Direct API Calls
> What's the difference between MCP and calling an API directly with curl?
╭─ Claude ─────────────────────────────────────────────╮
│ │
│ Let's compare the same operation: │
│ │
│ ❌ Direct API Call: │
│ curl -X POST https://api.github.com/repos/... │
│ -H "Authorization: Bearer ghp_xxxx" │
│ -H "Content-Type: application/json" │
│ -d '{"title":"Bug fix","body":"..."}' │
│ → Requires you to manage Token, URL, format │
│ → Each API has a different format │
│ │
│ ✅ MCP Call: │
│ "Create an Issue in my-repo, │
│ with the title Bug fix" │
│ → I automatically call the github_create_issue tool│
│ → Token and format are handled by the MCP Server │
│ → You just speak naturally │
│ │
│ Core Difference: │
│ API: You adapt to the machine's protocol │
│ MCP: The machine adapts to your language │
│ │
╰──────────────────────────────────────────────────────╯
💻 Code Demo
# ✅ View Claude Code's MCP settings
cat ~/.claude/settings.json
# ✅ Configure MCP Server in settings.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-server-github"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}
# ✅ Project-level MCP configuration (.mcp.json)
# Placed in the project root directory, effective only within that project
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-server-postgres",
"postgresql://localhost:5432/mydb"]
}
}
}
🔧 MCP Ecosystem Overview
| MCP Server | Provider | Core Functionality |
|---|---|---|
| GitHub | Anthropic | PR/Issue/Code Search |
| Postgres | Anthropic | SQL Query & Management |
| Slack | Community | Message Read/Write, Channel Management |
| Jira/Linear | Community | Ticket Creation & Status Management |
| Google Drive | Community | Document Read/Write |
| Notion | Community | Page Management |
| Playwright | Community | Browser Automation |
| Excalidraw | Community | Drawing |
📝 Key Takeaways from this Issue
- MCP is the "USB Standard" for AI Agents — a unified tool connection protocol
- Host / Client / Server three-layer architecture enables plug-and-play
- Four core capabilities: Tools, Resources, Prompts, Sampling
- MCP configuration is divided into global (~/.claude/settings.json) and project-level (.mcp.json)
- Anthropic's goal is to build an open ecosystem where all AI Agents can share tools