# MCP Playground Desktop Guide: Test Local MCP Servers (2026)

> Everything MCP Playground Desktop does, in the order you'll use it: install on Mac or Windows, import your Claude Desktop or Cursor servers, inspect stdio and localhost servers, read the JSON-RPC log, and let 80+ AI models call your local tools.

**Source:** https://mcpplaygroundonline.com/blog/mcp-playground-desktop-guide  
**Author:** Nikhil Tiwari  
**Published:** 2026-10-29  
**Category:** User Guides  
**Reading time:** 11 min read  
**Topics:** mcp playground desktop, mcp inspector desktop, mcp inspector desktop app, desktop mcp client for testing, test stdio mcp server, test localhost mcp server, mcp server tester mac, mcp server tester windows, import claude desktop mcp config, mcp json-rpc log

---

📖 TL;DR

-   **MCP Playground Desktop is an MCP inspector you install** on Mac or Windows. It reaches what a browser can't: stdio servers and anything on `localhost`.
-   **Add servers four ways:** Popular presets, your Hosted deployments, Import from Claude Desktop / Cursor / VS Code / Windsurf / Claude Code, or a Custom connection.
-   **The Tester** has Tools, Resources, Prompts, Server and History tabs, plus a live JSON-RPC log and the server's stderr.
-   **Agent Studio** lets 80+ models call your local tools, with an approval step before destructive or write tools.
-   **Your server configs stay on your machine**, encrypted with the OS keychain. Free 7-day trial, then included with paid plans.

## Table of Contents

