Short answer: an MCP server is a small program that gives an AI assistant extra tools, like "search my issues" or "run this SQL query". In Claude Code you add one with claude mcp add, and from then on Claude can call its tools in that project.
I put off MCP for a while because the name sounds bigger than it is. Once I added my first server it took two minutes, so here is the short version I wish I had read first.
What is the Model Context Protocol?
MCP is an open standard, published by Anthropic in November 2024, for connecting AI applications to outside systems. A server speaks the protocol and offers three kinds of things:
- Tools: actions the model can call, such as
create_issueorquery. - Resources: data it can read, such as a file or a database table.
- Prompts: ready-made instructions the server suggests.
Claude Code is an MCP client. Any server that speaks MCP works with it, whoever wrote it.
How do I add an MCP server to Claude Code?
There are two kinds of server, and one command for each.
A local server runs as a program on your machine and talks over standard input and output. Everything after -- is the command that starts it:
claude mcp add my-db -- npx -y some-postgres-mcp-server --readonlyA remote server runs somewhere else and is reached by its address:
claude mcp add --transport http my-tracker https://example.com/mcpIf the server needs a key, pass it as an environment variable with -e, for example -e API_KEY=..., instead of writing it into the command.
Check what you have with claude mcp list, and remove one with claude mcp remove my-db. Inside a session, /mcp shows each server, whether it is connected, and lets you sign in to servers that use OAuth.
Which scope should I use?
claude mcp add takes a --scope, and this is the part people get wrong:
| Scope | Who gets the server | Where it is saved |
|---|---|---|
local (the default) | Only you, only in this project | Your own Claude Code config |
project | Everyone who opens the project | .mcp.json at the root of the repository |
user | Only you, in every project | Your own Claude Code config |
My rule: a server the whole team needs for this repository goes in project and gets committed. A server only I use, like my notes, goes in user. I use local to try a server out before deciding.
Claude Code asks before it uses a server from a project's .mcp.json for the first time, so cloning a repository never starts a server behind your back.
How do I know it worked?
Start a session and ask for something only the server can do: "list my open issues", "how many rows are in the orders table". Claude says which tool it is calling, and you approve it the first time. Each tool shows up with a name like mcp__my-db__query, which is also the name you use in a permission rule. More on that in MCP permissions: allow one tool, not a whole server.
Where can you check this?
Where do I find servers?
Most services that matter to developers have one by now: issue trackers, databases, browsers, design tools, docs. Prefer the one published by the service itself over a stranger's copy, because a server runs with your credentials.
Config Studio for Claude Code has MCP servers among its 20 surfaces: it shows every file a server can live in, in order of precedence, and writes the exact file beside the options you pick, so you can see which scope a server ends up in.

