Browse 1000+ Public APIs

Model Context Protocol (MCP): The Complete Developer Guide for 2026

a month ago

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:

  1. Tools - Functions the AI can execute (e.g., "create a GitHub issue", "run a database query")
  2. Resources - Data the AI can read (e.g., files, database records, API responses)
  3. Prompts - Pre-built templates for common tasks

Getting Started with MCP

Prerequisites

Before setting up MCP, ensure you have:

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:

  1. Click Claude menu → Settings
  2. Navigate to the Developer tab
  3. 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

Get a GitHub Token →


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

Get Notion API Key →


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"
      }
    }
  }
}

Get Brave Search 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:


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: