使用说明
MCP测试服务器
这是一个帮助MCP客户端进行攻击性安全测试的工具。 它为MCP工具提供服务 流式HTTP 用于远程托管,符合2025-03-26 MCP规范。
默认工具
服务器提供了几个开箱即用的工具:
- 一个基本的“echo”,重复作为“saythis”参数传递的任何内容
- 告诉请求者源ip地址的工具
- 一种在给定邮政编码作为参数时告知当前天气的工具
入门指南
先决条件
- Python 3.13+
- 紫外线 (推荐)或pip
本地开发
- 克隆存储库
- 安装依赖项:
uv sync - 运行服务器:
uv run uvicorn app.main:app --host 0.0.0.0 --port 8080
Docker部署
该项目包括一个生产就绪的Dockerfile。
docker build -t mcp-test-server .
docker run -p 8080:8080 mcp-test-server
Heroku部署
-
创建一个Heroku应用程序并将堆栈设置为容器:
heroku create your-app-name --team your-team heroku stack:set container -a your-app-name -
添加Heroku git遥控器:
heroku git:remote -a your-app-name -
创建一个
.env配置文件(请参见env.example),然后设置环境变量:./set-env.sh your-app-name -
部署:
git push heroku main
配置
服务器是通过环境变量配置的:
| 变量 | 描述 | 默认值 |
|---|---|---|
PORT |
要监听的端口 | 8080 |
AUTH_MODE |
身份验证模式: none, token, oauth2 |
none |
AUTH_TOKEN |
静态令牌 token 模式 |
|
OAUTH_CLIENT_ID |
客户端ID oauth2 模式 |
|
OAUTH_CLIENT_SECRET |
客户机密 oauth2 mode(用作JWT机密) |
|
OPENWEATHER_API_KEY |
OpenWeatherMap的API密钥(用于天气工具) |
API和运输
此服务器实现 流式HTTP 运输。
- 端点:
POST /mcp - 协议:JSON-RPC 2.0
- 支持的方法:
initialize,tools/list,tools/call
示例请求
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}'
认证
默认情况下,服务器以“noauth”模式运行。
- 无:不需要身份验证。
- 令牌:验证
Authorization: Bearer <AUTH_TOKEN> - oauth2:验证与签名的JWT
OAUTH_CLIENT_SECRET.端点/token发出有效的令牌client_id和client_secret.
