nikolas.sapa
April 16, 2026

04 — MCP Servers

MCPs (Model Context Protocol servers) are how Claude connects to the outside world. Each one exposes a set of tools Claude can call mid-conversation — search a database, read a calendar, open a browser tab. The right set turns Claude from a code editor into a research-and-do assistant.


What an MCP actually is

An MCP server is a small process that runs alongside Claude Code and exposes tools over a standard protocol. When you ask Claude to "check my Notion task board" or "fetch the latest docs for this library," it's calling a tool on an MCP server to do the real work.

Claude Code loads MCP servers from two places:

  • ~/.claude/mcp.json — custom servers you configure manually
  • Plugin system — MCPs bundled inside plugins you install via claude install

You can see what's loaded with claude mcp list and add a new server with claude mcp add.


The three auth patterns

Almost every MCP falls into one of three categories. Pick the pattern that matches how the service authenticates:

1. OAuth (browser-based login)

Used by services like Google, Notion, Figma. You authorize Claude once in the browser and the MCP holds the token. No config needed beyond installing.

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-server-notion"],
      "auth": "oauth"
    }
  }
}

2. CLI / SDK (subprocess)

Used by GitHub (gh CLI), local tools, anything that runs as a command. Claude spawns the process; auth is handled by whatever credentials are already on your machine.

{
  "mcpServers": {
    "github": {
      "command": "gh",
      "args": ["mcp", "serve"]
    }
  }
}

3. Env-var API key

Used by external APIs (OpenAI-compatible, database connectors, third-party platforms). You pass the key as an environment variable.

{
  "mcpServers": {
    "my-api": {
      "command": "npx",
      "args": ["-y", "some-mcp-server"],
      "env": {
        "API_KEY": "${MY_API_KEY}"
      }
    }
  }
}

A minimal worked example: context7

context7 gives Claude up-to-date library documentation on demand. When you're working with React, Prisma, Tailwind — any library — Claude can pull the current docs instead of hallucinating from stale training data.

Install:

claude mcp add context7 -- npx -y @upstash/context7-mcp

Invoke it by describing what you need:

"Before you write the query, fetch the current Prisma findMany API from context7."

Claude will call resolve-library-id then query-docs automatically. That's the full integration — one install, one natural-language prompt.


How to find good MCPs

  • Anthropic's official list: modelcontextprotocol.io/servers — curated, maintained
  • GitHub: search mcp-server-* or browse anthropics/model-context-protocol
  • Plugin marketplace: claude plugins search surfaces MCPs bundled into Claude Code plugins

When evaluating one: check whether it uses an auth pattern you trust, whether the tool surface is narrow enough to be safe, and whether there's a clear README showing what each tool actually does.


Categories worth knowing about

Docs & code context Pull current library docs, search codebases, fetch API references. context7 is the go-to. Useful anytime you're working in an unfamiliar library or version.

Data & content Read/write Notion, Airtable, Google Sheets, databases. Lets Claude query your actual data instead of you copy-pasting it into the chat.

Browser & automation Playwright or Puppeteer MCPs give Claude a real browser. Good for scraping, E2E checks, or filling forms programmatically.

Communication & calendar Gmail, Slack, Google Calendar — careful here. Scope permissions tightly and never give write access unless you're sure you want Claude acting on your behalf.


MCPs worth trying

A short launching-pad. Pick what maps to your work, skip the rest.

MCPWhat it gives youReach for it when
context7Up-to-date library docs pulled on demandYou're working with any library and don't want hallucinated API signatures
PlaywrightA real browser Claude can driveYou need E2E checks, scraping, or form automation
GitHub (@modelcontextprotocol/server-github)Repos, issues, PRs from inside Claude CodeYou want Claude to read a ticket or open a PR without leaving the terminal
Filesystem (@modelcontextprotocol/server-filesystem)Scoped file access beyond the current projectYou need Claude to read or write files outside the working directory
NotionRead and write your Notion workspaceYou already run tasks or docs in Notion and want Claude to query them directly
FigmaRead design files and export imagesYou're doing frontend work and want Claude to reference the source design
ApifyWeb scraping and data extraction via Apify ActorsYou need structured data from a site with no public API

All of these are publicly installable — no private infra required. Start with context7 if you're unsure; it pays off on day one.


Keeping it lean

Don't install MCPs speculatively. Every server you add is a process that starts with Claude Code and a surface Claude might hallucinate calling. Start with one or two, validate they're useful, then expand. A focused set of MCPs you understand beats a bloated list you don't.