MCP Claude Desktop 9 min read

MCP Server Guide 2025: How to Build, Use & Find Model Context Protocol Servers

Model Context Protocol (MCP) is the open standard that lets AI assistants like Claude talk to external tools, databases, and APIs. This guide covers everything from adding your first server to building one from scratch.

What Is Model Context Protocol (MCP)?

MCP is an open protocol published by Anthropic in late 2024. It standardizes how AI hosts (Claude Desktop, Claude Code, Cursor, Windsurf) connect to external servers that provide:

  • Tools — callable functions the LLM can invoke (read a file, run a query, search the web)
  • Resources — data sources the host can read (files, database rows, API responses)
  • Prompts — reusable prompt templates the user can invoke via slash commands

Think of MCP as USB-C for AI tools: one standard connector that works across hosts and servers. Anthropic, Microsoft, Google, and hundreds of open-source contributors have adopted it. Browse 300+ community servers in the Prismix MCP directory.

MCP Architecture: Client, Server & Transport

Host

The AI application: Claude Desktop, Claude Code, Cursor, Zed, Continue.dev. The host manages connections and surfaces MCP capabilities to the LLM.

MCP Client

A component inside the host that maintains a 1:1 connection to one MCP server. The host manages multiple clients (one per server).

MCP Server

A separate process or remote service that exposes tools/resources/prompts over the MCP protocol. Each server is independent and focused on one domain (filesystem, GitHub, Postgres, etc.).

Transport

stdio: server runs as a child process, communicates via stdin/stdout. Best for local servers. SSE (Server-Sent Events): server runs as an HTTP service at a URL. Best for remote/shared servers.

How to Use MCP Servers in Claude Desktop

Claude Desktop reads its MCP configuration from a JSON file. Edit it to add servers:

# macOS
~/Library/Application Support/Claude/claude_desktop_config.json

# Windows
%APPDATA%\Claude\claude_desktop_config.json

Example config adding a filesystem server and a GitHub server:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/projects"],
      "env": {}
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."
      }
    }
  }
}

Restart Claude Desktop after saving. You'll see a hammer icon in the chat UI confirming tools are available. See our curated server list for 15 ready-to-paste configs.

How to Build an MCP Server

Official SDKs exist for Python and TypeScript. A minimal Python MCP server:

pip install mcp
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("My Server")

@mcp.tool()
def get_weather(city: str) -> str:
    """Return current weather for a city."""
    return f"Sunny, 22°C in {city}"   # replace with real API call

if __name__ == "__main__":
    mcp.run()   # stdio transport by default

The TypeScript equivalent:

npm install @modelcontextprotocol/sdk
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" });

server.tool("get_weather", { city: z.string() }, async ({ city }) => {
  return { content: [{ type: "text", text: `Sunny in ${city}` }] };
});

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

Popular MCP Server Categories

Category Examples What it enables
Filesystem @mcp/server-filesystem Read/write local files, search directories
Databases Postgres, SQLite, Supabase MCP Run SQL queries, inspect schemas
Dev tools GitHub, GitLab, Jira, Linear Create issues, review PRs, search code
Web / search Brave Search, Fetch, Puppeteer Browse pages, search the web, scrape data
APIs Stripe, Twilio, HubSpot, Slack Trigger business workflows directly from chat
Monitoring Prismix MCP, Datadog, Sentry Check AI service status, query alerts, view incidents

MCP vs Function Calling

Factor MCP Function Calling
Where defined Separate server process Inside API request payload
Reusability Reuse across hosts and LLMs Redefined per request/application
Resources + Prompts Yes (first-class primitives) No
Multi-host Works with any MCP-compatible host Provider-specific
Best for IDE integrations, dev environments, desktop apps Server-side API integrations, custom LLM apps

Where to Find MCP Servers

  • Prismix MCP directory — 300+ curated servers with install commands, GitHub stats, and community ratings
  • GitHub topic mcp-server — search topic:mcp-server on GitHub for community projects
  • Anthropic's reference serversgithub.com/modelcontextprotocol/servers (official, audited)
  • Anthropic's blog — new server announcements from vendors (Cloudflare, Stripe, GitHub, etc.)

Track MCP Server Status

MCP servers often depend on external APIs. Check live status for Anthropic, GitHub, Stripe, and 80+ AI services from one dashboard — get instant alerts when any dependency degrades.

Browse MCP Servers →