Skip to content

What an MCP server is, and how to add one to Claude Code

An MCP server gives Claude Code new tools, such as reading your issues or querying a database. Here is what the Model Context Protocol is, the one command that adds a server, and which of the three scopes to pick.

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_issue or query.
  • 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 --readonly

A remote server runs somewhere else and is reached by its address:

claude mcp add --transport http my-tracker https://example.com/mcp

If 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:

ScopeWho gets the serverWhere it is saved
local (the default)Only you, only in this projectYour own Claude Code config
projectEveryone who opens the project.mcp.json at the root of the repository
userOnly you, in every projectYour 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.

The tool

Do it in your browser.

Claude Code

Config Studio for Claude Code

Every file Claude Code reads, explained: what each setting does, where it lives, which file wins, and an editor that writes it for you.

Keep reading

More from the blog.

Every post

Contact