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
findManyAPI 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 browseanthropics/model-context-protocol - Plugin marketplace:
claude plugins searchsurfaces 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.
| MCP | What it gives you | Reach for it when |
|---|---|---|
| context7 | Up-to-date library docs pulled on demand | You're working with any library and don't want hallucinated API signatures |
| Playwright | A real browser Claude can drive | You need E2E checks, scraping, or form automation |
GitHub (@modelcontextprotocol/server-github) | Repos, issues, PRs from inside Claude Code | You want Claude to read a ticket or open a PR without leaving the terminal |
Filesystem (@modelcontextprotocol/server-filesystem) | Scoped file access beyond the current project | You need Claude to read or write files outside the working directory |
| Notion | Read and write your Notion workspace | You already run tasks or docs in Notion and want Claude to query them directly |
| Figma | Read design files and export images | You're doing frontend work and want Claude to reference the source design |
| Apify | Web scraping and data extraction via Apify Actors | You 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.