MCP Server Playground
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Server PlaygroundDo I need a visa to go to Japan?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server Playground
A learning project for building and testing custom MCP (Model Context Protocol) servers connected to a deployed LiteLLM proxy.
What This Is
This project explores how to:
Build a REST API and automatically expose it as an MCP server
Register that MCP server with a LiteLLM proxy
Chat with an LLM that can call your custom tools via MCP
Test the whole flow from a CLI
Related MCP server: FastAPI SSE MCP Random
Architecture
┌─────────────┐ MCP protocol ┌──────────────┐ HTTP ┌──────────────┐
│ LiteLLM │ ──────────────────── ▶│ MCP Server │ ────────────▶ │ FastAPI │
│ Proxy │ │ :8001 │ │ :8000 │
│ (deployed) │ └──────────────┘ └──────────────┘
└─────────────┘
▲
│ OpenAI-compatible API
│
┌─────────────┐
│ CLI │
│ (cli.py) │
└─────────────┘FastAPI (api/) — serves two endpoints:
GET /home— returns a random David Salazar factGET /faq— returns Japan FAQ Q&A pairs
MCP Server (mcp_server/) — wraps the FastAPI via its OpenAPI spec and exposes the routes as MCP tools. LiteLLM registers this server and makes the tools available to the LLM.
LiteLLM Proxy — deployed externally. Holds your Anthropic API key, registers your MCP server, and handles all LLM routing.
CLI (cli.py) — interactive chat tool. Lists available MCP tools, lets you pick one, then chats with the LLM using that tool.
Project Structure
faq/
├── api/
│ └── main.py # FastAPI routes
├── mcp_server/
│ └── server.py # MCP server (auto-generated from OpenAPI spec)
├── core/
│ ├── llm.py # LLMService — async chat via LiteLLM proxy
│ ├── models.py # Shared Pydantic models
│ └── settings.py # Config loaded from .env
├── cli.py # Interactive CLI chat tool
├── .env.example # Environment variable template
└── pyproject.tomlSetup
1. Install dependencies
uv sync2. Configure environment
cp .env.example .envEdit .env with your values:
BASE_URL="http://localhost:8000/"
BASE_URL_DOCS="http://localhost:8000/openapi.json"
OPENAI_KEY="sk-your-litellm-master-key"
LITELLM_URL="https://your-litellm-proxy.com" # or http://localhost:4000 locallyRunning Locally
Start each service in a separate terminal:
# 1. FastAPI
uv run uvicorn api.main:app --reload --port 8000
# 2. MCP Server (requires FastAPI to be running first)
uv run python mcp_server/server.py
# 3. CLI chat tool (requires MCP server to be running)
uv run python cli.pyDeploying
Both api/ and mcp_server/ live in this repo and can be deployed together.
FastAPI
uvicorn api.main:app --host 0.0.0.0 --port 8000MCP Server — update BASE_URL in your deployed .env to point to the deployed FastAPI URL, then:
python mcp_server/server.pyRegister with LiteLLM — in your LiteLLM config.yaml, add:
mcp_servers:
- name: faq
url: https://your-mcp-server.com/mcpOr
You can use the LiteLLM UI.
CLI Usage
uv run python cli.pyAvailable tools:
1. faq-home_home_get — Returns a random fact about Me.
2. faq-faq_faq_get — Returns a list of frequently asked questions about Japan.
Pick a tool (number): 2
Using tool: faq-faq_faq_get | Type 'quit' to exit.
You: Do I need a visa to go to Japan?
Assistant: Based on the information available, **visa requirements for Japan depend on your nationality**:
**Citizens of about 68 countries** can enter Japan **visa-free for short stays**, typically up to **90 days**.
However, this varies by country, so I recommend checking the **Japanese Ministry of Foreign Affairs website** to confirm the specific requirements for your country of citizenship.
If your country isn't on the visa-free list, you'll need to apply for an appropriate visa before traveling to Japan.
You: quitAdding New Tools
Add a new route to
api/main.pyRestart the MCP server — it auto-discovers routes from the OpenAPI spec or the
@mcp.tooldecoratorThe new tool appears automatically in LiteLLM and the CLI
This server cannot be deployed
Maintenance
Related MCP Connectors
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
LLM Orchestration Agent (Opentelemetry Instrumentation Fastapi)
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA zero-configuration tool that automatically exposes FastAPI endpoints as Model Context Protocol (MCP) tools, allowing LLM systems like Claude to interact with your API without additional coding.765,026 PyPI12,005MIT
- FlicenseNot gradedqualityDmaintenanceA FastAPI server implementing the Model Context Protocol (MCP) for structured tool use, providing utility tools including random number generation, image generation via Azure OpenAI DALL-E, and AI podcast generation.-
- FlicenseNot gradedqualityDmaintenanceA FastAPI-based MCP server that enables LLM agents to interact with Ollama models through standardized MCP tools, with optional MySQL and Redis integration for data persistence and caching.-
- FlicenseNot gradedqualityDmaintenanceA FastMCP server that wraps a REST API as MCP tools, enabling AI agents to interact with the upstream API.-