Episode 7: Internal vs. External MCP

⏱ Est. reading time: 3 min Updated on 5/7/2026

In Claude Code, MCP Servers are categorized into two types: Internal MCPs, which are bundled with plugins, and External MCPs, which are manually configured by the user.

Core Comparison

Dimension Internal MCP External MCP
Source Bundled with Plugin Independent service or third-party package
Installation Ready automatically upon plugin install Manual edit of settings.json
Process Managed by Plugin lifecycle Managed or auto-spawned by user config
Examples claude-mem search service MySQL, PostgreSQL, GitHub

Internal MCP Example: claude-mem

claude-mem is a full-featured plugin that includes an MCP Server running on Bun. Once the plugin is installed, the system automatically reads its .mcp.json and starts the mcp-search service.

Architecture Diagram:

graph TB
    subgraph claude-mem Plugin
        P1[plugin.json]
        P2[.mcp.json]
        P3[mcp-server.cjs]
    end
    
    Claude -->|mcp__plugin_claude-mem_mcp-search| P3
    P3 --> D[(Local Memory DB)]

External MCP Example: MySQL

External MCPs are typically used to connect to existing infrastructure.

Why use settings.local.json?

  1. Sensitive Info: DB passwords should not be committed to Git.
  2. Environment Variance: Each developer may have different DB addresses/accounts.
  3. Security Isolation: Local debugging config doesn't affect the global setup.

Execution Flow

sequenceDiagram
    participant User
    participant Claude
    participant MCP as MySQL MCP
    participant DB

    User->>Claude: Query recently registered users
    Claude->>MCP: query("SELECT * FROM users...")
    MCP->>DB: Execute SQL
    DB-->>MCP: Return row data
    MCP-->>Claude: Results in JSON format
    Claude-->>User: Natural language presentation