Connecting an MCP server to Claude Desktop
Open Claude Desktop settings, go to the Developer tab, and click Edit Config to openclaude_desktop_config.json. Add your server under themcpServerskey, save, and restart the app completely. The server's tools appear in the tool menu once Claude Desktop relaunches.
/mcp. Nothing here needs an API key or a signup.
The step people miss is the restart, and the second step people miss is that "settings" means the one in the system menu bar, not the account settings inside the Claude window.
Where the config file lives
| Platform | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
Clicking Edit Config creates the file if it does not exist yet. You can also open it directly in an editor; Claude Desktop reads it at launch either way.
The config block
A local server is a command Claude Desktop runs. The whole entry is a name, a command, and its arguments:
{
"mcpServers": {
"botwire": {
"command": "npx",
"args": ["-y", "botwire-mcp"]
}
}
}If you already have servers configured, add botwire as another key inside the existing mcpServers object rather than replacing it. To reach paid tiers, pass the wallet key as an environment variable on the same entry:
{
"mcpServers": {
"botwire": {
"command": "npx",
"args": ["-y", "botwire-mcp"],
"env": { "BOTWIRE_WALLET_PRIVATE_KEY": "0x..." }
}
}
}A remote server needs no local command at all, only a transport and a URL:
{
"mcpServers": {
"botwire": { "type": "http", "url": "https://thebotwire.com/mcp" }
}
}The remote form answers on the free preview tier with no wallet and no signup, because no API key is involved at any point.
The four failures to expect
| Symptom | Cause | Fix |
|---|---|---|
| Server absent after restart | Invalid JSON, usually a trailing comma | Validate the file, then relaunch |
| Error mentioning npx or ENOENT | Node is not on the app's PATH | Use an absolute path as command |
| Tools listed but every call errors | Wrong package name or args | Run the command in a terminal first |
| Config edits ignored | The app was closed, not quit | Quit fully, then reopen |
The last one accounts for most reports that "MCP does not work" on Windows, where closing the window leaves the process running in the tray. Running the exact command and args in a terminal is the fastest diagnostic: if it fails there, it was never a Claude Desktop problem.
Verifying the connection
Ask for something the model cannot know, so a wrong answer is obvious rather than plausible. A status check works well because the answer is short and verifiable:
# ask Claude Desktop, in words: "use botwire to check whether AWS # has reported an outage in the last 24 hours" # the server calls: curl "https://thebotwire.com/status/preview?q=aws"
You should get items with a published timestamp and an age_minutes value. If the tool returns results with recent timestamps, the connection works. Which wire answers which question is listed in the routing table, and the same server behind the docs works in Claude Code through a single CLI command instead of a JSON file, covered in giving Claude Code access to real-time news.
FAQ
Do I have to restart Claude Desktop after every config change?
Yes. The config is read at launch, so edits take effect on the next start, and the app has to be quit rather than closed. This applies to adding a server, changing its arguments, and updating environment variables.
Can I connect a remote MCP server instead of running one locally?
Yes. A remote entry uses "type": "http" with a url and runs no local process, which avoids Node and PATH problems entirely. The tradeoff on this service is that the remote endpoint serves the free preview tier, while the local package can sign payments with your wallet for full result sets.
Is a private key safe in claude_desktop_config.json?
It is plaintext on disk readable by anything running as your user, so treat it as a hot wallet holding a few dollars of USDC rather than a funded account. At $0.005 to $0.01 per call, a small balance covers thousands of queries.
Which version of the MCP specification does this follow?
The specification is versioned by date, and the current revision published at modelcontextprotocol.io is 2026-07-28. Clients and servers negotiate a version at connection time, so a server built against an earlier revision keeps working.
Sources
The settings path, the Developer tab flow, and both config file locations quoted above are documented in the Model Context Protocol guide to connecting local MCP servers.
Related: How do I give Claude Code access to real-time news? · Can an AI agent use an API without an API key?