Large Language ModelsGenerate imagesGenerate videos
How to Add an MCP Server to Claude Cowork (Connectors Setup)
Two clean ways to connect an MCP server to Claude Cowork: a remote custom connector for cloud services and a local setup for tools on your own machine. Menus, OAuth options, permissions, safety habits, and fixes for the errors that block a first connection.
You paste a server URL into Claude Cowork, click Add, and nothing useful happens. Or the connector shows up, yet Claude never calls a single one of its tools. Nearly every failed setup traces back to one mistake: picking the wrong type of MCP server for the way Cowork runs. A remote server lives on the public internet and gets reached by Anthropic's servers. A local server lives on your computer and gets launched by Claude Desktop. The menus, the rules, and the error messages differ for each.
This article lays out both paths using the menu names from Anthropic's support documentation, a config file you can paste, a safety checklist, and a troubleshooting table. The last section shows a working example: connecting PicassoIA so Claude can generate images and videos as part of a Cowork task.
What an MCP Server Does in Cowork
MCP, short for Model Context Protocol, is the open standard that lets Claude call outside tools. A server publishes a list of tools, each with a name and a schema, and Claude decides when a task needs one. Read a database row, post a Slack message, open a ticket, render an image: each of those is a tool call.
Cowork is the part of Claude Desktop built for multi-step work on your own machine. According to Anthropic's architecture overview, code you ask Claude to run executes inside an isolated virtual machine, using Apple Virtualization.framework on macOS and Hyper-V on Windows. That detail matters for MCP, because it decides where a server can run and who can reach it.
Connectors, extensions, and config files
Anthropic's docs describe three separate ways to attach a server, and mixing them up is the number one source of confusion.
Path
What it is
Where it runs
Best for
Custom connector
A remote MCP server URL
Reached by Anthropic's servers over the internet
Cloud services such as Slack, Notion, Linear, GitHub
Desktop extension
An .mcpb bundle with a manifest.json
On your computer, over stdio
Local files, a localhost database, desktop apps
Config file entry
A command in claude_desktop_config.json
On your computer, launched by Claude Desktop
Servers started with npx, Python, or a binary
Remote custom connectors work on Claude, Cowork, and Claude Desktop, on Free, Pro, Max, Team, and Enterprise plans. Free accounts get one custom connector, so pick the one you use most.
Which path fits your setup
Use the shape of what you were given:
A URL that starts with https:// means a custom connector. Do not put it in the config file.
A command such as npx some-server means a config file entry, or an extension if the author ships one.
A file ending in .mcpb means a desktop extension. Install it through Settings.
💡 Rule of thumb: if the server needs to touch files or apps on your computer, it must run locally. If it talks to a cloud service you already sign in to, a remote connector is almost always the easier road.
Before You Add Anything
Two checks save most of the wasted time: who is allowed to add connectors on your plan, and whether Anthropic can actually reach your server.
Plan and permission checks
Free: one custom connector in total.
Pro and Max: you add your own connectors from your own settings.
Team and Enterprise: only Owners and Primary Owners can add a custom connector. Members then connect to it individually. On Enterprise, a custom role with "Manage access to Libraries" can also add them.
If you are a member on a team plan and you cannot add a connector, that is expected behavior, not a bug. Ask an Owner to add it, then connect with your own account.
Get the server URL right
This is the rule that trips up developers most. For a remote connector, the connection "originates from Anthropic's servers, not from your machine's network interface." That has three consequences:
http://localhost:3000/mcp will never work as a custom connector, because Anthropic's servers cannot see your localhost.
The server has to be reachable over the public internet from Anthropic's IP ranges.
If the server sits on a private network, you must allowlist Anthropic's IP addresses in your firewall.
If your server only exists on your laptop, skip ahead to the local path. It is built for exactly that case.
Add a Remote Server Step by Step
Pro and Max accounts
Open Customize, then Connectors.
Click + Add, then Add custom connector.
Enter a name and the remote MCP server URL.
If the server vendor gave you an OAuth Client ID and Client Secret, enter them in the optional OAuth section. Otherwise leave it empty.
Click Add.
Click Connect and sign in to the service when prompted.
Team and Enterprise owners
Owners add the connector once for the whole organization:
Go to Organization settings, then Connectors.
Click Add, hover Custom, and choose Web.
Enter the connector name and the remote MCP server URL.
Pick an authentication type: Sign in now, Sign in when needed, or No sign in.
Pick an OAuth client option: Use Claude's published identity (Recommended), Register automatically, or Use your own OAuth client.
Add request headers or credentials if the server expects them.
Click Add.
Choose No sign in only when the server genuinely has no login. For OAuth, the recommended published identity is the sensible default unless your vendor tells you to register your own client.
Each member then opens Customize, then Connectors, finds the entry marked Custom, and clicks Connect to authenticate with their own account.
Turn it on for each task
Adding a connector does not mean every conversation uses it. Anthropic's docs describe the + button at the lower left of the chat box, then Connectors, then a toggle per conversation. Cowork draws on the same connector list, so open that menu inside your task and confirm the toggle is on before you type your request.
Then ask for something that can only be answered through the tool, for example: "Use the Linear connector to list my open issues assigned to me, grouped by project." If Claude answers from memory instead of calling the tool, the toggle is off or the sign-in expired.
A second check is worth the thirty seconds. Ask Claude which tools the connector exposes and read the list. A search-only server should not offer a delete tool, and a note-taking server should not offer billing actions. If the list looks bigger than the job, remove the connector and look for a narrower one.
Add a Local Server to Cowork
Local servers handle the cases a remote connector can never reach: files in a folder, a database on localhost, a desktop app. They run on your machine and talk to Claude Desktop over stdio instead of the internet.
Install a desktop extension
An .mcpb file is a zip archive holding a local server and a manifest.json. It works like a browser extension: a few clicks and it is installed.
Open Claude Desktop, then Settings, then Extensions.
Browse the directory or install your own .mcpb file.
Follow the install prompts and approve only what the extension needs.
Claude Desktop bundles its own Node.js environment, so Node-based extensions do not need a separate install. One caveat: Anthropic's desktop and web connector comparison lists extensions for Claude Desktop and Claude Code, so run a quick test inside a Cowork task before you build a workflow on one.
Edit the config file by hand
For a stdio server started by a command, the config file is the right home. Its location depends on the OS:
Restart Claude Desktop after every edit so it picks up the change.
Escape Windows backslashes as \\ inside JSON.
Install Node.js if the command is npx, since npx runs from your system PATH.
Community write-ups report that Claude Desktop bridges servers from this file into Cowork's virtual machine, where they appear as type sdk. Anthropic's architecture page confirms the other half of the story: local MCP servers run on your device in local sessions, and they do not run in cloud sessions at all. Administrators can switch them off with the isLocalDevMcpEnabled and isDesktopExtensionEnabled settings, so a locked-down work laptop may block both.
Keep Your Connectors Safe
A connector lets Claude act inside another service, not just read from it. Anthropic's own warning list is short and worth following: connect only to trusted servers, review the permissions a connector requests, watch for prompt injection, and monitor changes in tool behavior. Custom connectors can point at services Anthropic has not verified, so the trust decision is yours.
Risk
Habit that helps
Unknown server author
Read the vendor docs or source before you paste a URL
Tools that write or delete
Keep write-capable tools off for research tasks; Anthropic recommends disabling them for the Research feature
Silent tool changes
Re-check the tool list after a server update
Prompt injection from fetched content
Treat text returned by a tool as untrusted data, never as an instruction from you
Over-broad approvals
Admins can turn off persistent "always allow" to require fresh approval for each permission-gated call
Prompt injection in plain terms: a web page, document, or ticket that Claude reads can contain sentences written to look like orders. A connector with write access turns that trick from annoying into costly. Keep write tools limited to tasks where you read the plan before Claude acts.
One architecture detail is reassuring. Anthropic states that connector authorization tokens never enter the sandbox, and that connector calls are made on the server side. Code running inside the Cowork VM cannot read your tokens.
Fixes for Common Connection Errors
Server never appears
Work through these in order:
A remote URL sits in the config file. URLs that start with https:// belong in a custom connector.
The config was edited but Claude Desktop was not restarted.
The JSON is invalid. A trailing comma or an unescaped backslash breaks the whole file.
You are a member on a team plan. An Owner must add the connector first.
Sign in fails or tools break
Symptom
Likely cause
Fix
Connection times out
Server is on localhost or a private network
Host it publicly or allowlist Anthropic's IP ranges
Connector added but never called
Toggle is off for this conversation
Use +, then Connectors, and switch it on
Sign in loops back to the start
OAuth client mismatch
Choose Use your own OAuth client and enter the vendor's ID and secret
Local server missing in a task
Cloud session, or an admin disabled local servers
Run a local session; ask your admin about isLocalDevMcpEnabled
npx command not found
Node.js missing from PATH
Install Node.js, then restart Claude Desktop
💡 Quick test: ask Claude to list the tools a connector provides. An empty list means the server connected but exposed nothing; an error means the connection itself failed. Those two outcomes point to different fixes.
Add Image and Video Tools With PicassoIA
A good first connector is one that produces something you can see. PicassoIA exposes its models through MCP, and PicassoIA's own API reference lists Claude among the supported clients. The limits worth knowing: each account gets 5 predictions queued or running at once, and that pool is shared across every API credential and every MCP connection. Plan rules differ between access types, so check the pricing page for what your plan includes before you queue a large batch.
The connector's tools are straightforward: generate_image, edit_image, generate_video_picassoia, generate_video_seedance, get_generation, list_generations, list_models, get_account, and cancel_generation. Jobs are asynchronous. A generate call returns a prediction ID, and Claude then polls get_generation until the status reads succeeded or failed.
"Create a 10 second clip of rain on a cafe window with quiet ambience."
Three habits keep batches smooth:
Submit in groups of five or fewer. The concurrency limit applies to the whole account.
Ask Claude to summarize the finished URLs in a short note at the end of the task, so nothing gets lost.
Draft prompts first. Claude can write the brief, or you can test wording with a chat model such as Claude Sonnet 5 on PicassoIA before spending generations.
Treat the first result as a draft. Ask Claude to keep the subject and change one thing at a time, such as the camera angle, the time of day, or the background. Short follow-ups like "same scene, lower angle" give you comparable results and make it obvious which change helped.
Make Your First Image on Picasso IA
You now have both paths: a remote connector for cloud services and a local entry for tools on your own machine. The fastest way to see the payoff is to connect something visual and watch Cowork use it. Open PicassoIA, generate a test image with PicassoIA Image, then link the connector and ask Claude for three variations inside a task.
Experiment with one subject, one lighting setup, and a few wording changes. Small edits to a prompt produce surprisingly different results, and the quickest way to find your style is to generate, compare, and adjust. Your first connected image is one task away.