MCP测试服务器

一个简单的MCP(模型上下文协议)服务器,用于测试Lightspeed集成,支持Docker到主机的通信处理。

  • by maysunfaisal
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 maysunfaisal/test-mcp-server

使用说明

测试MCP服务器

用于测试Lightspeed集成的简单MCP(模型上下文协议)服务器。它使用FastMCP和uvicorn构建,包括处理Docker到主机通信的中间件。

特性

  • 回声 -回显测试连接的消息
  • get_current时间 -获取当前服务器时间
  • add_numbers -将两个数字相加
  • get_server_info -获取有关MCP服务器的信息

需求

  • Python 3.10+
  • 依赖关系: mcp, uvicorn

安装

# Create and activate virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install mcp uvicorn

用法

python test_mcp_server.py

默认情况下,服务器在端口8888上启动。

配置

环境变量:

变量 默认值 描述
MCP_SERVER_PORT 8888 服务器监听的端口
MCP_AUTH_TOKEN test-secret-token 身份验证令牌

认证

所有请求都必须在Authorization标头中包含Bearer令牌:

curl -H "Authorization: Bearer test-secret-token" http://localhost:8888/mcp

没有有效令牌的请求将收到 401 Unauthorized 回应。

Docker支持

服务器包括 HostRewriteMiddleware 在与主机通信的Docker容器中运行时处理主机头验证。

构建并作为容器运行

构建镜像(Docker或Podman):

podman build -t test-mcp-server -f Containerfile .

使用身份验证令牌和暴露的端口运行它:

podman run --rm -p 8888:8888 \
  -e MCP_SERVER_PORT=8888 \
  -e MCP_AUTH_TOKEN=test-secret-token \
  test-mcp-server

快速身份验证检查:

## Should fail
curl -i http://localhost:8888/mcp

多拱构建和推送(amd64+arm64)

使用助手脚本使用Podman构建多拱形清单。默认情况下,它使用 localhost/test-mcp-server:latest 并且不推动。

[!警告] quay.io/redhat-ai-dev/test-mcp-server:latest 是上游的官方位置。推动这一点 latest 标签可以覆盖已经发布的内容。

./scripts/build-multiarch.sh

可选覆盖:

IMAGE_REF=quay.io/<your-org>/test-mcp-server:latest ./scripts/build-multiarch.sh
PUSH=1 IMAGE_REF=quay.io/<your-org>/test-mcp-server:latest ./scripts/build-multiarch.sh
PLATFORMS=linux/amd64,linux/arm64 PUSH=1 IMAGE_REF=quay.io/<your-org>/test-mcp-server:latest ./scripts/build-multiarch.sh

码头推送权限故障排除:

  • 如果 PUSH=1 失败与 unauthorized: access to the requested resource is not authorized,存储库可能已自动创建为私有,或者您的令牌可能没有写入权限。
  • 修复:
    • 在Quay中,根据工作流程的需要设置存储库可见性/设置。
    • 确保您使用对该命名空间/仓库具有推送访问权限的凭据/令牌登录到Quay。
    • 重新运行 PUSH=1 在更新可见性/权限之后。