模型上下文协议服务器

一个支持Docker的模型上下文协议服务器实现,提供基于Web的检查工具,用于测试和交互。

  • by rakeshsun
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 rakeshsun/mcpdocker

使用说明

MCP Docker演示

支持Docker和基于web的检查器的模型上下文协议(MCP)服务器实现。

🚀 快速开始

1.构建Docker镜像

docker build -t rak-greet .

2.测试服务器(简单客户端)

docker run --rm -i rak-greet python client.py

3.启动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

🔍 故障排除

“连接已关闭”错误

这通常意味着服务器无法启动。检查:

  1. Python版本(应该是3.11+)
  2. 已安装所有依赖项
  3. 服务器错误日志

端口已在使用中

如果端口8000繁忙:

docker run --rm -p 8001:8000 rak-greet python mcp_inspector_web.py

然后打开:http://localhost:8001

📚 了解更多

🤝 贡献

请随时打开问题或提交pull请求!

📄 许可证

MIT许可证-您可以随意使用此代码!