Skip to main content

The Python-native playground for MCP servers

Project description

mcpplay

mcpplay

The FastAPI /docs experience, for MCP servers.

PyPI version Python versions License

DocumentationGetting StartedIssues

mcpplay in action

mcpplay gives you a browser-based playground for any MCP server. One command, and you get auto-generated forms, live results, and a full execution timeline.

Installation

pip install mcpplay
mcpplay demo

Your browser opens to http://localhost:8321. That's it!

mcpplay screenshot

Point it at your own server

mcpplay run server.py
mcpplay run --command "node server.js"
mcpplay run --command "uvx my-mcp-server"

Options

mcpplay run server.py --port 9000        # Custom port (default: 8321)
mcpplay run server.py --no-open          # Don't auto-open browser
mcpplay run server.py --no-reload        # Disable hot reload
mcpplay run server.py --env API_KEY=xxx  # Pass env vars to server

Features

  • Schema-aware forms - auto-generated from your tool's JSON Schema, with enums, nested objects, arrays, and defaults.
  • Live execution - run tools and see structured results instantly.
  • Persistent timeline - every call logged with inputs, outputs, and latency. Replay with one click.
  • Hot reload - edit your server, mcpplay restarts it. Session and timeline preserved.
  • Localhost-only - bound to 127.0.0.1 with Origin validation. No remote exposure.

How It Works

Browser UI  ←→  mcpplay (Python proxy)  ←→  Your MCP Server
  (Svelte)      (uvicorn + WebSocket)        (stdio)

mcpplay spawns your server as a child process, connects via stdio, and proxies everything through a WebSocket to the browser. Executions are logged to a local SQLite database.

Comparison

mcpplay MCP Inspector MCPJam Inspector
Install pip install npx (Node required) Docker
Python native
Form generation Full JSON Schema Basic inputs Basic inputs
Hot reload
Execution timeline Persistent, replayable Log Log

Development

git clone https://github.com/gauthierpiarrette/mcpplay
cd mcpplay

# Python backend
uv sync --dev
uv run pytest

# Frontend (Svelte)
cd frontend
npm install
npm run dev      # Dev server with HMR
npm run build    # Build to src/mcpplay/static/

License

Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcpplay-0.1.0.tar.gz (469.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcpplay-0.1.0-py3-none-any.whl (83.8 kB view details)

Uploaded Python 3

File details

Details for the file mcpplay-0.1.0.tar.gz.

File metadata

  • Download URL: mcpplay-0.1.0.tar.gz
  • Upload date:
  • Size: 469.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcpplay-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4cbe9ddcb5742be1abe0d689fee58e5d001f30e6197bc2eba497f878e3c06a1b
MD5 6b546584ad54b78fe8439b2e7a757ca3
BLAKE2b-256 e7461a5af75cb8b8552644a6130092a753f32f5f2c811da33c09f89a693131f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpplay-0.1.0.tar.gz:

Publisher: release.yml on gauthierpiarrette/mcpplay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpplay-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mcpplay-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 83.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcpplay-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f44b3c8dafdb459591cc03c7ec11a7d989a5efa2d473ba8b03c5089e45ad4f6
MD5 e29119a9aab18e61ed60e5a11cbb6446
BLAKE2b-256 bd937b63b6b4bc5c834ffac66e0caf4d77cbf823295d785252dfd69ab5634a32

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpplay-0.1.0-py3-none-any.whl:

Publisher: release.yml on gauthierpiarrette/mcpplay

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page