Claude Code + MCP
Give Claude Code more reach, not the keys to your house.
MCP is the power strip for your AI assistant: one plug, many tools. Add one server at a time, start read-only, and check who made it.
Dot and word: rough risk, my own judgment.
Claude Code can read your files and run commands. MCP lets it also reach your browser, your docs, your issue tracker and your database. That is powerful, and a little scary. This guide shows you how to start in the desktop app, how to add MCP servers step by step, which ones are worth trying for which job, and how not to hand over the keys to your house.
claude mcp add --transport http <name> <url> for remote servers, or claude mcp add <name> -- <command> for local ones. Start with one or two read-only servers (for example documentation or browser testing), and use the server table, the command cheat sheet and the safety checklist below.
Start Claude Code in the desktop app
Claude Code runs in several places: the terminal, VS Code, the web and the desktop app. The desktop app is the friendliest start, because you get buttons, a diff viewer and a built-in browser pane. The steps below follow the official documentation as of October 2026.
- Install and sign in. Download the Claude desktop app for macOS, Windows (x64 or ARM64) or Linux (beta). Launch it and sign in with your Claude account.
- Open the Code tab. The app has three tabs: Chat, Cowork and Code. Click Code.
- Set up a session. Each conversation is a session. Before you send a message, choose the environment (Local, Cloud, SSH, or WSL on Windows), the project folder, the model and the permission mode.
- Type a task and press Enter. Start with something safe, like "explain what this project does".
- Run sessions in parallel. Use + New session (or Ctrl+N / Cmd+N). Turn on the worktree option to give a session an isolated copy of your project (this needs Git).
Permission modes: how much freedom Claude gets
| Mode | What happens | Good for |
|---|---|---|
| Manual | Claude asks before editing files or running commands | Learning, and anything sensitive |
| Accept edits | Auto-accepts file edits and common file commands, still asks for other commands | Work you have already planned |
| Plan | Explores and proposes a plan without editing your code | Starting a bigger task |
| Auto | Runs without routine prompts, with a background safety check | Experienced users on trusted projects |
| Bypass permissions | No permission prompts (except some protected actions) | Only inside a sandbox or virtual machine |
The docs recommend starting complex tasks in Plan mode and switching to Accept edits or Manual after you approve the plan. Other handy parts of the app: the diff view (click the +/- stats to review each changed file and leave comments), the Terminal pane (Ctrl+`), the Browser pane (Ctrl+Shift+B) and a side chat (Ctrl+;) for quick questions that do not clutter the main conversation. The desktop app reads the same settings files as the command-line version.
Do you need the command line too? You will for the claude mcp commands in this post, unless you edit config files by hand. The official quickstart installs it with irm https://claude.ai/install.ps1 | iex in Windows PowerShell, with curl -fsSL https://claude.ai/install.sh | bash on macOS, Linux and WSL, or with winget install Anthropic.ClaudeCode. Then check it with claude --version.
What MCP is, in plain English
MCP (Model Context Protocol) is an open standard that lets an AI app talk to outside tools and data in a common way. Think of it as a universal plug. Claude Code is the client. Each tool you connect, like a browser controller or a documentation service, is an MCP server that offers the AI a list of things it can do (tools), things it can read (resources) and ready-made prompts.
Without MCP, Claude can only work with your files and shell. With MCP, you can say "check the failing test in the browser", "look up the current docs for this library" or "summarize the open issues", and Claude can reach the right tool. In short: you ask, Claude Code sends a request to an MCP server, the server talks to the real tool (a browser, a database, a docs site), and the result comes back to Claude.
Add your first MCP server
There are three kinds of servers, and the transport decides the command:
- Remote HTTP (recommended): a server on the internet. Command:
claude mcp add --transport http <name> <url> - Local stdio: a program that runs on your computer. Command:
claude mcp add <name> -- <command> [args](the--separates Claude's options from the server's command) - Remote SSE: an older style. The docs mark it as deprecated, so use HTTP where you can.
Examples from the official documentation:
Scopes: who can see the server
| Scope | Where it applies | Shared with your team? | Stored in |
|---|---|---|---|
| local (default) | This project only | No | ~/.claude.json (under the project's path) |
| project | This project only | Yes, through version control | .mcp.json in the project root |
| user | All your projects | No | ~/.claude.json |
Add --scope project (or -s project) to choose where a server is saved. If the same server is defined in several places, local wins over project, and project wins over user.
Manage your servers
Inside a Claude Code session, type /mcp to check server status and sign in to servers that need OAuth (a browser login). claude mcp list shows a health status next to each server, such as connected, needs authentication or failed to connect.
.mcp.json, use variables like ${API_KEY} instead of real keys. The docs say ${VAR} and ${VAR:-default} are expanded in the command, arguments, env, URL and headers.Writing the command: a cheat sheet
There are only a few shapes. Replace the capitalized parts with your own values, and use placeholders instead of real secrets.
| Situation | Command |
|---|---|
Remote server (a URL), no token needed. If it needs a login, run /mcp afterwards and sign in in the browser | claude mcp add --transport http NAME https://example.com/mcp |
| Remote server that wants a token in a header | claude mcp add --transport http NAME https://example.com/mcp --header "Authorization: Bearer YOUR_TOKEN" |
| Local server that runs on your computer (stdio) | claude mcp add --transport stdio NAME -- npx -y SOME-PACKAGE |
| Local server that needs an environment variable (an API key, for example) | claude mcp add --env API_KEY=YOUR_KEY --transport stdio NAME -- npx -y SOME-PACKAGE |
Share it with your team (project scope, saved in .mcp.json) | claude mcp add --transport http --scope project NAME https://example.com/mcp |
| Use it in all your projects (user scope) | claude mcp add --transport http --scope user NAME https://example.com/mcp |
Rules that save you from errors:
- NAME should use only letters, numbers,
-and_. - For a remote server, the URL should start with
https://. - For a local server, the
--separates Claude's options from the server's own command. Put the server command after it. - When you use
--env, put at least one other option (such as--transport) between it and the name. The docs warn that otherwise the name can be read as anotherKEY=valuepair. - Never type a real token into a command that lives in a shared note or chat. Use placeholders, and set the real value in your own environment.
With project scope, the server is saved in a .mcp.json file in your project root, which your team can share. This is what the first row above looks like there (a URL entry needs "type": "http", or it is treated as a configuration error):
And a local server that needs a key. The ${...} form reads the value from your own environment, so the secret never sits in the file:
Useful MCP servers by area
There are thousands of MCP servers, and many are community projects. Instead of a giant list, here is a short, practical map by job. Every command below comes from the official Claude Code documentation or the server's own project page. Always check the project's page for the current command before you run it.
What each kind of MCP server is for.
Lower riskMediumBe carefulTap an area to filter the table below.
The servers, in one table
Pick an area to filter the list. Risk is my own rough judgment, not an official score.
| Server | What it does | Sign-in | Rough risk | Command |
|---|---|---|---|---|
| Playwright Web testing | Controls a real browser through Playwright: open pages, click, fill forms and read the page structure. Great for testing your own site. The pages it opens are outside content, so treat them carefully. | None (runs locally) | Medium | claude mcp add playwright npx @playwright/mcp@latest |
| Context7 Docs, web | Fetches up-to-date, version-specific library documentation so the AI stops guessing old APIs. Add "use context7" to a prompt. Read-only. | API key | Low | claude mcp add --transport http context7 https://mcp.context7.com/mcp --header "Authorization: Bearer YOUR_API_KEY" |
| Sequential Thinking Docs and thinking | A reference server that helps the AI work through a problem step by step. It does not touch your files or accounts. | None (runs locally) | Low | No exact command was verified for this post. Check the project page for the current command. |
| GitHub Code | Review pull requests, read and create issues, and browse repositories through GitHub. The token you give decides how much it can change. | Personal access token | High | claude mcp add --transport http github https://api.githubcopilot.com/mcp/ --header "Authorization: Bearer YOUR_GITHUB_PAT" |
| Git Code | Reads, searches and manipulates local Git repositories (history, diffs, branches). Runs on your computer. | None (runs locally) | Medium | claude mcp add --transport stdio git -- uvx mcp-server-git |
| Notion Notes, docs | Read and update your Notion pages and databases from Claude. Good for notes, specs and project docs. | OAuth in the browser | Medium | claude mcp add --transport http notion https://mcp.notion.com/mcp |
| Airtable Planning, data | Work with Airtable bases and tables: look up records and update them with an API key. | API key | Medium | claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable -- npx -y airtable-mcp-server |
| Asana Tasks | Connects to Asana for tasks and projects. The docs show the older SSE transport, which is marked deprecated, so check for an HTTP address first. | OAuth in the browser | Medium | claude mcp add --transport sse asana https://mcp.asana.com/sse |
| Sentry Monitoring | Look at error reports and stack traces from Sentry, so Claude can help find the cause of a bug. | OAuth in the browser | Low | claude mcp add --transport http sentry https://mcp.sentry.dev/mcp |
| DBHub Databases | Query a relational database in plain language and inspect its schema. The docs advise using a read-only database user. Never point it at production with write access. | Database connection string | High | claude mcp add --transport stdio db -- npx -y @bytebase/dbhub --dsn "postgresql://READONLY_USER:PASSWORD@HOST:5432/DBNAME" |
| Stripe Payments | Works with Stripe payments data. Money is involved, so use test mode and restricted keys until you are sure. | OAuth in the browser | High | claude mcp add --transport http stripe https://mcp.stripe.com |
| HubSpot Customer records | Connects to HubSpot customer records (the docs show it at user scope). Customer data is sensitive, so check what you share. | OAuth in the browser | Medium | claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic |
| Filesystem Files | Gives Claude controlled file access to folders you name. Keep the allowed path as small as you can. | A folder you allow | Medium | claude mcp add --transport stdio filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/folder |
| Memory Memory | Keeps a small knowledge graph so Claude can remember facts between sessions. Runs locally. | None (runs locally) | Low | claude mcp add --transport stdio memory -- npx -y @modelcontextprotocol/server-memory |
Commands come from the official Claude Code documentation or the project's own page. Always check the page for the current command before you run it.
Is this server safe to install?
An MCP server is code that runs with your permissions or talks to your accounts. The official docs give a plain warning: verify you trust each server before connecting it, because servers that fetch outside content can expose you to prompt injection (hidden instructions in web pages or documents that try to steer the AI). Claude Code also asks for your approval before using project-scoped servers from a .mcp.json file, and a cloned repository cannot approve its own servers.
Use this checklist before you install a server you do not know. The more answers you have in the right-hand column, the more careful you should be.
| Question | Lower risk | Higher risk |
|---|---|---|
| Who made it? | The service itself or a well-known maintainer | Someone you cannot verify |
| Can you read its code? | Yes, it is open source | No, it is closed source |
| What can it do to your data? | Read only | Create or change things, or delete data and move money |
| Does it read content from the open web or from other people (web pages, emails, tickets, comments)? | No | Yes, which can carry hidden instructions |
| What credential does it need? | A limited token or a test key | A full-access or production key |
| Who will use this setup? | Only you | Your whole team (project scope) |
What to do about each risky answer:
- Unknown maker: find out who made it, and prefer the official server of the service you already use.
- Closed source: you cannot read the code, so rely on the vendor and keep permissions small.
- It can change data: start with read-only access if the server offers it.
- It can delete data or move money: use a test account, require approval for every action, and never use it on production first.
- It reads outside content: that content can carry hidden instructions (prompt injection). Do not give the same server strong write access at the same time.
- Full-access key: use a limited token or a test key instead.
- Team scope: project scope shares the server through
.mcp.json. Review it, keep secrets in variables, and expect each person to approve it.
Troubleshooting and tips
- Server will not connect. Run
claude mcp list. The status line shows connected, needs authentication or failed to connect, andclaude mcp get <name>shows the failure detail. In a session,/mcpshows status and lets you sign in. - Local servers need their runtime. Many stdio servers start with
npx(needs Node.js) oruvx(needs uv). Check that the command works in your own terminal first. - Slow start. The startup wait can be changed with the
MCP_TIMEOUTenvironment variable (in milliseconds). - Big tool outputs. There is a default limit on how much a tool result can contain. The docs describe the
MAX_MCP_OUTPUT_TOKENSvariable for raising it. - Too many servers? You do not need to worry much: Claude Code uses tool search, which only loads tool names at the start and fetches full definitions when needed.
- In the desktop app, Connectors are MCP servers with a point-and-click setup (use the + next to the prompt box, or Settings, then Connectors). For anything not listed there, add the server in your settings files, as shown above.
- Start small. Add one server, try a real task, then decide if you need another.
FAQ
Do I need to know how to code to use Claude Code desktop?
Not necessarily, but it helps. Claude Code is designed for working in a project folder, such as software, scripts, websites or documents. Start in Plan or Manual mode and read what it proposes.
What is the difference between a connector and an MCP server?
According to the docs, connectors are MCP servers with a graphical setup flow in the desktop app. MCP servers are the general mechanism, and you add ones that are not listed as connectors through settings files or commands.
Which MCP server should I install first?
One that is read-only and fits what you do most. For web work, a documentation server or a browser-testing server is a gentle start. For notes and planning, a connector to your notes tool. Avoid starting with anything that can delete data or move money.
Are MCP servers free?
The protocol is open, and many servers are free to use, but the services behind them may need accounts, API keys or paid plans. Using a server does not change the cost of the tool it connects to.
Can an MCP server steal my data?
A malicious or badly written server could misuse whatever access you give it. That is why the advice is to trust the source, give limited credentials, prefer read-only access and review project-scoped servers before approving them.
Disclaimer: commands and UI names follow the official Claude Code documentation as checked in October 2026 and can change, so please check the current docs. Third-party MCP servers are not reviewed or endorsed by this blog, and the risk ratings are my own rough judgment. Never paste real passwords or keys into shared files or chats. Use test data and read-only access when you try something new.