0 of 0 complete
🔌

Model Context Protocol

The universal standard for connecting AI assistants to tools, data, and services. One protocol to plug into everything.


What is MCP?

Model Context Protocol is a standard way for AI assistants to connect to external tools and data sources.

🔌
Think of it like USB for AI — a universal plug that lets AI tools connect to anything. Before USB, every device had its own cable. MCP does the same thing for AI integrations: one standard protocol instead of hundreds of custom connectors.

How It Works

MCP uses a simple client-server architecture. The AI assistant acts as a client, connecting to MCP servers that bridge to external services.

🤖
AI Client
Claude Code / Codex
MCP Server
Translates requests
🌐
External Service
GitHub, Slack, DBs, ...

Why It Matters

  • No more building custom integrations for every tool
  • One standard protocol for all AI-to-service communication
  • Servers are reusable across different AI clients
  • Community can build and share connectors
  • Security boundaries are clearly defined

Who Created It

MCP was created by Anthropic and released as an open standard. It is fully open-sourced, meaning anyone can build MCP servers or clients.

  • Open specification on GitHub
  • SDKs available in TypeScript and Python
  • Growing ecosystem of community servers
  • Adopted by multiple AI platforms

Getting Started with MCP

Add MCP servers to your AI tools in minutes.

Adding MCP Servers to Claude Code

You can add servers via the CLI or by editing your settings file directly.

Add a server via CLI
# Add a GitHub MCP server
$ claude mcp add github -- npx -y @modelcontextprotocol/server-github

# Add a filesystem server with allowed directories
$ claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ~/projects

# List all active MCP servers
$ claude mcp list
github: connected
filesystem: connected
.claude/settings.json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"]
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "~/projects"]
    }
  }
}
Adding MCP Servers to Codex

OpenAI's Codex CLI also supports MCP servers. Configure them in your Codex settings or via CLI flags.

Codex with MCP
# Run codex with an MCP server
$ codex --mcp-server github

Finding MCP Servers

  • mcp.so — Official MCP server registry
  • GitHub — Search for mcp-server topic
  • Official Servers — Maintained by Anthropic
  • NPM — Search @modelcontextprotocol

Popular Consumer MCP Connectors

Productivity, creativity, and everyday tools you can connect to your AI assistant.

🐙
GitHub
Manage repos, PRs, issues, and code search
Both Claude Codex
💬
Slack
Read and send messages, search channels
Both Claude Codex
📁
Google Drive
Search, read, and organize files
Consumer Claude
📅
Google Calendar
View, create, and manage events
Consumer Claude
📝
Notion
Read and write pages, databases, and docs
Both Claude Codex
Gmail
Read, search, and draft emails
Consumer Claude
🎵
Spotify
Control playback, search music, manage playlists
Consumer Claude
🗒
Apple Notes
Read and search your notes
Consumer Claude
🔍
Brave Search
Web search without leaving your terminal
Both Claude Codex
📂
Filesystem
Read, write, and manage local files
Both Claude Codex
🌐
Puppeteer / Playwright
Browser automation, web scraping
Both Claude Codex
🗃
SQLite
Query and manage local databases
Both Claude Codex
🧠
Memory
Persistent memory across conversations
Consumer Claude
🌐
Fetch / Web
Fetch URLs and web content
Both Claude Codex
🎨
Figma
Read designs, inspect components
Consumer Claude

Popular Enterprise MCP Connectors

Cloud, DevOps, monitoring, and business tools for professional workflows.

AWS
Manage S3, Lambda, EC2, and 200+ services
Enterprise Claude Codex
Azure
Microsoft cloud resource management
Enterprise Claude Codex
GCP
Google Cloud Platform services
Enterprise Claude Codex
Kubernetes
Manage clusters, pods, deployments
Enterprise Claude Codex
📦
Docker
Build, run, manage containers
Enterprise Claude Codex
🏭
Terraform
Infrastructure as code management
Enterprise Claude Codex
📈
Datadog
Monitoring, logs, and APM
Enterprise Claude
🚨
PagerDuty
Incident management and alerts
Enterprise Claude
📋
Jira
Issue tracking and project management
Enterprise Claude Codex
📖
Confluence
Documentation and knowledge base
Enterprise Claude
💼
Salesforce
CRM data and automation
Enterprise Claude
🗃
PostgreSQL
Production database queries
Enterprise Claude Codex
🍃
MongoDB
NoSQL database operations
Enterprise Claude Codex
Redis
Cache and data store management
Enterprise Claude Codex
🐛
Sentry
Error tracking and performance monitoring
Enterprise Claude Codex
📋
Linear
Modern issue tracking
Enterprise Claude Codex
Vercel
Deploy and manage web projects
Enterprise Claude Codex
🔐
Supabase
Backend as a service (auth, DB, storage)
Enterprise Claude Codex
💳
Stripe
Payment processing and billing
Enterprise Claude
📞
Twilio
Communications (SMS, voice, email)
Enterprise Claude

Build Your Own MCP Server

Create a custom MCP server to connect AI to any tool or data source you need.

Quick Start

Scaffold a new MCP server project in seconds with the official CLI tool.

Create a new MCP server
$ npx @anthropic-ai/create-mcp-server my-server

Creating MCP server in ./my-server...
Installing dependencies...
Done! Run `cd my-server && npm start` to begin.
Server Structure (TypeScript)

An MCP server exposes tools, resources, and prompts that the AI client can discover and use.

src/index.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({
  name: "my-server",
  version: "1.0.0"
});

// Define a tool the AI can call
server.tool(
  "get-weather",
  "Get current weather for a city",
  { city: z.string() },
  async ({ city }) => {
    const weather = await fetchWeather(city);
    return { content: [{ type: "text", text: weather }] };
  }
);

// Start the server
const transport = new StdioServerTransport();
await server.connect(transport);

Resources