Chapter 03 · Section IV · 15 min read
Extending with MCP servers
The built-in tools are the floor, not the ceiling. MCP is the standard way to give Claude Code access to your Notion, your Slack, your ticketing system, or your internal APIs — turning "an assistant in my terminal" into "an assistant that can act on my real working world".
The built-in tools are enough for a lot of work. But most engineers do not just live in a codebase — they live in a codebase surrounded by Notion pages, Slack threads, Linear tickets, Google Docs, and half a dozen internal APIs. MCP is the glue between Claude Code and all of that.
What MCP is
MCP stands for Model Context Protocol. It is an open specification, championed by Anthropic, that defines a small, boring interface for exposing tools and resources to an AI assistant. A program that speaks MCP is called an MCP server. There are servers for Notion, Gmail, Slack, GitHub, Postgres, filesystem, HTTP endpoints, and dozens of other things — plus you can write your own in a hundred lines of code.
From Claude’s point of view, an MCP tool is indistinguishable from a built-in tool. If you enable a Notion server, Claude sees tools like mcp__notion__create-page and mcp__notion__search in its catalog and can call them the same way it calls Edit.
Configuring a server
MCP servers are configured in your Claude Code settings — usually ~/.claude/settings.json (or a project-scoped .claude/settings.json). The shape is roughly:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/notes"]
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgres://localhost/app"]
}
}
}
Each server is a process Claude Code launches. When you start a session, Claude Code spawns the servers, asks each one what tools it exposes, and adds them to its catalog.
What good MCP servers look like
Well-designed servers share three properties:
- They expose a small number of clearly-named tools.
search,create-page,update-page— notdo-thing-1. - They ask for auth once, not every call. Auth lives in the server’s environment or config, not in Claude’s context.
- They are honest about read vs write. Read-only tools can be auto-approved safely; write tools should always prompt.
The safety question
MCP is powerful, and power cuts both ways. A malicious or buggy MCP server can read your files, call your APIs, or send Slack messages on your behalf. Two disciplines matter:
- Install only servers you trust. Read the source of small ones. For big ones, prefer official/well-maintained packages over random forks.
- Understand what each tool does before you enable auto-approve. Auto-approving
mcp__notion__searchis fine — it reads. Auto-approvingmcp__notion__delete-pageis not.
Where to look next
The Anthropic docs maintain a catalogue of official and community MCP servers. Common ones people set up on day one are the filesystem server (for reading a directory outside the workspace), a GitHub server (for issues and PRs), and their team’s Notion / Slack.
Check your understanding
Quick check
—