mcp-playground
A Streamlit-based chat app for LLMs with plug-and-play tool support via Model Context Protocol (MCP), powered by LangChain, LangGraph, and Docker.
Install / Use
claude mcp add Elkhn -- npx -y github:Elkhn/mcp-playgroundIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AI & Machine LearningSupported Platforms
Our assessment of mcp-playground
mcp-playground scores 81/100 on our quality scale, 742nd of 966 AI & Machine Learning skills we index.
Its MCP Server is 7.3 KB long, well organised into 18 sections with 5 code examples: a thorough specification that gives an agent plenty to work with.
It has 46 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated about 8 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
- Our last check on 2026-10-21 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 79/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
mcp-playground compared with similar skills
All 4 of these similar skills score higher than mcp-playground; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| mcp-playground (this skill)by Elkhn | 81 | 46 | 8mo ago | MCP Server |
| claude-memby thedotmack | 100 | 113.5k | today | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 109.2k | today | CLAUDE.md |
| Understand-Anythingby Egonex-AI | 100 | 90.9k | 10d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.9k | today | CLAUDE.md |
Frequently asked questions
- How do I install mcp-playground?
- Run
claude mcp add Elkhn -- npx -y github:Elkhn/mcp-playground. The install tabs above show the steps for each supported agent. - Which AI agents does mcp-playground work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is mcp-playground safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 79/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is mcp-playground still maintained?
- The repository was last updated about 8 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
Skill content
View source on GitHubMCP Playground 🛠️🌩️
A Streamlit-based playground that lets you chat with large language models and seamlessly plug in external Multi-Server Command Protocol (MCP) tools. Spin up multiple FastMCP servers (Weather & Currency) alongside a Streamlit client, all orchestrated with Docker Compose. The client is provider-agnostic (OpenAI • Amazon Bedrock • Anthropic • Google Gemini • Groq) thanks to LangChain + LangGraph. Built with uv for lightning-fast dependency installation.
📖 Learn More
Want a deep dive into how it all works? Check out the detailed walkthrough in this Medium article: https://medium.com/@elkhan.alizada/your-own-ai-agent-playground-build-it-with-streamlit-langgraph-and-docker-4caeb6fe0ac4
🖥️🔌 Main Interface – Connected View

🏗️ Architecture

