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— searchtopic:mcp-serveron GitHub for community projects - Anthropic's reference servers —
github.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 →