MCP in Claude Code.
One command, fully explained.
Claude Code speaks MCP natively: one CLI command registers a server, and your agent can use its tools in every session. This guide covers the add command, the three scopes, OAuth sign-in, and the flags people miss, using Amie's calendar and meeting-notes server as the worked example.
Add a server
Remote HTTP servers are the simplest kind: nothing to install, nothing to keep running. Pass the URL with the HTTP transport flag.
claude mcp add amie https://mcp.amie.so -t http
claude mcp add my-server -- npx -y @some/mcp-server
claude mcp add my-server -e API_KEY=your-key -- npx -y @some/mcp-server
Then start a session and run /mcp. Servers that use OAuth (Amie does) show an authenticate option there; it opens your browser, you approve the sign-in once, and tokens refresh automatically from then on.
Pick the right scope
Every server is registered at one of three scopes, chosen with -s. The default is local, which is rarely what you want for a server you'll use everywhere.
- localOnly you, only this project. The default. Stored in
~/.claude.jsonunder the project's entry. - projectWritten to
.mcp.jsonin the repo root. Commit it and everyone who clones the project gets the same servers. Claude Code asks for approval before using a project's servers for the first time. - userAvailable to you in every project on this machine. The right scope for personal servers like your calendar:
claude mcp add amie https://mcp.amie.so -t http -s user
Manage what's connected
claude mcp list
claude mcp get amie
claude mcp remove amie
One thing worth knowing: every connected server's tool definitions load into your context window at session start. A pile of single-purpose servers costs tokens on every request, which is a reason to prefer one server that covers several surfaces. Amie's covers calendar, todos, and meeting notes through a single connection, including Google Calendar across multiple accounts.
When it doesn't connect
- 1Server shows as failed in /mcp. For local servers, run the command yourself in a terminal first; most failures are a missing binary or a bad path. For remote servers, check you passed
-t http. Without it the URL is treated as a command to execute. - 2Added the server but Claude can't see the tools. Check the scope. A server added with the default local scope in one project won't exist in another. Re-add with
-s userif you want it everywhere. - 3OAuth keeps failing or tools return 401. Run
/mcp, pick the server, and re-authenticate. If your browser opened but nothing happened, check a popup blocker didn't swallow the consent page.