MCP Docker演示
支持Docker和基于web的检查器的模型上下文协议(MCP)服务器实现。
🚀 快速开始
1.构建Docker镜像
docker build -t rak-greet .2.测试服务器(简单客户端)
docker run --rm -i rak-greet python client.py3.启动Web检查器(推荐)
docker run --rm -p 8000:8000 rak-greet python mcp_inspector_web.py然后打开浏览器: http://localhost:8000
📁 项目结构
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🔧 里面是什么
MCP服务器(server.py)
- 实现一个简单的“hello world”工具
- 接受问候并附上“世界!”作为回复
- 溢出stdio传输
- 包括调试日志记录
Web检查器(mcp_inspector_web.py)
- 用于测试MCP服务器的漂亮web界面
- 列出可用工具
- 显示工具架构
- 实时结果的交互式测试
- 使用FastAPI构建
简单客户端(client.py)
- 命令行MCP客户端
- 通过stdio连接到服务器
- 测试hello world工具
🛠️ 发展
本地开发(无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在本地运行Web检查器
uvicorn mcp_inspector_web:app --host 0.0.0.0 --port 8000 --reload📝 api参考
Hello World工具
姓名: hello-world
说明: 一个返回问候的简单工具。
输入架构:
{
"type": "object",
"properties": {
"greeting": {
"type": "string",
"description": "The greeting to return"
}
},
"required": ["greeting"]
}例子:
Input: {"greeting": "Hello"}
Output: "Hello World!"🐳 Docker命令
# 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🔍 故障排除
“连接已关闭”错误
这通常意味着服务器无法启动。检查:
- Python版本(应该是3.11+)
- 已安装所有依赖项
- 服务器错误日志
端口已在使用中
如果端口8000繁忙:
docker run --rm -p 8001:8000 rak-greet python mcp_inspector_web.py然后打开:http://localhost:8001
📚 了解更多
🤝 贡献
请随时打开问题或提交pull请求!
📄 许可证
MIT许可证-您可以随意使用此代码!