✨ Key Features
| Feature | Description |
| ------- |--------------------------------------------------------------------------------------------|
| 🔌 Multi-Server MCP | Register any number of MCP servers; the agent auto-detects available tools & routes calls. |
| 🖥️ Streamlit Chat UI | Rich chat experience with history, sidebar controls and live tool execution output. |
| 🧩 Provider-Agnostic | One LangChain interface for OpenAI, Bedrock, Anthropic, Google, Groq. Switch on the fly. |
| 🎯 Dynamic Model Selection | Override default models with custom model IDs directly from the UI. |
| ➕ Dynamic MCP Server Management | Add/remove MCP servers on-the-fly through the UI without editing config files. |
| 🤖 React Agent via LangGraph | create_react_agent enables dynamic tool selection and reasoning. |
| 🐳 Docker-First | Separate Dockerfiles for client & each server + a single docker-compose.yaml. |
| 📦 Extensible | Drop-in new MCP servers or providers without touching UI code. |
📂 Project Layout
mcp-playground/
├─ docker-compose.yaml # One-command orchestration
├─ client/ # Streamlit UI
│ ├─ app.py # Main entry-point
│ ├─ config.py # Typed settings & defaults
│ ├─ servers_config.json # MCP endpoint catalogue
│ ├─ ui_components/ # Streamlit widgets
│ └─ ...
└─ servers/
├─ server1/ # Weather Service MCP
│ └─ main.py
└─ server2/ # Currency Exchange MCP
└─ main.py
🚀 Quick Start
1 · Prerequisites
- Docker ≥ 24 & Docker Compose
- At least one LLM provider key (e.g.
OPENAI_API_KEY) or AWS creds for Bedrock.
2 · Clone & Run
git clone https://github.com/your-org/mcp-playground.git
cd mcp-playground
docker compose up --build
⚡ Fast Builds with uv: All services use uv for dependency management, providing significantly faster Docker builds compared to traditional pip. Dependencies are cached and only reinstalled when pyproject.toml changes.
| Service | URL | Default Port |
| ------- | --- | ------------ |
| Streamlit Client | http://localhost:8501 | 8501 |
| Weather MCP | http://localhost:8000 | 8000 |
| Currency MCP | http://localhost:8001 | 8001 |
⚙️ Configuration
Default Settings
All runtime settings are concentrated in client/config.py and environment variables.
| Variable | Purpose |
| -------- | ------- |
| MODEL_ID | Provider selector (OpenAI, Bedrock, Anthropic, Google, Groq).
| TEMPERATURE | Sampling temperature (sidebar slider). |
| MAX_TOKENS | Token limit (sidebar). |
Default Model IDs:
MODEL_OPTIONS = {
'OpenAI': 'gpt-4o',
'Antropic': 'claude-3-5-sonnet-20240620',
'Google': 'gemini-2.0-flash-001',
'Bedrock': 'us.anthropic.claude-sonnet-4-5-20250929-v1:0',
'Groq': 'meta-llama/llama-4-scout-17b-16e-instruct'
}
🎯 Dynamic Model Override
You can override the default model for any provider directly in the UI:
- Select your provider from the dropdown
- See the default model displayed
- Enter a custom model ID in the "🎯 Custom Model" field
- Leave empty to use the default
Examples:
- OpenAI: Override
gpt-4owitho1for reasoning tasks orgpt-4o-minifor cost efficiency - Anthropic: Use
claude-opus-4.6orclaude-sonnet-4.6for latest models - Google: Try
gemini-2.0-flash-exporgemini-exp-1206for experimental features - Bedrock: Use
us.anthropic.claude-opus-4-6-v1for Opus 4.6 orus.anthropic.claude-sonnet-4-6for Sonnet 4.6 - Groq: Try different Llama models like
llama-3.3-70b-versatile
➕ Dynamic MCP Server Management
Add custom MCP servers without editing servers_config.json:
- Click "➕ Add MCP Server" expander in the sidebar
- Fill in the server details:
- Server Name: Unique identifier (e.g.,
MyCustomServer) - Server URL: Full endpoint URL (e.g.,
http://localhost:8002/sse) - Transport Type:
sseorhttp - Timeout: Connection timeout in seconds (default: 600)
- SSE Read Timeout: SSE-specific timeout (default: 900)
- Headers (optional): JSON object with custom headers
{"Authorization": "Bearer token"}
- Server Name: Unique identifier (e.g.,
- Click "Add Server" to add multiple servers
- Servers persist in your session until removed
Server Sources:
- 📄 From Config: Static servers from
servers_config.json(cannot be removed via UI) - 📝 User Added: Dynamic servers added through UI (can be removed with 🗑️ button)
MCP endpoints can also be statically defined in servers_config.json for persistent configuration.
💬 Using the Playground
- Select Provider · Pick your LLM in the sidebar and paste the corresponding credentials.
- Customize Model (Optional) · Override the default model ID with any model from your provider.
- Add MCP Servers (Optional) · Add custom MCP servers through the UI or use the default servers.
- Connect MCP Servers · Click connect; available tools appear in the MCP Tools list.
- Chat · Type a question.
- If connected, the React agent decides whether to call an MCP tool (e.g. get_current_weather).
- Otherwise it falls back to plain LLM chat.
- Inspect Tool Calls · Tool invocations are streamed back as YAML blocks with inputs & outputs.
Try:
"What will the weather be in Baku tomorrow and how much is 100 USD in AZN?"
🛠️ Included MCP Servers
Weather Service :8000
mcp = FastMCP("Weather Service", host="0.0.0.0", port=8000)
@mcp.tool()
async def get_current_weather(location: str) -> dict: ...
@mcp.tool()
async def get_forecast(location: str, days: int = 3) -> dict: ...
Currency Exchange :8001
mcp = FastMCP("Currency Exchange", host="0.0.0.0", port=8001)
@mcp.tool()
async def get_currency_rates(date: str = None) -> dict: ...
@mcp.tool()
async def convert_currency(amount: float, from_currency: str, to_currency: str, date: str = None) -> dict: ...
🙏 Acknowledgements
Related Skills
claude-mem
113.5kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Agent-Reach
109.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Understand-Anything
90.9kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
headroom
78.9kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