-   [What is MCP Playground Desktop?](#what-it-is)
-   [Desktop vs the browser tester vs MCP Inspector](#vs-browser)
-   [Install it on Mac or Windows](#install)
-   [Add your first MCP server](#add-server)
-   [Inspect a server in the Tester](#tester)
-   [Read the JSON-RPC log and stderr](#logs)
-   [Let AI models call your local tools](#agent)
-   [What stays on your machine](#privacy)
-   [Updates, trial and plans](#updates)
-   [FAQ](#faq)

I built the browser version of MCP Playground first. Then the same support message kept arriving.

**"My server runs on my laptop. Why can't your tester see it?"**

Because a web page can't start a program on your computer. It also can't open a connection to your `localhost`.

That rules out most servers people are actually building. **Local stdio servers are the default** in Claude Desktop, Cursor and VS Code configs.

**MCP Playground Desktop** fixes that. It's the same tester and Agent Studio, running as an app that can spawn your server and talk to it directly.

This guide walks through every part of it, in the order you'll use it. Skip it and you'll likely miss the two features that save the most time: **config import** and the **stderr tab**.

## What is MCP Playground Desktop?

It's a desktop _MCP client_ built for testing, not for daily chat. Think of it as an **MCP inspector desktop app** with an AI agent attached.

It connects over all three transports:

-   **stdio**: the app starts your server as a child process, with your command, arguments, working folder and environment variables.
-   **Streamable HTTP**: any URL, including `http://localhost:3000/mcp`.
-   **SSE**: the older HTTP+SSE transport, for servers that haven't moved on yet.

It also speaks **both MCP protocol versions**. The 2026-07-28 spec dropped the `initialize` handshake for stateless requests. Many servers still use the 2025-11-25 handshake.

Each connection has a **Protocol** switch: _Auto_ tries stateless 2026-07-28 first and falls back to the handshake. You can pin either version to test exactly what a client will see. [Migrating to the stateless spec](/blog/migrate-mcp-server-2026-07-28-stateless) covers what changed.

## MCP Playground Desktop vs the browser tester vs MCP Inspector

You have three reasonable options for testing. Here's how I'd pick:

Desktop app

MCP Inspector

Browser tester

stdio servers

Yes

Yes

No

localhost HTTP / SSE

Yes

Yes

No

Install

.dmg or Microsoft Store

Node.js + npx each run

None

Import client configs

5 clients

No

No

Saved connections + history

Yes

No

When signed in

AI models calling your tools

80+ models

No

80+ models

Price

7-day trial, then paid plans

Free, open source

Free

**If your server is already deployed on a public HTTPS URL, you don't need the app.** The browser tester does the same job for free.

[Test any MCP server free →](/mcp-test-server)

The official [MCP Inspector](https://github.com/modelcontextprotocol/inspector) is great for a quick look at one server. I reach for the desktop app when I want my servers saved, my client configs imported, and models calling the tools.

## How do I install MCP Playground Desktop?

Grab the build for your machine from the [MCP Playground Desktop page](/local-mcp-server-testing):

-   **Mac (Apple Silicon)** for M-series chips. Check under Apple menu → About This Mac → "Chip: Apple M…".
-   **Mac (Intel)** for older Macs.
-   **Windows**: a small Microsoft Store installer. The Store installs the app and keeps it updated.

The Mac builds are **signed and notarized by Apple**, so there's no "unidentified developer" warning to click past.

### Signing in

Sign-in works like the GitHub CLI. The app opens your browser, you sign in with Google or email, and you approve the device.

The browser hands a one-time code back to the app on a local port. **The app swaps it for a token that belongs to this one device**, stored encrypted in your OS keychain.

That device token is why you can sign out a lost laptop from your account without touching your other machines.

## How do I add an MCP server to the desktop app?

Click **Add a server**. The dialog has four tabs.

### Popular

One-click presets for hosted servers with real, official endpoints. DeepWiki and Context7 need no sign-in. GitHub and Cloudflare ask for a token and tell you where to create one.

### Hosted

If you've deployed a server from [MCP Playground Hosted](/mcp-hosted), it shows up here. **The URL and bearer token are filled in for you.**

### Import (the one I use most)

Import reads the MCP configs you already have on disk:

-   **Claude Desktop**: `claude_desktop_config.json`
-   **Cursor**: `~/.cursor/mcp.json`
-   **VS Code**: the user-level `mcp.json`
-   **Windsurf**: `~/.codeium/windsurf/mcp_config.json`
-   **Claude Code**: `~/.claude.json`

Each server comes in with its command, arguments, working folder and env vars. HTTP entries keep their URL and headers. **An `Authorization: Bearer` header becomes the token field.**

You can also paste a JSON block from a README. Disabled entries are skipped. Not sure where your config lives? See [the MCP config file locations guide](/blog/complete-guide-mcp-config-files-claude-desktop-cursor-lovable).

### Custom

Pick a transport and fill in the fields. For stdio, put **only the program** in Command (`npx`) and the rest in Arguments (`-y @modelcontextprotocol/server-everything`).

The first time a stdio server connects, you'll see a native **"Run a local command?"** dialog. It shows the exact command, folder and env var names.

**The app asks again whenever the command, arguments, folder or env var names change.** A config file can contain anything, and a stdio server runs with your full user permissions. [Here's why that matters](/blog/mcp-stdio-rce-vulnerability).

## How do I inspect a local MCP server in the Tester?

![This is an image of MCP Playground Desktop connected to a local stdio MCP server, showing the tool list, a tool call form and the JSON-RPC log.](/images/desktop/mcp-playground-desktop-stdio-testing.png)

Hit **Connect**. If the server starts, you land in the Tester with five tabs:

-   **Tools**: every tool with a form built from its input schema. Fill it in, run it, read the result.
-   **Resources**: list and read what the server exposes.
-   **Prompts**: fill in arguments and see the messages the server returns.
-   **Server**: name, version, capabilities and the protocol version that was negotiated.
-   **History**: every tool call, resource read and prompt you've run, with input, result and timing.

History works like Postman's. It keeps your last 500 calls, **encrypted on your machine and never uploaded**. Very large results are cut, and the entry says so.

A server that starts isn't the same as a server that works. **Call at least one tool that reads and one that writes** before you trust it. [How to test local MCP servers](/blog/test-local-mcp-server-stdio-inspector-ai-agents) has a full checklist.

### When it doesn't connect

Node's raw spawn errors tell you what broke, not what to do. **The app rewrites the common ones** into a next step:

-   `spawn uvx ENOENT` becomes "Couldn't find uvx on this computer", plus the install command for your OS (`brew install uv` or `winget install astral-sh.uv`).
-   A missing working folder is reported as a missing folder, not a missing command. Node reports both as ENOENT.
-   `EACCES` tells you to check the file is executable.

On a Mac, the app **loads your login shell's PATH at startup**. Apps opened from the Dock normally only get `/usr/bin:/bin:/usr/sbin:/sbin`. Here, Homebrew, nvm, Volta and uv work like they do in Terminal.

That gives you a clean test. **If a server connects here but not in Claude Desktop, the server is fine** and the client's PATH is the problem. [The spawn npx ENOENT fix](/blog/fix-spawn-npx-enoent-mcp) covers that case.

## How do I read the MCP JSON-RPC log?

The log panel under the Tester has two tabs. They answer different questions.

### JSON-RPC

Every message between the app and your server, in order. **Requests, responses, notifications and errors are labelled**, and each response is matched to the method it answers.

This is where you catch protocol bugs. A missing `inputSchema`, a result in the wrong shape, an `id` that doesn't match. Compare against the [MCP specification](https://modelcontextprotocol.io/specification) when something looks off.

### Server stderr

Everything your server printed to stderr. **This is the tab people miss**, and it's the one that usually holds the answer.

Stack traces, "missing API key", "port already in use": a stdio server can only report those on stderr. **When a connect fails and the server printed something, the error points you here.**

One common trap: if your server writes logs to _stdout_, it corrupts the JSON-RPC stream. Python's `print()` does this by default. Send logs to stderr instead.

## How do I let AI models call my local MCP tools?

A tool that works when you call it by hand can still fail when a model calls it. **Vague descriptions and loose schemas only show up when a model picks the tools.**

**Agent Studio** sits next to the Tester in the app. Pick a model from 80+ (Claude, GPT, Gemini, Llama, Qwen, DeepSeek, Grok and more), tick the servers it may use, and chat.

The agent loop runs **inside the app on your machine**, so tool calls go straight to your local servers. Only the model request goes through MCP Playground, billed in credits from your plan.

### Approvals

Under "Ask before running tools" you pick one of three modes:

-   **Destructive** (default): asks before any tool the server marks `destructiveHint: true`.
-   **Writes**: asks before any tool not marked `readOnlyHint: true`.
-   **Never**: runs everything. The app shows this in amber so you don't forget it's on.

If you decline a call, the model is told not to retry it and to ask you instead. These hints come from [tool annotations in the spec](https://modelcontextprotocol.io/specification/2025-11-25/server/tools). **If your tools don't set them, this is a good reason to start.**

### Try more than one model

Run the same prompt on two or three models. If one picks the wrong tool, your description is usually the problem, not the model. [The model comparison page](/mcp-model-comparison) shows how models differ at tool calling.

[Download MCP Playground Desktop for Mac or Windows →](/local-mcp-server-testing)

## What does MCP Playground Desktop keep on your machine?

Saved connections hold API keys in env vars and headers, so I treat them like secrets. **Connections, history and chats are stored on disk, encrypted with your OS keychain** (Keychain on macOS, DPAPI on Windows) via Electron's [safeStorage](https://www.electronjs.org/docs/latest/api/safe-storage).

Chats stay local unless you turn on sync for one. Even then, **server commands, env vars, headers and tokens are never uploaded**. Only server names and hosts go with the chat.

The app itself is locked down too. No webviews, no popups, and links open in your real browser. Only the app's own window can talk to the process that runs your servers.

## MCP Playground Desktop updates, trial and plans

**On Mac**, updates download in the background and install when you quit, or when you click "Restart to update". You can turn automatic updates off and install with one click instead.

**On Windows**, the Microsoft Store handles updates. Release notes show inside the app as "What's new" the first time you open a new version.

**Pricing:** every free account gets a **7-day trial of the whole app**. After that, the desktop app is included with paid plans. Agent Studio runs use credits, like they do on the web.

The app checks your access when it starts and every 15 minutes. **Offline, it keeps working for up to 72 hours** before it needs to check in again.

## Frequently Asked Questions

**Is MCP Playground Desktop an MCP inspector?+**

Yes. It lists and calls tools, reads resources, runs prompts and shows the raw JSON-RPC log, like the official MCP Inspector. It adds saved connections, history, config import from five clients and an AI agent that can call your tools.

**Can it test stdio and localhost MCP servers?+**

Yes. That's the main reason it exists. It starts stdio servers as local processes and connects to localhost over Streamable HTTP or SSE, which a browser-based tester can't do.

**Can I import my Claude Desktop or Cursor MCP servers?+**

Yes. The Import tab reads the configs for Claude Desktop, Cursor, VS Code, Windsurf and Claude Code, and also accepts pasted JSON. Each stdio server still asks for your approval the first time it runs.

**Does it support the 2026-07-28 stateless MCP spec?+**

Yes. Each connection has a Protocol switch. Auto tries 2026-07-28 first and falls back to the 2025-11-25 initialize handshake, or you can pin either version.

**Is MCP Playground Desktop free?+**

Every free account gets a 7-day trial of the whole app. After that it's included with paid plans. The browser tester at mcpplaygroundonline.com stays free for public HTTPS servers.

**Are my API keys and server configs uploaded?+**

No. Connections, history and chats are stored on your machine, encrypted with the OS keychain. If you sync a chat, only server names and hosts go with it, never commands, env vars, headers or tokens.

## Conclusion

MCP Playground Desktop is a tester for the servers a browser can't reach: stdio and localhost. **Import your client configs, connect, and check the stderr tab first** when something fails.

Once the tools work by hand, let two or three models call them in Agent Studio. That's where weak descriptions and loose schemas show up. [Get MCP Playground Desktop for Mac and Windows →](/local-mcp-server-testing)

## Frequently asked questions

### Is MCP Playground Desktop an MCP inspector?

Yes. It lists and calls tools, reads resources, runs prompts and shows the raw JSON-RPC log, like the official MCP Inspector. It adds saved connections, history, config import from five clients and an AI agent that can call your tools.

### Can it test stdio and localhost MCP servers?

Yes. That's the main reason it exists. It starts stdio servers as local processes and connects to localhost over Streamable HTTP or SSE, which a browser-based tester can't do.

### Can I import my Claude Desktop or Cursor MCP servers?

Yes. The Import tab reads the configs for Claude Desktop, Cursor, VS Code, Windsurf and Claude Code, and also accepts pasted JSON. Each stdio server still asks for your approval the first time it runs.

### Does it support the 2026-07-28 stateless MCP spec?

Yes. Each connection has a Protocol switch. Auto tries 2026-07-28 first and falls back to the 2025-11-25 initialize handshake, or you can pin either version.

### Is MCP Playground Desktop free?

Every free account gets a 7-day trial of the whole app. After that it's included with paid plans. The browser tester at mcpplaygroundonline.com stays free for public HTTPS servers.

### Are my API keys and server configs uploaded?

No. Connections, history and chats are stored on your machine, encrypted with the OS keychain. If you sync a chat, only server names and hosts go with it, never commands, env vars, headers or tokens.


---

_Canonical page: https://mcpplaygroundonline.com/blog/mcp-playground-desktop-guide — MCP Playground (mcpplaygroundonline.com), the free browser-based tool for testing MCP servers and building AI agents._
