Issue 19 | What is MCP? Why is it the "USB interface" for AI Agents?

Updated on 4/5/2026

🎯 Learning Objectives

By the end of this issue, you will understand:

  1. The core concepts and design philosophy of Model Context Protocol (MCP)
  2. The fundamental differences between MCP and traditional REST APIs, SDKs
  3. Why MCP is considered the "USB Standard" for the AI Agent ecosystem
  4. 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

  1. MCP is the "USB Standard" for AI Agents — a unified tool connection protocol
  2. Host / Client / Server three-layer architecture enables plug-and-play
  3. Four core capabilities: Tools, Resources, Prompts, Sampling
  4. MCP configuration is divided into global (~/.claude/settings.json) and project-level (.mcp.json)
  5. Anthropic's goal is to build an open ecosystem where all AI Agents can share tools

🔗 References