Home Glossary
HomeGlossaryMCP Server
MCP Glossary

MCP Server

TL;DR

An MCP server is a program that exposes tools, resources, or prompts to AI clients over the Model Context Protocol. It acts as the adapter between an external system (a database, SaaS, or filesystem) and any MCP-compatible AI agent like Claude Code or Cursor.

In depth

An MCP server is the capability provider in the Model Context Protocol architecture. It runs as a separate process — locally via stdio or remotely via HTTP/SSE — and implements the MCP protocol to expose three kinds of features: tools (callable functions), resources (readable data), and prompts (reusable templates).

MCP servers are language-agnostic. You can write one in TypeScript with `@modelcontextprotocol/sdk`, Python with `mcp`, Rust, Kotlin, or C#. A server typically wraps an existing API or system — e.g. the GitHub MCP server wraps the GitHub REST API, exposing `create_issue`, `list_pulls`, etc. as MCP tools.

Servers declare their capabilities during initialization, so the client knows what's available. They can emit progress notifications for long-running tasks, request user permission via sampling, and access filesystem roots the client has granted.

MCP servers are typically reusable across clients — the same GitHub server works with Claude Code, Cursor, and Claude Desktop without modification.

Code example

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

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

server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [{ name: "hello", description: "Say hi", inputSchema: {...} }]
}));

await server.connect(new StdioServerTransport());

Examples

  • 1
    `@modelcontextprotocol/server-filesystem` — reads and writes local files
  • 2
    `@modelcontextprotocol/server-github` — official GitHub integration
  • 3
    Stripe's official MCP server for payments and subscriptions
  • 4
    Supabase MCP for database, auth, and edge functions
  • 5
    A custom internal MCP server wrapping your company's API

What it's NOT

  • ✗An MCP server is NOT a web server in the REST sense — it speaks JSON-RPC, not REST.
  • ✗An MCP server does NOT run the LLM itself — it only exposes tools the LLM can call.
  • ✗An MCP server is NOT always remote — most run locally as subprocesses launched by the client.
  • ✗An MCP server is NOT tied to a specific LLM — the same server works with Claude, GPT-4, Gemini, etc.

Related terms

Model Context Protocol (MCP)MCP ClientMCP ToolMCP ResourceMCP SDK

See also

  • MCP Server Quickstart
  • Official Servers

Frequently asked questions

How do I install an MCP server?

Most ship as npm packages or Python packages. Add to your `.claude.json` or `.cursor/mcp.json` config with the command + args to launch it. MCPizy automates this with `mcpizy install <name>`.

Can one server expose multiple tools?

Yes. A single MCP server typically exposes a family of related tools — e.g. GitHub's server has 30+ tools covering issues, PRs, commits, and releases.

What happens when a server crashes?

The client detects the broken connection and either restarts the server or returns an error to the LLM. Claude Code surfaces this as a 'server not responding' message.

Build with MCP

Browse 300+ MCP servers, explore recipes, or continue learning the MCP vocabulary.

Browse MarketplaceAll terms