requestrocket mcp
用于RequestRocket的MCP服务器-一个全面的模型上下文协议服务器,提供对RequestRocket API的完整CRUD访问,使人工智能助手能够通过内置的安全功能管理客户端、凭据、目标、代理和监控请求历史记录。
概述
此MCP服务器提供 API全面覆盖 对于RequestRocket,允许像Cursor这样的人工智能助手与RequestRocket基础设施的各个方面进行交互。凭借完整的CRUD操作、安全第一的设计和全面的错误处理,该服务器通过自然语言命令实现了无缝的RequestRocket管理。
快速开始
- 安装依赖项:
pip install -r requirements.txt- 配置凭据:
cp .env.example .env
# Edit .env and add your API key and client ID- 测试服务器:
python test_server.py- 添加到光标 (见下面的配置部分)
- 开始使用:
> “@requestrocket列出我的所有客户”
特性
🎯 API全面覆盖
- 完整的CRUD操作:为所有核心资源创建、读取、更新和删除
- 客户管理:完整的客户端生命周期管理
- 凭证管理:具有自动秘密净化功能的完整凭据CRUD
- 目标管理:完成API目标配置
- 代理管理:具有执行功能的完整代理生命周期
- 请求历史记录和遥测:全面监测和分析
🔒 安全第一设计
- 自动秘密消毒:默认情况下,所有响应中都会编辑凭据机密
- 选择披露:只有在明确要求时才能看到秘密
include_secrets=True - 请求标头保护:默认情况下隐藏代理身份验证标头
- 无凭据记录:从未记录API密钥和令牌
- 安全警告:破坏性行动包括明确的警告
🛡️ 安全功能
- 删除保护:所有删除操作都包括有关永久数据丢失的警告
- 客户端删除保护:额外的保护可防止意外删除默认客户端
- 依赖性警告:明确传达对依赖资源的影响
- 一致的错误处理:所有操作中的全面错误消息
📊 监控和分析
- 请求历史:查看最近的请求及其全部详细信息
- 代理遥测:代理性能的每小时/每天指标
- 请求筛选:按代理、日期范围、处理状态筛选
- 性能指标:响应时间、成功率、错误率
先决条件
- Python 3.10或更高版本
- RequestRocket API密钥
- RequestRocket客户端ID
- 光标IDE
安装
- 克隆并导航到此目录:
cd jsonrest-mcp- 创建虚拟环境 (推荐):
python -m venv .venv
# On Windows
.venv\Scripts\activate
# On macOS/Linux
source .venv/bin/activate- 安装依赖项:
pip install -r requirements.txt- 配置环境变量:
- 复制 .env.example 到 .env:
# On Windows
copy .env.example .env
# On macOS/Linux
cp .env.example .env- 编辑 .env 并添加您的RequestRocket凭据:
REQUESTROCKET_API_KEY=your_actual_api_key_here
REQUESTROCKET_BASE_URL=https://api.requestrocket.com
REQUESTROCKET_CLIENT_ID=your_client_id_here
REQUESTROCKET_STAGE=
REQUESTROCKET_TIMEOUT=30
DELETE_ENABLED=FALSE- 将REQUESTROCKET_STAGE留空
- 测试安装:
python test_server.py这将验证所有模块是否正确加载以及凭据是否已配置。
光标配置
将此服务器添加到您的光标MCP设置中:
- 打开光标设置:
- 按 Ctrl+Shift+P (Windows/Linux)或 Cmd+Shift+P (macOS) - 键入“首选项:打开用户设置(JSON)” - 或导航到:文件→ 偏好→ 设置→ 扩展→ MCP
- 添加MCP服务器配置:
{
"mcp.servers": {
"requestrocket": {
"command": "python",
"args": [
"E:\\jsonrest-mcp\\requestrocket_server.py"
]
}
}
}备注:将路径替换为您的绝对路径 requestrocket_server.py 文件。
- 重新启动游标 以使更改生效。
可用工具
此服务器提供 50+MCP工具 按资源类型组织。所有工具都遵循一致的模式,并进行全面的错误处理。
🏢 客户管理
find_client_by_name ⭐ 新-重要
按名称搜索客户端(不区分大小写)。 关键:当用户提到客户的名字时,请务必使用此工具 (例如,“MCP客户端”、“生产客户端”),以避免在错误的组织中创建资源。
- 参数:
client_name(必填) - 退货:将客户与他们的
client_id - 用例:用户说“在MCP客户端中创建代理”→ 第一个电话
find_client_by_name("MCP")获取客户端id
list_clients
列出经过身份验证的用户可访问的所有客户端。
get_client_details
获取特定客户的详细信息。
- 参数:
client_id(可选)
create_client
创建新的客户组织。
- 参数:
client_name(必填),client_region(可选)
update_client 🆕
更新现有客户端的配置。
- 参数:
client_id(必填),update_data字典 - 可更新字段:clientName、clientActive、clientRegion
delete_client 🆕
删除客户组织(⚠️ 极端警告-级联删除)。
- 参数:
client_id(必填,不能使用env默认值) - 安全:额外保护,防止意外删除默认客户端
示例用法:
“@requestrocket列出我的所有客户”\ “@requestrocket创建一个名为“Production”的新客户端”\ “@requestrocket更新客户端abc-123以更改名称”
______________________________________________________________________
🔑 凭证管理
list_credentials
列出所有具有自动秘密净化功能的凭据。
- 参数:
client_id(可选),include_secrets(bool,默认值:false) - 安全:默认情况下已编辑机密,请使用
include_secrets=True查看
get_credential_details
获取具有秘密保护的特定凭据的详细信息。
- 参数:
credential_id(必填),client_id(可选),include_secrets(布尔)
create_credential
为API身份验证创建新凭据。
- 参数:
credential_name,credential_type,credential_data,client_id(可选) - 支持的类型:密钥、承载者、基本、oauth2、customToken、无
update_credential 🆕
更新现有凭据的配置。
- 参数:
credential_id(必填),update_data字典client_id(可选) - 安全:响应机密会自动清理
delete_credential 🆕
删除凭据(⚠️ 警告-影响依赖代理)。
- 参数:
credential_id(必填),client_id(可选)
示例用法:
“@requestrocket列出我的凭据(没有秘密)”\ “@requestrocket为我的生产API创建API密钥凭据”\ “@requestrocket显示凭证abc-123详细信息,包括机密”
______________________________________________________________________
🎯 目标管理
list_targets
列出为客户端配置的所有目标API。
- 参数:
client_id(可选)
get_target_details
获取特定目标API的详细信息。
- 参数:
target_id(必填),client_id(可选)
create_target
创建新的目标API终结点。
- 参数:
target_name,target_url,credential_id(可选),client_id(可选)
update_target 🆕
更新现有目标的配置。
- 参数:
target_id(必填),update_data字典client_id(可选) - 可更新字段:targetName、targetBaseURL、targetTestPath、targetActive
delete_target 🆕
删除目标(⚠️ 警告-影响依赖代理)。
- 参数:
target_id(必填),client_id(可选)
示例用法:
“@requestrocket列出我的所有目标”\ “@requestrocket为创建目标https://dog.ceo/api/"\ “@requestrocket更新目标xyz-789以更改URL”
______________________________________________________________________
🔄 代理管理
list_proxies
列出为客户端配置的所有代理。
- 参数:
client_id(可选)
get_proxy_details
获取特定代理的详细信息。
- 参数:
proxy_id(必填),client_id(可选)
create_proxy
创建一个新的代理来将请求路由到目标API。
- 参数:
proxy_name,target_id,proxy_credential_id,target_credential_id,proxy_region,proxy_active,client_id(可选)
update_proxy 🆕
更新现有代理的配置。
- 参数:
proxy_id(必填),update_data字典client_id(可选) - 可更新字段:proxyName、proxyActive、proxyProxyCredentialId、proxyTargetId、procyTargetCredentialId,proxyAdditionalHeader,proxyMaxRetries
delete_proxy 🆕
删除代理(⚠️ 警告-永久删除)。
- 参数:
proxy_id(必填),client_id(可选)
execute_proxy_request 🆕
通过RequestRocket代理执行HTTP请求。
- 参数:
proxy_id,proxy_region,authorization,path,method,headers,query_params,body,timeout,include_request_details(布尔) - 安全:默认情况下隐藏请求标头
示例用法:
“@requestrocket列出我的所有代理”\ “@requestrocket创建一个路由到Dogs API目标的代理”\ “@requestrocket通过代理abc-123执行对/reeds/list/all的GET请求”
______________________________________________________________________
📊 请求历史记录和遥测
list_requests
列出最近通过RequestRocket提出的请求。
- 参数:
client_id(可选),limit(int,默认值:50)
get_request_details
获取特定请求的完整详细信息。
- 参数:
request_id(必填),client_id(可选)
list_proxy_requests
列出具有筛选选项的特定代理的请求。
- 参数:
proxy_id(必填),client_id(可选),processed_after(ISO日期),processed_before(ISO日期),limit(int)
get_proxy_request_details
获取特定代理请求的详细信息。
- 参数:
proxy_id(必填),request_id(必填),client_id(可选)
get_proxy_telemetry
获取代理性能的遥测指标。
- 参数:
proxy_id(必填),interval(小时/天/周/月),end_date(可选),client_id(可选)
示例用法:
“@requestrocket显示我最近的20个请求”\ “@requestrocket获取代理xyz-123的每小时遥测数据”\ “@requestrocket列出过去24小时内对代理abc-456的请求”
______________________________________________________________________
🎛️ 高级功能
代理规则
list_proxy_rules,get_proxy_rule_details,create_proxy_rule,update_proxy_rule,delete_proxy_rule
凭证规则
list_credential_rules,get_credential_rule_details,create_credential_rule,update_credential_rule,delete_credential_rule
会员资格
list_memberships,get_membership_details,update_membership,delete_membership
客户与账单
get_customer_details,create_customer,update_customer,delete_customerget_stripe_portal_details,create_stripe_portal,update_stripe_portal,delete_stripe_portal
配置
list_configurations,create_configuration,update_configuration,delete_configuration
系统
get_current_user-获取经过身份验证的用户详细信息list_endpoints-列出可用的API端点
工具总数:50多个工具,提供完整的RequestRocket API覆盖范围
______________________________________________________________________
📖 人工智能助理学习资源
MCP资源(内置文档)
此MCP服务器通过MCP资源提供内置文档,AI助手可以查询这些文档以学习如何有效地使用这些工具。
📚 API架构
查询这些资源以了解数据结构和要求:
requestrocket://schemas/overview-列出所有可用架构requestrocket://schemas/credentials/key-API密钥凭证架构及示例requestrocket://schemas/credentials/bearer-承载令牌模式requestrocket://schemas/credentials/basic-基本身份验证模式requestrocket://schemas/credentials/oauth2-*-各种OAuth 2.0流程requestrocket://schemas/credentials/custom-token-自定义令牌架构requestrocket://schemas/targets/create-目标创建架构requestrocket://schemas/proxies/create-代理创建架构requestrocket://schemas/rules/create-访问控制规则架构
📖 工作流程指南
常见操作的分步指南:
requestrocket://guides/overview-列出所有可用指南requestrocket://guides/create-proxy-完成代理设置工作流程
- 先决条件、分步说明、示例、常见错误
requestrocket://guides/test-proxy-如何验证代理是否正常工作requestrocket://guides/create-client-建立客户组织requestrocket://guides/manage-credentials-凭证安全的最佳实践
示例用法:
AI: "How do I create a proxy?"
> Query: requestrocket://guides/create-proxy
> Returns: Complete 5-step workflow with examples系统
get_current_user-获取经过身份验证的用户详细信息list_endpoints-列出可用的API端点
工具总数:50多个工具,提供完整的RequestRocket API覆盖范围
发展
测试服务器
在配置Cursor之前,请测试服务器是否已正确设置:
python test_server.py这将验证:
- 所有模块均可导入
- 配置已正确加载
- MCP服务器可以实例化
- 已配置API凭据
- 所有工具均已注册
运行测试
该项目包括一个全面的测试套件 80+测试 涵盖所有核心业务:
# Install test dependencies
pip install -r requirements-dev.txt
# Run all tests
pytest
# Run with coverage report
pytest --cov=tools --cov=utils --cov-report=term-missing
# Run specific test file
pytest tests/test_clients.py
# Run specific test class
pytest tests/test_clients.py::TestCreateClient
# Run with verbose output
pytest -v看 tests/README.md 详细的测试文件和 TEST_COVERAGE_SUMMARY.md 关于覆盖状态。
测试覆盖率
- 80+测试 涵盖LIST、GET、CREATE和UPDATE操作
- 全面覆盖 用于客户端、凭据、目标、代理
- 成功场景、错误处理和边缘情况的测试
- 安全测试验证凭证秘密净化
- 所有HTTP请求都被模拟(测试期间没有真正的API调用)
- pytest-cov覆盖率报告
测试文件:
tests/test_clients.py-客户管理测试(22项测试)✅ 完成tests/test_credentials.py-证书测试(含安全测试)tests/test_targets.py-目标API测试tests/test_proxies.py-代理管理测试tests/test_requests.py-请求历史测试
直接运行服务器
对于测试,您可以直接运行服务器:
python requestrocket_server.py服务器将启动并等待stdin上的JSON-RPC消息。
日志记录
服务器会登录到stderr(永远不会登录stdout,因为这会破坏JSON-RPC协议)。您可以在运行Cursor的终端中查看日志,或查看Cursor输出面板:
- 在光标中打开输出面板(
View → Output) - 从下拉菜单中选择“MCP”或“扩展主机”
故障排除
服务器未显示在游标中
- 检查光标设置中的路径是否绝对正确
- 验证Python是否在您的PATH中(
python --version) - 确保安装了所有依赖项(
pip install -r requirements.txt) - 检查输出面板是否有错误消息(查看→ 输出→ MCP)
- 确保完全重新启动了Cursor
- 尝试直接运行服务器进行测试:
python requestrocket_server.py - 验证服务器脚本没有语法错误:
python -m py_compile requestrocket_server.py
API关键问题
如果您看到“REQUESTOCKET_API_KEY未配置”:
- 验证
.env文件存在于项目目录中 - 检查一下
REQUESTROCKET_API_KEY设定在.env - 确保
.env文件没有语法错误或多余空格 - 验证RequestRocket中的API密钥是否有效
- 检查上的文件权限
.env(应可读)
请求失败
检查日志以了解详细的错误消息。常见问题:
- API密钥无效:验证RequestRocket仪表板中的密钥
- 网络连接:检查互联网连接和防火墙
- RequestRocket API速率限制:等待并重试
- 请求格式无效:检查工具参数是否符合API要求
- 缺少权限:确保API密钥具有所需的权限
- 已过期的凭据:如果凭据已过期,则进行轮换
工具未找到错误
如果添加工具后工具不可用:
- 重新启动MCP服务器(重新启动Cursor)
- 检查工具是否装饰有
@mcp.tool() - 验证工具模块是否已导入
requestrocket_server.py - 检查Python语法错误:
python -m py_compile tools/your_tool.py
秘密消毒问题
如果您需要查看实际的凭据机密以进行调试:
- 使用
include_secrets=True凭证操作中的参数 - 记住,这会将敏感数据暴露给人工智能
- 查看秘密后清除对话
文档
综合文档可在 Documentation/ 文件夹:
- 建筑.md -系统架构与设计
- 项目\_ SUMMARY.md -项目概况和目标
- 安全\_ REVIEW.md -安全审计和最佳做法
- API版本.md -完成API覆盖审计
- 完成_实施.md -实施总结
- 测试_验证\_ SUMMARY.md -测试覆盖状态
- 测试/README.md -测试指南和示例
统计
- 50+MCP工具 提供完整的API覆盖范围
- 80+单元测试 具有全面的错误处理功能
- 100%原油覆盖率 所有核心资源(客户端、凭据、目标、代理)
- 安全第一 具有自动秘密净化功能
- 生产就绪 具有全面的错误处理和日志记录功能
项目结构
jsonrest-mcp/
├── README.md # This file
├── requirements.txt # Python dependencies
├── requirements-dev.txt # Development dependencies (testing)
├── pyproject.toml # Project metadata and tool configuration
├── requestrocket_server.py # Main MCP server entry point
├── mcp_instance.py # Shared MCP server instance
├── test_server.py # Server validation script
├── .env.example # Example environment configuration
├── .env # Your actual credentials (gitignored)
├── .gitignore # Git ignore rules
│
├── tools/ # MCP tools (50+ tools)
│ ├── __init__.py # Tools package exports
│ ├── clients.py # Client management (5 tools)
│ ├── credentials.py # Credentials management (5 tools)
│ ├── targets.py # Targets management (5 tools)
│ ├── proxies.py # Proxies management (5 tools)
│ ├── proxy_requests.py # Proxy execution (1 tool)
│ ├── requests.py # Request history (4 tools)
│ ├── telemetry.py # Telemetry metrics (1 tool)
│ ├── rules.py # Rules management (10 tools)
│ ├── memberships.py # Membership management (4 tools)
│ ├── customers.py # Customer management (4 tools)
│ ├── stripe_portal.py # Stripe integration (4 tools)
│ ├── configurations.py # Configuration management (4 tools)
│ ├── endpoints.py # Endpoint discovery (1 tool)
│ └── users.py # User management (1 tool)
│
├── utils/ # Shared utilities
│ ├── __init__.py # Utils package exports
│ ├── config.py # Environment configuration
│ ├── api_client.py # RequestRocket API client (with security)
│ ├── models.py # Data models and examples
│ └── schemas.py # JSON schemas
│
├── tests/ # Test suite (80+ tests)
│ ├── __init__.py
│ ├── conftest.py # Shared fixtures and configuration
│ ├── README.md # Testing guide
│ ├── test_clients.py # Client tests
│ ├── test_credentials.py # Credential tests
│ ├── test_targets.py # Target tests
│ ├── test_proxies.py # Proxy tests
│ └── test_requests.py # Request history tests
│
└── Reference/ # API documentation
└── API Suite.postman_collection.json # Postman collection🛡️ 最佳实践
- 永不承诺
.env文件 -包含敏感的API凭据 - 使用单独的凭据进行开发 -不要在人工智能辅助开发中使用生产密钥
- 定期轮换凭据 -尤其是在涉及敏感操作的人工智能会话之后
- 查看AI对话日志 -检查是否有任何意外的敏感数据泄露
- 默认情况下使用经过净化的响应 -仅启用
include_secrets=True调试时 - 查看秘密后清除对话 -如果你需要查看秘密,请清除对话
- 限制API密钥权限 -尽可能使用只读密钥
许可证
待续
贡献
我们欢迎捐款!拜托:
- 审查现有的代码结构和模式
- 遵循既定的安全实践
- 为新功能添加测试
- 更新文档
- 看
contributing.md详细指南
致谢
内置:
- 模型上下文协议(MCP) -AI第一个API框架
- HTTPX -现代异步HTTP客户端
- 测试 -全面的测试框架
- python dotenv -环境管理
- 派丹蒂克 -数据验证
特别感谢RequestRocket团队提供了一个全面的API平台。
