Model Context Protocol (MCP): The Complete Developer Guide for 2026
If you've tried building AI-powered applications, you know the pain of integrating external data sources. Every API requires custom code. Every database needs a new connector. Every tool demands its own implementation.
The Model Context Protocol (MCP) changes everything.
Introduced by Anthropic in November 2024 and now part of the Linux Foundation's Agentic AI Foundation, MCP is becoming the universal standard for connecting AI to the outside world. OpenAI, Google, and dozens of development tools have already adopted it.
In this guide, you'll learn what MCP is, how to set it up, and how to use the best MCP servers to supercharge your AI workflows.
What is the Model Context Protocol?
MCP is an open standard that enables secure, two-way connections between AI applications and external data sources. Think of it as a universal adapter that lets AI systems like Claude, ChatGPT, or your custom LLM app connect to databases, APIs, file systems, and business tools - all through a single, standardized protocol.
The Problem MCP Solves
Before MCP, connecting an AI assistant to your tools looked like this:
- Want Claude to access your GitHub repos? Build a custom integration.
- Need it to query your Postgres database? Write another connector.
- Want to search your Notion workspace? Yet another custom implementation.
Each integration was fragmented, insecure, and difficult to maintain. MCP replaces this chaos with one protocol that works everywhere.
Quick Comparison: MCP vs Traditional Integrations
| Aspect | Traditional Approach | MCP Approach |
|---|---|---|
| Setup | Custom code per integration | One config file |
| Security | API keys scattered everywhere | Centralized, permission-based |
| Maintenance | Update each integration separately | Update server once |
| Compatibility | Works with one AI tool | Works with any MCP client |
| Development Time | Hours to days per integration | Minutes |
How MCP Works
MCP follows a simple client-server architecture:
MCP Servers expose data and functionality. They can be:
- Local servers running on your machine
- Remote servers hosted in the cloud
- Custom servers you build yourself
MCP Clients are AI applications that connect to servers. These include:
- Claude Desktop
- Claude Code
- ChatGPT (via plugins)
- Cursor, Replit, Zed, and other development tools
The Three MCP Primitives
Every MCP server can expose three types of capabilities:
- Tools - Functions the AI can execute (e.g., "create a GitHub issue", "run a database query")
- Resources - Data the AI can read (e.g., files, database records, API responses)
- Prompts - Pre-built templates for common tasks
Getting Started with MCP
Prerequisites
Before setting up MCP, ensure you have:
- Claude Desktop - Download here (macOS or Windows)
- Node.js (LTS version) - Download here
Verify Node.js is installed:
node --version
Step 1: Locate Your Config File
MCP configuration lives in a JSON file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
To open it in Claude Desktop:
- Click Claude menu → Settings
- Navigate to the Developer tab
- Click "Edit Config"
Step 2: Add Your First MCP Server
Let's start with the filesystem server - it gives Claude access to read and write files in specific directories.
macOS/Linux Configuration:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/Documents",
"/Users/yourname/Projects"
]
}
}
}
Windows Configuration:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"C:\\Users\\yourname\\Documents",
"C:\\Users\\yourname\\Projects"
]
}
}
}
Step 3: Restart Claude Desktop
Completely quit Claude Desktop and reopen it. You should see an MCP indicator in the chat input area confirming the server is connected.
Step 4: Test It Out
Try asking Claude:
- "What files are in my Documents folder?"
- "Create a new file called notes.txt with today's date"
- "Find all Python files in my Projects folder"
Claude will request permission before executing any file operations.
Top 10 MCP Servers for Developers
Here are the most useful MCP servers available today:
1. GitHub MCP Server
Connect Claude to your GitHub repositories, issues, and pull requests.
Setup:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
}
}
}
}
What You Can Do:
- Search code across repositories
- Create and manage issues
- Review pull requests
- Analyze repository statistics
2. PostgreSQL MCP Server
Query your databases using natural language.
Setup:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"POSTGRES_CONNECTION_STRING": "postgresql://user:pass@localhost:5432/mydb"
}
}
}
}
What You Can Do:
- Run SQL queries via natural language
- Explore database schemas
- Generate reports from your data
- Debug query performance
3. Slack MCP Server
Turn your Slack workspace into an AI-accessible knowledge base.
Setup:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_TEAM_ID": "T0123456789"
}
}
}
}
What You Can Do:
- Search message history
- Summarize channel discussions
- Post messages and updates
- Track conversation threads
4. Notion MCP Server
Connect your Notion workspace to Claude.
Setup:
{
"mcpServers": {
"notion": {
"command": "npx",
"args": ["-y", "@notionhq/mcp-server-notion"],
"env": {
"NOTION_API_KEY": "secret_your_notion_key"
}
}
}
}
What You Can Do:
- Search across all pages and databases
- Create and update pages
- Query database records
- Build knowledge assistants
5. Google Drive MCP Server
Access and manage your Google Drive files.
What You Can Do:
- Search files by name or content
- Read document contents
- Create and organize files
- Share and manage permissions
6. Brave Search MCP Server
Give Claude the ability to search the web.
Setup:
{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-server-brave-search"],
"env": {
"BRAVE_API_KEY": "your_brave_api_key"
}
}
}
}
7. Puppeteer MCP Server
Automate browser interactions and web scraping.
What You Can Do:
- Navigate web pages
- Take screenshots
- Extract page content
- Fill forms and click buttons
8. Linear MCP Server
Manage your Linear issues and projects.
What You Can Do:
- Create and update issues
- Track project progress
- Assign team members
- Generate sprint reports
9. Supabase MCP Server
Connect to your Supabase backend.
What You Can Do:
- Query Postgres databases
- Manage authentication
- Access edge functions
- Handle real-time subscriptions
10. Filesystem MCP Server
The essential server for local file access (covered in setup above).
What You Can Do:
- Read and write files
- Create directories
- Search file contents
- Organize your projects
Building Your Own MCP Server
Want to expose your own APIs or data to AI? Here's a minimal Python example:
Install the SDK
pip install mcp
Create a Simple Server
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent
server = Server("my-api-server")
@server.list_tools()
async def list_tools():
return [
Tool(
name="get_weather",
description="Get current weather for a city",
inputSchema={
"type": "object",
"properties": {
"city": {"type": "string", "description": "City name"}
},
"required": ["city"]
}
)
]
@server.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "get_weather":
city = arguments["city"]
# Call your weather API here
return [TextContent(type="text", text=f"Weather in {city}: 72°F, Sunny")]
async def main():
async with stdio_server() as (read, write):
await server.run(read, write)
if __name__ == "__main__":
import asyncio
asyncio.run(main())
For TypeScript/Node.js
npm install @modelcontextprotocol/sdk
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({
name: "my-api-server",
version: "1.0.0"
});
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_weather",
description: "Get current weather for a city",
inputSchema: {
type: "object",
properties: {
city: { type: "string", description: "City name" }
},
required: ["city"]
}
}]
}));
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "get_weather") {
const city = request.params.arguments.city;
return {
content: [{ type: "text", text: `Weather in ${city}: 72°F, Sunny` }]
};
}
});
const transport = new StdioServerTransport();
await server.connect(transport);
MCP Best Practices
Security
- Principle of Least Privilege - Only grant access to directories and resources the AI actually needs
- Use Environment Variables - Never hardcode API keys in config files
- Review Permissions - Claude always asks before executing actions - pay attention!
Performance
- Cache Frequently Accessed Data - Reduce API calls where possible
- Use Local Servers - For sensitive data, run servers locally instead of remotely
- Batch Operations - Combine multiple requests when possible
Debugging
Check MCP logs if something isn't working:
macOS/Linux:
tail -f ~/Library/Logs/Claude/mcp*.log
Windows:
Get-Content "$env:APPDATA\Claude\logs\mcp*.log" -Wait
Where to Find More MCP Servers
The MCP ecosystem is growing rapidly. Here are the best resources:
- Official MCP Servers - Anthropic's maintained collection
- Awesome MCP Servers - Community-curated list
- MCP Directory - 1,200+ quality-verified servers
- PulseMCP - Searchable server directory
Conclusion
The Model Context Protocol is transforming how we build AI applications. Instead of writing custom integrations for every tool, you configure once and connect everywhere.
Whether you're using Claude Desktop, building with Claude Code, or developing custom AI applications, MCP provides the standardized bridge between AI and your data.
Start with the filesystem server, add GitHub and your database, and watch your AI assistant become genuinely useful.
The future of AI isn't isolated models - it's connected systems. MCP makes that future possible today.
Related Resources: