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!