You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace Claude for Desktop with VS Code + Copilot in server quickstart
Claude for Desktop is not available on Linux, making it a stumbling
block for the server quickstart. Replace the testing instructions with
VS Code + GitHub Copilot, which works on all platforms and is free to
use.
- Replace `claude_desktop_config.json` setup with `.vscode/mcp.json`
- Replace Claude Desktop troubleshooting with VS Code-specific guidance
- Generalize "under the hood" section to say "LLM" instead of "Claude"
- Update intro references
This aligns the Python SDK quickstart with the TypeScript SDK, which
made the same change in modelcontextprotocol/typescript-sdk#1557.
In this tutorial, we'll build a simple MCP weather server and connect it to a host, Claude for Desktop.
3
+
In this tutorial, we'll build a simple MCP weather server and connect it to a host.
4
4
5
5
## What we'll be building
6
6
7
-
We'll build a server that exposes two tools: `get_alerts` and `get_forecast`. Then we'll connect the server to an MCP host (in this case, Claude for Desktop).
8
-
9
-
!!! note
10
-
11
-
Servers can connect to any client. We've chosen Claude for Desktop here for simplicity, but we also have guides on [building your own client](client-quickstart.md) as well as a [list of other clients here](https://modelcontextprotocol.io/clients).
7
+
We'll build a server that exposes two tools: `get_alerts` and `get_forecast`. Then we'll connect the server to an MCP host (in this case, VS Code with GitHub Copilot).
12
8
13
9
## Core MCP concepts
14
10
@@ -231,99 +227,50 @@ if __name__ == "__main__":
231
227
232
228
Always use `print(..., file=sys.stderr)` or the `logging` module instead of plain `print()` in stdio-based MCP servers. Standard output is reserved for JSON-RPC protocol messages, and writing to it with `print()` will corrupt the communication channel.
233
229
234
-
Your server is complete! Let's now test it from an existing MCP host, Claude for Desktop.
235
-
236
-
## Testing your server with Claude for Desktop
237
-
238
-
!!! note
239
-
240
-
Claude for Desktop is not yet available on Linux. Linux users can proceed to the [Building a client](client-quickstart.md) tutorial to build an MCP client that connects to the server we just built.
241
-
242
-
First, make sure you have Claude for Desktop installed. [You can install the latest version here.](https://claude.ai/download) If you already have Claude for Desktop, **make sure it's updated to the latest version.**
243
-
244
-
We'll need to configure Claude for Desktop for whichever MCP servers you want to use. To do this, open your Claude for Desktop App configuration at `~/Library/Application Support/Claude/claude_desktop_config.json` in a text editor. Make sure to create the file if it doesn't exist.
245
-
246
-
For example, if you have [VS Code](https://code.visualstudio.com/) installed:
Your server is complete! Let's now test it from an existing MCP host.
259
231
260
-
You'll then add your servers in the `mcpServers` key. The MCP UI elements will only show up in Claude for Desktop if at least one server is properly configured.
232
+
## Testing your server in VS Code
261
233
262
-
In this case, we'll add our single weather server like so:
You may need to put the full path to the `uv` executable in the `command` field. You can get this by running `which uv` on macOS/Linux or `where uv` on Windows.
234
+
[VS Code](https://code.visualstudio.com/) with [GitHub Copilot](https://github.com/features/copilot) can discover and invoke MCP tools via agent mode. [Copilot Free](https://github.com/features/copilot/plans) is sufficient to follow along.
303
235
304
236
!!! note
305
237
306
-
Make sure you pass in the absolute path to your server. You can get this by running `pwd` on macOS/Linux or `cd` on Windows Command Prompt. On Windows, remember to use double backslashes (`\\`) or forward slashes (`/`) in the JSON path.
238
+
Servers can connect to any client. We've chosen VS Code here for simplicity, but we also have a guide on [building your own client](client-quickstart.md) as well as a [list of other clients here](https://modelcontextprotocol.io/clients).
307
239
308
-
This tells Claude for Desktop:
240
+
### Set up VS Code
309
241
310
-
1. There's an MCP server named "weather"
311
-
2. To launch it by running `uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/weather run weather.py`
242
+
1. Install [VS Code](https://code.visualstudio.com/) (version 1.99 or later).
243
+
2. Install the **GitHub Copilot** extension from the VS Code Extensions marketplace.
244
+
3. Sign in to your GitHub account when prompted.
312
245
313
-
Save the file, and restart **Claude for Desktop**.
246
+
### Configure the MCP server
314
247
315
-
### Test with commands
248
+
Open your `weather` project in VS Code, then create a `.vscode/mcp.json` file in the project root:
316
249
317
-
Let's make sure Claude for Desktop is picking up the two tools we've exposed in our `weather` server. You can do this by looking for the "Add files, connectors, and more" icon.
250
+
```json
251
+
{
252
+
"servers": {
253
+
"weather": {
254
+
"type": "stdio",
255
+
"command": "uv",
256
+
"args": ["run", "weather.py"]
257
+
}
258
+
}
259
+
}
260
+
```
318
261
319
-
After clicking on the plus icon, hover over the "Connectors" menu. You should see the `weather` server listed.
262
+
VS Code may prompt you to trust the MCP server when it detects this file. If prompted, confirm to start the server.
320
263
321
-
If your server isn't being picked up by Claude for Desktop, proceed to the [Troubleshooting](#troubleshooting) section for debugging tips.
264
+
To verify, run **MCP: List Servers** from the Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`). The `weather` server should show a running status.
322
265
323
-
If the server has shown up in the "Connectors" menu, you can now test your server by running the following commands in Claude for Desktop:
266
+
### Use the tools
324
267
325
-
- What's the weather in Sacramento?
326
-
- What are the active weather alerts in Texas?
268
+
1. Open **Copilot Chat** (`Ctrl+Alt+I` / `Ctrl+Cmd+I`).
269
+
2. Select **Agent** mode from the mode selector at the top of the chat panel.
270
+
3. Click the **Tools** button to confirm `get_alerts` and `get_forecast` appear.
271
+
4. Try these prompts:
272
+
- "What's the weather in Sacramento?"
273
+
- "What are the active weather alerts in Texas?"
327
274
328
275
!!! note
329
276
@@ -333,57 +280,28 @@ If the server has shown up in the "Connectors" menu, you can now test your serve
333
280
334
281
When you ask a question:
335
282
336
-
1. The client sends your question to Claude
337
-
2.Claude analyzes the available tools and decides which one(s) to use
283
+
1. The client sends your question to the LLM
284
+
2.The LLM analyzes the available tools and decides which one(s) to use
338
285
3. The client executes the chosen tool(s) through the MCP server
339
-
4. The results are sent back to Claude
340
-
5.Claude formulates a natural language response
341
-
6. The response is displayed to you!
286
+
4. The results are sent back to the LLM
287
+
5.The LLM formulates a natural language response
288
+
6. The response is displayed to you
342
289
343
290
## Troubleshooting
344
291
345
-
??? "Claude for Desktop integration issues"
346
-
347
-
**Getting logs from Claude for Desktop**
348
-
349
-
Claude.app logging related to MCP is written to log files in `~/Library/Logs/Claude`:
292
+
??? "VS Code integration issues"
350
293
351
-
- `mcp.log` will contain general logging about MCP connections and connection failures.
352
-
- Files named `mcp-server-SERVERNAME.log` will contain error (stderr) logging from the named server.
294
+
**Server not appearing or fails to start**
353
295
354
-
You can run the following command to list recent logs and follow along with any new ones:
355
-
356
-
```bash
357
-
# Check Claude's logs for errors
358
-
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
359
-
```
296
+
1. Verify you have VS Code 1.99 or later (`Help > About`) and that GitHub Copilot is installed.
297
+
2. Verify the server runs without errors: run `uv run weather.py` in the `weather` directory — the process should start and wait for input. Press `Ctrl+C` to exit.
298
+
3. Check the server logs: in **MCP: List Servers**, select the server and choose **Show Output**.
299
+
4. If the `uv` command is not found, use the full path to the `uv` executable in `.vscode/mcp.json`.
360
300
361
-
**Server not showing up in Claude**
301
+
**Tools don't appear in Copilot Chat**
362
302
363
-
1. Check your `claude_desktop_config.json` file syntax
364
-
2. Make sure the path to your project is absolute and not relative
365
-
3. Restart Claude for Desktop completely
366
-
367
-
!!! warning
368
-
369
-
To properly restart Claude for Desktop, you must fully quit the application:
370
-
371
-
- **Windows**: Right-click the Claude icon in the system tray (which may be hidden in the "hidden icons" menu) and select "Quit" or "Exit".
372
-
- **macOS**: Use Cmd+Q or select "Quit Claude" from the menu bar.
373
-
374
-
Simply closing the window does not fully quit the application, and your MCP server configuration changes will not take effect.
375
-
376
-
**Tool calls failing silently**
377
-
378
-
If Claude attempts to use the tools but they fail:
379
-
380
-
1. Check Claude's logs for errors
381
-
2. Verify your server builds and runs without errors
382
-
3. Try restarting Claude for Desktop
383
-
384
-
**None of this is working. What do I do?**
385
-
386
-
Please refer to our [debugging guide](https://modelcontextprotocol.io/legacy/tools/debugging) for better debugging tools and more detailed guidance.
303
+
1. Confirm you're in **Agent** mode (not Ask or Edit mode).
304
+
2. Run **MCP: Reset Cached Tools** from the Command Palette, then recheck the **Tools** list.
387
305
388
306
??? "Weather API issues"
389
307
@@ -405,10 +323,6 @@ When you ask a question:
405
323
406
324
This isn't an error — it just means there are no current weather alerts for that state. Try a different state or check during severe weather.
407
325
408
-
!!! note
409
-
410
-
For more advanced troubleshooting, check out our guide on [Debugging MCP](https://modelcontextprotocol.io/legacy/tools/debugging).
411
-
412
326
## Next steps
413
327
414
328
Now that your server is running locally, here are some ways to go further:
0 commit comments