MCP Docker Demo
A demonstration MCP server implementation with Docker support that provides a simple hello-world tool and includes a web-based inspector for interactive testing and exploration of MCP tools.
README
MCP Docker Demo
A Model Context Protocol (MCP) server implementation with Docker support and a web-based inspector.
š Quick Start
1. Build the Docker Image
docker build -t rak-greet .
2. Test the Server (Simple Client)
docker run --rm -i rak-greet python client.py
3. Launch Web Inspector (Recommended)
docker run --rm -p 8000:8000 rak-greet python mcp_inspector_web.py
Then open your browser to: http://localhost:8000
š Project Structure
mcpdocker-demo/
āāā server.py # MCP server with hello-world tool
āāā client.py # Simple test client
āāā mcp_inspector_web.py # Web UI for testing
āāā Dockerfile # Container configuration
āāā requirements.txt # Python dependencies
š§ What's Inside
MCP Server (server.py)
- Implements a simple "hello-world" tool
- Accepts a greeting and returns it with " World!" appended
- Runs over stdio transport
- Includes debug logging
Web Inspector (mcp_inspector_web.py)
- Beautiful web interface for testing MCP servers
- Lists available tools
- Shows tool schemas
- Interactive testing with real-time results
- Built with FastAPI
Simple Client (client.py)
- Command-line MCP client
- Connects to server via stdio
- Tests the hello-world tool
š ļø Development
Local Development (without Docker)
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run server
python server.py
# In another terminal, run client
python client.py
Run Web Inspector Locally
uvicorn mcp_inspector_web:app --host 0.0.0.0 --port 8000 --reload
š API Reference
Hello World Tool
Name: hello-world
Description: A simple tool that returns a greeting.
Input Schema:
{
"type": "object",
"properties": {
"greeting": {
"type": "string",
"description": "The greeting to return"
}
},
"required": ["greeting"]
}
Example:
Input: {"greeting": "Hello"}
Output: "Hello World!"
š³ Docker Commands
# Build image
docker build -t rak-greet .
# Run server
docker run --rm -i rak-greet python server.py
# Run client
docker run --rm -i rak-greet python client.py
# Run web inspector
docker run --rm -p 8000:8000 rak-greet python mcp_inspector_web.py
š Troubleshooting
"Connection closed" Error
This usually means the server failed to start. Check:
- Python version (should be 3.11+)
- All dependencies installed
- Server logs for errors
Port Already in Use
If port 8000 is busy:
docker run --rm -p 8001:8000 rak-greet python mcp_inspector_web.py
Then open: http://localhost:8001
š Learn More
š¤ Contributing
Feel free to open issues or submit pull requests!
š License
MIT License - feel free to use this code however you'd like!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.