On this page

Put Coworker to work on your stack.

Connect Salesforce, Slack, Jira and run your first agent in minutes.

Book a demo
Blog

Enterprise 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.

Dhruv Kapadia9 min read

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.

SurfaceHow you connectBest for
Claude Codeclaude mcp add in the terminalDevelopment work, local tools, project-scoped setups
Claude appsCustom connectors in settingsEveryday chat with company systems
Claude APIMCP connector in the requestApplications 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/mcp

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

The 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.

ScopeFlagStored inUse when
LocaldefaultYour own configPersonal, experimental
Project--scope project.mcp.json in the repoThe whole team needs it
User--scope user~/.claude.jsonYou 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.

Book a demo

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.

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.