Features

MCP

A standard for connecting external tools and data.

MCP is the standard that lets Claude use outside tools and data, such as issue trackers, databases, and browsers. You register a server with claude mcp add, then check its status and sign in with /mcp inside a session.

From actually using it

While working on this site, the Playwright plugin ran as an MCP server. That is why Claude's tool names looked like mcp__plugin_playwright_playwright__browser_navigate. This is how I confirmed that when a plugin brings an MCP server along, the tool name includes both the plugin and the server name.

Adding a server

For remote servers, use the HTTP transport. The docs say SSE is no longer recommended and to use HTTP when you can. A server that runs on your own computer uses stdio, and its command goes after --.

# Remote HTTP server
claude mcp add --transport http notion https://mcp.notion.com/mcp

# Local stdio server: options like --transport, --env and --scope go before --
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
  -- npx -y airtable-mcp-server

Management commands

Inside a session, /mcp lets you check status, authenticate, reconnect, and turn servers off. Turning a server off does not delete its configuration.

claude mcp list           # servers and their status
claude mcp get notion     # details for one server
claude mcp remove notion  # remove it
claude mcp login sentry   # OAuth login from the shell
claude mcp logout sentry  # delete stored credentials

Scopes and .mcp.json

  • local (default): this project only, and only you. Stored in ~/.claude.json.
  • project: stored in .mcp.json at the project root and shared with your team through version control.
  • user: available in all your projects. Stored in ~/.claude.json.
  • If the same name exists in more than one place, local wins over project, and project wins over user. The whole entry is used; fields are not merged.
{
  "mcpServers": {
    "shared-server": {
      "type": "http",
      "url": "https://example.com/mcp"
    }
  }
}

Authentication and security

  • If a remote server returns 401 or 403, it is marked as needing authentication. Pick the server in /mcp and finish the browser steps.
  • Project servers from .mcp.json ask for approval in an interactive session. A cloned repository cannot approve itself.
  • A server that fetches outside content can be exposed to prompt injection. The official docs warn you to vet a server before connecting it.
  • Running remove on a server does not revoke its token at the auth server. Run claude mcp logout first.
  • In non-interactive runs (-p), the OAuth flow cannot be shown, so log in from an interactive session first.

How it differs from plugins, skills, and hooks

MCP gives Claude new tools and access to data. A skill is a set of instructions for how to use tools. A hook is a command that runs automatically on an event. A plugin bundles these for installation, so an MCP server can ship inside a plugin.

Real examples

You want a remote service available in all of your projects

claude mcp add --transport http --scope user notion https://mcp.notion.com/mcp
(in a session) /mcp

The server is registered at user scope. If /mcp says it needs authentication, select the server and sign in through the browser. After that, Claude can call that service's tools.

You want to put a server your team shares into the repository

claude mcp add --transport http --scope project shared-server https://example.com/mcp

A .mcp.json file is created or updated at the project root. Once you commit it, teammates use the same server, but their interactive sessions ask for approval the first time. shared-server and the URL are examples.

Common mistakes and when not to use it

  • If you leave out -- when adding a stdio server, Claude Code reads the server's own options (such as --port) as its own.
  • A JSON entry that has a url but no type is treated as stdio and skipped with an error. Set type to "http".
  • Do not connect servers you have not vetted. Outside text the server fetches can read to Claude like instructions.
  • If a pasted token ends with a stray newline, you get a warning but it is not trimmed for you. You have to fix the setting by hand.
  • Many servers means many tool definitions taking up context. Turn off the ones you are not using in /mcp.

FAQ

Should I use SSE or HTTP?

HTTP is recommended. SSE is no longer recommended. From v2.1.265, Claude Code tries HTTP first and falls back to SSE if that fails.

Does Claude Code only read from MCP servers, or can it write too?

It depends on the tools the server offers. If a tool can write, Claude can call it, so check your permission settings and whether you trust the server first.

Checked against the official docs on 2026-10-30. Sources: Claude Code docs: MCP, Claude Code docs: Plugins overview. How we write

Usage

claude mcp add ...
claude mcp login sentry

When to use it

When you are connecting an issue tracker or a database.

Related

/mcpManages MCP server connections and OAuth authentication.Claude CodeCommands

More Claude Code features

CLAUDE.mdA project instructions file that is read every session.Featuresauto memoryClaude notes your corrections and preferences on its own and uses them in later sessions.FeaturesSkills (.claude/skills/name/SKILL.md)A bundle of instructions and materials that is invoked automatically when needed or with /name.FeaturesNew 2026-01Subagents (.claude/agents/*.md)Helper agents with their own context, tools and prompt.Featuresagent viewShows all sessions (running, waiting, finished) in one list and lets you send tasks in parallel.FeaturesNew 2026-05Background sessions (claude --bg)Runs a session in the background and lets you attach to it later. It has attach, logs and stop subcommands.FeaturesNew 2026-05
All Claude Code