Skip to main content
Glama

MCP Docker Demo

by rakeshsun
README.md•3.23 kB
# 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 ```bash docker build -t rak-greet . ``` ### 2. Test the Server (Simple Client) ```bash docker run --rm -i rak-greet python client.py ``` ### 3. Launch Web Inspector (Recommended) ```bash 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) ```bash # 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 ```bash 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:** ```json { "type": "object", "properties": { "greeting": { "type": "string", "description": "The greeting to return" } }, "required": ["greeting"] } ``` **Example:** ```json Input: {"greeting": "Hello"} Output: "Hello World!" ``` ## 🐳 Docker Commands ```bash # 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: 1. Python version (should be 3.11+) 2. All dependencies installed 3. Server logs for errors ### Port Already in Use If port 8000 is busy: ```bash docker run --rm -p 8001:8000 rak-greet python mcp_inspector_web.py ``` Then open: http://localhost:8001 ## šŸ“š Learn More - [Model Context Protocol Documentation](https://modelcontextprotocol.io/) - [MCP Specification](https://spec.modelcontextprotocol.io/) - [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) ## šŸ¤ Contributing Feel free to open issues or submit pull requests! ## šŸ“„ License MIT License - feel free to use this code however you'd like!

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rakeshsun/mcpdocker'

If you have feedback or need assistance with the MCP directory API, please join our Discord server