使用说明
测试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在更新可见性/权限之后。