MCP测试服务器工具

用于辅助进行MCP客户端攻击性安全测试的工具,提供远程托管服务,支持多种内置工具。

  • by rossja
  • Python
  • 本地部署
  • 更新于

使用说明

MCP测试服务器

这是一个帮助MCP客户端进行攻击性安全测试的工具。 它为MCP工具提供服务 流式HTTP 用于远程托管,符合2025-03-26 MCP规范。

默认工具

服务器提供了几个开箱即用的工具:

  1. 一个基本的“echo”,重复作为“saythis”参数传递的任何内容
  2. 告诉请求者源ip地址的工具
  3. 一种在给定邮政编码作为参数时告知当前天气的工具

入门指南

先决条件

本地开发

  1. 克隆存储库
  2. 安装依赖项:
    uv sync
    
  3. 运行服务器:
    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部署

  1. 创建一个Heroku应用程序并将堆栈设置为容器:

    heroku create your-app-name --team your-team
    heroku stack:set container -a your-app-name
    
  2. 添加Heroku git遥控器:

    heroku git:remote -a your-app-name
    
  3. 创建一个 .env 配置文件(请参见 env.example),然后设置环境变量:

    ./set-env.sh your-app-name
    
  4. 部署:

    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.