On this page
Put Coworker to work on your stack.
Connect Salesforce, Slack, Jira and run your first agent in minutes.
Book a demoEnterprise AI
Claude MCP: How to Connect Claude to Your Tools in 2026
Coworker AI shows how to connect MCP servers to Claude Code, the Claude apps, and the API, with the commands, scopes, and the security caveats.
MCP, the Model Context Protocol, is the standard that lets Claude reach your tools and data. Connecting a server means Claude can query your systems and take actions in them rather than working only from what you paste into a conversation.
There are three separate surfaces, they are configured differently, and most confusion comes from following instructions written for one while using another.
| Surface | How you connect | Best for |
|---|---|---|
| Claude Code | claude mcp add in the terminal | Development work, local tools, project-scoped setups |
| Claude apps | Custom connectors in settings | Everyday chat with company systems |
| Claude API | MCP connector in the request | Applications you are building |
Connecting MCP servers to Claude Code
Claude Code is the most flexible surface and the one with the most options. The official documentation covers four transports.
Remote HTTP servers, the usual case
HTTP is the recommended transport for anything cloud-hosted and the most widely supported.
claude mcp add --transport http <name> <url>A real example from the docs:
claude mcp add --transport http notion https://mcp.notion.com/mcpIf the server needs a static token rather than OAuth, pass a header:
claude mcp add --transport http secure-api https://api.example.com/mcp --header "Authorization: Bearer your-token"One naming quirk worth knowing: in JSON configuration the type field accepts streamable-http as an alias for http. The MCP specification uses streamable-http, so configurations copied from a server's own documentation work without editing.
Remote SSE servers
Some servers use Server-Sent Events instead. Same shape, different flag:
claude mcp add --transport sse <name> <url>Use this only when the server's instructions say the endpoint is SSE. Guessing produces a connection failure rather than a fallback.
Local stdio servers
For servers that run as a local process, usually via npx or uvx:
claude mcp add --transport stdio myserver -- npx -y some-mcp-serverThe double dash matters and it is the most common mistake. Everything before -- is a Claude Code option. Everything after is the command that runs the server, passed through untouched. Omit it and the arguments get parsed as Claude's own flags.
WebSocket servers
For wss:// endpoints, there is a WebSocket transport option. It is the least common of the four.
Scopes: where the configuration lives
This is the part people get wrong on their second server rather than their first.
Every claude mcp add writes to local scope unless told otherwise.
| Scope | Flag | Stored in | Use when |
|---|---|---|---|
| Local | default | Your own config | Personal, experimental |
| Project | --scope project | .mcp.json in the repo | The whole team needs it |
| User | --scope user | ~/.claude.json | You want it everywhere |
Project scope is the one worth understanding. Committing .mcp.json means anyone working in that repository gets the same servers, which is how you stop "works on my machine" for tooling. Servers arriving via .mcp.json carry an approval step, since executing a config from a repository is a trust decision.
User scope is what you want for a server you use across every project. If you add something from your home directory without --scope user, it binds to that directory and silently will not load elsewhere.
Coworker
Put Coworker to work on your actual stack
Connect Salesforce, Slack, Jira and run your first agent in minutes.
Managing what you have connected
claude mcp list # all configured servers, with health status
claude mcp get notion # detail on one server
claude mcp remove notion # disconnect
/mcp # inside Claude Code, check status
claude mcp add prints an Added ... line on success, which confirms the configuration was written rather than that the server works. claude mcp list is what tells you whether it actually connects, showing ✔ Connected, ! Needs authentication, or ✘ Failed to connect.
Read that distinction carefully, because it catches people out. A failure status means Claude Code could not reach that server, not that the list command failed.
Connecting MCP to the Claude apps
The Claude apps use custom connectors rather than a command line. You add a remote MCP server in settings, authenticate if the server requires it, and it becomes available in conversations.
This is the right surface for everyday work: asking about company information, pulling a record, checking a status. There is no local configuration file and no transport flag to choose, which makes it simpler and less flexible than Claude Code.
Anthropic also maintains a directory of reviewed connectors. Those use the same MCP infrastructure, so anything listed there can equally be added to Claude Code with claude mcp add.
Connecting MCP through the API
If you are building an application, the MCP connector lets you attach remote servers to a Messages API request directly, without running an MCP client yourself. The model can then call those tools as part of generating its response.
This is the surface for products rather than for personal productivity.
The security part, which deserves more than a footnote
An MCP server executes actions on behalf of a model that is responding to text it did not write. That is a genuinely different risk profile from a normal integration.
Prompt injection is the main concern. A server that fetches external content, a web page, an email, a shared document, can pull in text crafted to instruct the model. If that model also has a tool that can write somewhere, the injected instruction has a path to action. Anthropic's own documentation is explicit that servers fetching external content carry this risk.
Practical positions that follow:
- Verify each server before connecting it. Reviewed directory entries are a reasonable starting point; an arbitrary repository is not.
- Read-only servers are much safer than write-capable ones, and the difference is worth caring about.
- Scope credentials to the minimum. A server authenticating with a token that can do everything will do everything if asked.
- Treat .mcp.json in a repository as executable configuration. The approval prompt exists for a reason.
The mistake almost everyone makes
Connecting many servers and expecting Claude to get better.
Every connected server puts its tool definitions into the context window on every request, whether a tool gets used or not. Twenty servers exposing ten tools each is a large fixed cost paid on every message, before the user has typed anything.
Two things follow. The first is direct cost, since those are input tokens billed every time. The second is quality: a window filled with tool definitions and retrieved documents leaves less room for the actual task, and accuracy degrades as inputs grow. That is context rot, and over-connecting is one of the most reliable ways to cause it.
Connect what the task needs. Prefer servers that return an answer over servers that return documents. A server replying "the account owner is Dana" is contributing; one replying with twelve documents that mention the account is adding bulk and moving the work back to the model.
When MCP is not the right tool
Worth saying, because reflexive adoption is its own problem.
If your flow is deterministic and your code already knows what to call, calling the API directly is simpler and more predictable than letting a model decide. MCP earns its place when there are many tools, many clients, or genuine uncertainty about which tool a request needs. The trade-offs are covered in more detail in MCP vs API, and the comparison with retrieval in RAG vs MCP.
Where Coworker AI fits
The setup above connects Claude to individual systems, one server at a time, and it works well for a handful of tools. It scales badly to a company, because each server is a separate integration and none of them share what they learn.
Coworker AI connects to 50+ tools and maintains organizational memory across them, then exposes that as a single MCP endpoint. Claude gets one connection carrying resolved company context rather than twenty connections each returning raw material. That keeps the tool-definition overhead flat and means what arrives in the window is an answer rather than a pile of sources.
Pro is $29.99 per user per month, Max is $149.99, and Enterprise pricing is on request. Book a demo to see it against your own stack.
Frequently asked questions
How do I add an MCP server to Claude Code?
Use claude mcp add with a transport flag. For a remote HTTP server, claude mcp add --transport http <name> <url>. For a local process, claude mcp add --transport stdio <name> -- <command>, where the double dash separates Claude's options from the command that runs the server.
What is the difference between local, project and user scope?
Local scope is the default and applies only where you added it. Project scope writes to .mcp.json in the repository so the whole team gets the same servers. User scope writes to ~/.claude.json so the server is available across all your projects. Adding from your home directory without --scope user is a common cause of a server not loading elsewhere.
How do I check whether an MCP server is working?
Run claude mcp list, which shows a health status per server: connected, needs authentication, or failed to connect. Inside Claude Code, /mcp shows status too. Note that a successful claude mcp add only confirms the configuration was written, not that the server connects.
Can I use MCP with the Claude apps, not just Claude Code?
Yes. The Claude apps support remote MCP servers through custom connectors, configured in settings rather than on a command line. The API has a separate MCP connector for applications you are building.
Is connecting MCP servers to Claude safe?
It depends on the server. A server executes actions on behalf of a model responding to text it did not write, so prompt injection is a real risk, particularly for servers that fetch external content and for any server with write access. Verify servers before connecting, prefer read-only where possible, and scope credentials tightly.
Why did Claude get slower or worse after I added MCP servers?
Most likely because each connected server's tool definitions occupy the context window on every request, whether used or not. That costs tokens continuously and leaves less room for the task, which degrades accuracy. Connect only what the task needs, and prefer servers that return answers rather than documents.
What does streamable-http mean in MCP configuration?
It is the name the MCP specification uses for the HTTP transport. In Claude Code's JSON configuration the type field accepts streamable-http as an alias for http, so configuration copied from a server's own documentation works without editing.
Related reading
- What Is MCP (Model Context Protocol)?
- MCP vs API: What Actually Changes
- RAG vs MCP: Not Alternatives
- 12 Claude Code MCP Servers Every AI Team Needs
- ChatGPT MCP: How to Connect MCP Servers to ChatGPT
- What Is Context Rot?
- What Is a Context Window?
- What Is AI Agent Memory?
- What Is an Enterprise Knowledge Graph?
- What Is LLM Observability?
Ready to get started?
Put Coworker to work inside your actual stack
Connect Salesforce, Slack, Jira, whatever you use, and run your first agent in minutes.