RequestRocket MCP安全演示

这个概念证明展示了MCP服务器如何坐在RequestRocket代理后面,同时保持代理对外部URL形状的可预测性。相同的模式可以重复用于其他工具。
📚 文档
- docs/QUICK_REFERENCE.md -关键配置值的快速参考
- docs/REQUESTROCKET_SETUP.md -配置RequestRocket代理的完整指南
- docs/ARCHITECTURE.md -可视化图表和架构说明
- docs/env.example -环境变量模板
拓扑和URL方案
- 地区:
ap-southeast-2 - 代理UUID(示例):
123e4567-e89b-12d3-a456-426614174000 - 代理调用的外部端点:
- https://ap-southeast-2.requestrocket.com/api/123e4567-e89b-12d3-a456-426614174000/invoke
- RequestRocket转发到MCP服务器
https://mcp-demo.yourdomain.com/invoke,注射x-internal-mcp-token. - 重要:RequestRocket是一个 仅限身份验证代理 -它不会转换请求正文或URL路径
- 客户端请求格式:
{
"toolName": "getOpenTenders",
"args": { "region": "AU" }
}- RequestRocket将此消息原封不动地转发给MCP服务器,只翻译身份验证(承载令牌→ x内部mcp令牌)
项目结构
src/mcp-demo-server.ts–最小MCP风格的服务器POST /invoke,工具getOpenTenders和echo,以及标头强制执行x-internal-mcp-token.src/client-demo.ts基于Axios的脚本使用RequestRocket URL形状调用代理URL。package.json/tsconfig.jsonTypeScript构建并运行脚本。
先决条件
- Node.js 18+
- 纱线(
npm install -g yarn) - 安装依赖项:
yarn install
运行MCP演示服务器
开发模式(使用TypeScript):
yarn dev:server生产模式(需要先构建):
yarn build
yarn start:server环境变量:
PORT–默认为3000.INTERNAL_MCP_TOKEN–代币预计在x-internal-mcp-token标题(默认为dev-internal-token).
示例请求(RequestRocket将向下游发送什么):
curl -X POST http://localhost:3000/invoke \
-H "Content-Type: application/json" \
-H "x-internal-mcp-token: dev-internal-token" \
-d '{"toolName": "getOpenTenders", "args": {"region": "AU"}}'针对代理URL运行客户端演示
如果需要,请更新代理UUID和API密钥。默认值反映了示例拓扑并回退到 dev-api-key 用于本地测试。
REQUESTROCKET_API_KEY=your-api-key yarn demo:client这将调用两者 getOpenTenders 和 echo 通过:
https://ap-southeast-2.requestrocket.com/api/123e4567-e89b-12d3-a456-426614174000/mcp/getOpenTendershttps://ap-southeast-2.requestrocket.com/api/123e4567-e89b-12d3-a456-426614174000/mcp/echo
备注
- MCP服务器从不接收RequestRocket凭据;它只看到您配置的内部令牌。
- 您可以通过让MCP服务器通过额外的RequestRocket代理调用其他系统(例如Oracle Fusion)来扩展该模式,这样就不会有下游秘密离开您的控制。
快速入门指南
- 安装依赖项:
yarn install- 构建项目:
yarn build- 在本地启动服务器:
yarn start:server- 测试其工作原理:
curl -X POST http://localhost:3000/invoke \
-H "Content-Type: application/json" \
-H "x-internal-mcp-token: dev-internal-token" \
-d '{"toolName": "getOpenTenders", "args": {"region": "AU"}}'- 配置RequestRocket:
- 看 docs/REQUESTROCKET_SETUP.md 详细说明 - 配置示例包含在设置指南中
- 部署您的MCP服务器:
- 部署到您的托管平台(AWS、Azure、GCP等) - 设置环境变量: INTERNAL_MCP_TOKEN=your-secure-token - 使用您的服务器URL更新RequestRocket配置
- 通过RequestRocket进行测试:
curl -X POST https://ap-southeast-2.requestrocket.com/api/{your-proxy-id}/invoke \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"toolName": "getOpenTenders", "args": {"region": "AU"}}'