npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-live-playground

v0.0.4

Published

Live IDE for building, testing, and debugging MCP servers — LLM agnostic

Downloads

313

Readme

MCP Live Playground

A CodePen-style live IDE for building, testing, and debugging Model Context Protocol (MCP) servers — LLM agnostic.

License TypeScript React Vite


Features

  • Live code editor with full syntax highlighting (CodeMirror 6), TypeScript & Python support
  • Real-time parser — tools, resources, and prompts are detected as you type (< 1ms)
  • Tool Inspector — shows every parameter with type, description, constraints, and enum values
  • AI Test Console — chat with any LLM to test tools, generate edge cases, and debug
  • Simulation Modal — fill in parameters and get a realistic simulated tool response
  • JSON Schema generator — auto-generates full MCP-compatible JSON Schema from your code
  • LLM Agnostic — works with Anthropic, OpenAI, Ollama (local), OpenRouter, or any OpenAI-compatible API
  • Resizable split pane, localStorage persistence, 5 built-in templates

Quick Start

Via npx (no install needed)

npx mcp-live-playground          # serve production build, opens browser
npx mcp-live-playground --dev    # dev server with hot reload
npx mcp-live-playground --port=3000 --no-open

Clone & run locally

git clone https://github.com/anandpilania/mcp-live-playground
cd mcp-live-playground
npm install
npm run dev      # http://localhost:3000

Supported LLM Providers

| Provider | API Key Required | Notes | | -------------- | ------------------------- | ------------------------------------------ | | Anthropic | Yes | Claude Sonnet, Opus, Haiku | | OpenAI | Yes | GPT-4o, GPT-4-turbo, etc. | | Ollama | No | Local models (llama3, mistral, codellama…) | | OpenRouter | Yes (free tier available) | 200+ models including free ones | | Custom | Optional | Any OpenAI-compatible endpoint |

Click the provider button in the toolbar to configure your API key and model. Keys are stored only in your browser's localStorage and never sent anywhere other than the provider's API directly.


Templates

| Template | Language | Description | | ------------------- | ---------- | ------------------------------------------------------------- | | Weather + Translate | TypeScript | Open-Meteo weather API + translation | | Database Tools | TypeScript | Safe PostgreSQL SELECT queries + schema inspection | | File System | TypeScript | Sandboxed file read/write/list with path traversal protection | | Python (FastMCP) | Python | Web search, sentiment analysis, image generation | | Empty Server | TypeScript | Blank starter |


Python Testing — How It Works

Python tools cannot be executed in the browser (no Python runtime). The playground handles this in two ways:

| Feature | How it works | | ------------------------- | ----------------------------------------------------------------------------------------------------------- | | Tool parsing | Regex extracts @mcp.tool() decorators, def signatures, Field(...) params, and docstrings in real-time | | TEST button / Console | Your chosen LLM simulates what the tool would return, based on code + param types + your inputs | | Real execution | Run fastmcp dev server.py and connect MCP Inspector |

A purple banner shows when you're in Python mode and links to the real-execution workflow.


Save, Export & Import

The toolbar provides four file actions:

| Button | What it does | | ------------ | --------------------------------------------------------- | | COPY | Copy current code to clipboard | | EXPORT | Download as .ts or .py file (auto-detected from code) | | SNAPSHOT | Export full .json snapshot with code + template name | | IMPORT | Import a .ts, .py, .js, or .json snapshot |

Snapshots are portable — share with teammates and re-import to restore the exact state.


Adding a New Template

Edit src/templates/index.ts and add a new entry to the TEMPLATES array:

{
  name: "My Template",
  lang: "ts",
  description: "What it does",
  code: `...your MCP server code...`,
}

Extending the Parser

The parser in src/lib/parser.ts uses regex to extract tool definitions from code. It currently supports:

  • TypeScript: server.tool("name", "desc", { schema }, handler)
  • Python: @mcp.tool() + def name(...) + docstring

To add support for more patterns, extend parseTsTools or add a new language parser and call it from parseServer.


Adding a New LLM Provider

Edit src/providers/index.ts:

  1. Add your provider type to LLMProviderType in src/types/index.ts
  2. Add its default config to DEFAULT_PROVIDERS
  3. If it's not OpenAI-compatible, add a new send function and dispatch it in sendMessage

Building for Production

npm run build     # outputs to dist/
npm run preview   # preview the build locally

License

MIT — use it, fork it, open-source it.