Claude CodeClaude Code 2.1 · terminal and VS Code · macOS, Linux, Windows
Dashboard
0%
1
Curious builder0 XP earned · 300 to level 2
0 daysFinish a lesson to begin
Badge collection0 of 6 unlocked
32 small wins to finish your pathNext lesson →

MCP

MCP is a protocol that lets Claude Code load tools from a separate program, so a database, a ticket tracker or a browser joins the tools the model can choose from.

Last updated: 28 Sep, 2026 · Claude Code

The built-in tools cover your files and your shell. MCP is how everything else gets in: a database, a ticket tracker, a browser, an internal service.

An MCP server is a separate program that exposes tools. Claude Code starts it, asks what it offers, and those tools join the list the model can choose from. You are adding capability, not writing an integration.

Adding one

bash
claude mcp add --scope project filesystem \
  -- npx -y @modelcontextprotocol/server-filesystem .
Captured from a real run
Added stdio MCP server filesystem with command: npx -y @modelcontextprotocol/server-filesystem .
to project config
File modified: /tmp/linkshort/.mcp.json

Everything after the double dash is the command that starts the server. The scope decides who gets it, and project writes a file that is committed with the code.

json
{
  "mcpServers": {
    "filesystem": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
      "env": {}
    }
  }
}

That is the complete configuration, as written by the command above. Anyone who clones the repository gets the same tools, and claude mcp list shows what is connected and whether it is healthy.

How an MCP server's tools reach the model
writesat startupstarts itits toolsnames, until usedqueriesclaude mcp add--scope project sqlite.mcp.jsoncommitted with the codeClaude Codestarts the serverClaudetool names onlyserver-sqlitean MCP serverlinks.dbthe database
Hover or tap a piece to see what it is and which lesson built it.
Trace it

Pick one to watch it run, step by step.

What it costs you

Tools have to be described to the model, and descriptions live in the context window. A server with sixty tools would be expensive if all of it loaded at startup, so MCP tool definitions are deferred by default: only names and server instructions load, and the full definition loads when a tool is used.

  • Add servers only for tools you use. Every one is startup time and context.
  • Prefer project scope for team tools, user scope for personal ones.
  • Treat a server like a dependency. It runs on your machine with your permissions.
It is code you are running
An MCP server is a program somebody wrote, started by your machine, with access to whatever you point it at. The same care you would apply to installing a package applies here, and permission rules from the settings.json lesson still apply to what its tools do.
Try it yourself
  • Add a server for something you use daily and ask Claude to do one small job with it.
  • Run claude mcp list and check what is already connected.

Little by little, you're building something great.