AWS文档MCP服务器-Cloudflare Workers
这是AWS文档MCP服务器的一个端口,用于在Cloudflare Workers上运行,并支持HTTP流媒体。
特性
- 标准MCP协议:完整的JSON-RPC 2.0实现,具有适当的MCP合规性
- 基于HTTP的MCP传输:支持MCP协议的REST API端点
- 服务器发送事件(SSE):实时更新的流式响应
- Cloudflare员工:全球低延迟边缘计算
- TypeScript:具有现代JavaScript功能的类型安全实现
可用工具
- read_文档 -获取AWS文档页面并将其转换为markdown
- 搜索文档 -使用官方搜索API搜索AWS文档
- 推荐 -获取AWS文档页面的内容建议
API终点
MCP协议端点
POST /mcp-标准MCP JSON-RPC端点(推荐)GET /mcp/info-服务器信息和功能GET /mcp/tools/list-列出可用工具POST /mcp/tools/call-执行工具(JSON请求/响应)GET /sse/connect-用于流媒体的SSE连接POST /sse/tools/call-使用流式响应执行工具
公用设施端点
GET /health-健康检查GET /-API文件
设置
- 安装依赖项:
npm install- 发展:
npm run dev- 部署到Cloudflare Workers:
npm run deploy使用示例
使用标准MCP协议
初始化MCP会话:
curl -X POST https://your-worker.your-subdomain.workers.dev/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {}}'列出可用工具:
curl -X POST https://your-worker.your-subdomain.workers.dev/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {}}'执行工具:
curl -X POST https://your-worker.your-subdomain.workers.dev/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {"name": "read_documentation", "arguments": {"url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html"}}}'使用传统HTTP端点
列出可用工具:
curl https://your-worker.your-subdomain.workers.dev/mcp/tools/list阅读文档:
curl -X POST https://your-worker.your-subdomain.workers.dev/mcp/tools/call \
-H "Content-Type: application/json" \
-d '{"params": {"name": "read_documentation", "arguments": {"url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html"}}}'搜索文档:
curl -X POST https://your-worker.your-subdomain.workers.dev/mcp/tools/call \
-H "Content-Type: application/json" \
-d '{"params": {"name": "search_documentation", "arguments": {"search_phrase": "S3 bucket naming", "limit": 5}}}'获取建议:
curl -X POST https://your-worker.your-subdomain.workers.dev/mcp/tools/call \
-H "Content-Type: application/json" \
-d '{"params": {"name": "recommend", "arguments": {"url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html"}}}'使用服务器发送的事件
连接到流媒体端点:
curl -N https://your-worker.your-subdomain.workers.dev/mcp/stream使用流媒体执行工具:
curl -X POST https://your-worker.your-subdomain.workers.dev/mcp/tools/stream \
-H "Content-Type: application/json" \
-d '{"params": {"name": "read_documentation", "arguments": {"url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html"}}}' \
-NJavaScript/TypeScript客户端
// Regular HTTP call
const response = await fetch('https://your-worker.your-subdomain.workers.dev/mcp/tools/call', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
params: {
name: 'search_documentation',
arguments: {
search_phrase: 'Lambda functions',
limit: 10
}
}
})
});
const result = await response.json();
// Server-Sent Events
const eventSource = new EventSource('https://your-worker.your-subdomain.workers.dev/mcp/stream');
eventSource.addEventListener('connection', (event) => {
console.log('Connected:', JSON.parse(event.data));
});
eventSource.addEventListener('result', (event) => {
console.log('Result:', JSON.parse(event.data));
});
eventSource.addEventListener('error', (event) => {
console.error('Error:', JSON.parse(event.data));
});配置
更新 wrangler.toml 配置:
[vars]
AWS_DOCUMENTATION_PARTITION = "aws" # or "aws-cn" for China regions
FASTMCP_LOG_LEVEL = "ERROR"与Python版本的差异
- 运输:HTTP而不是stdio
- 运行时:JavaScript/TypeScript代替Python
- 流媒体:服务器发送事件,而不是JSON-RPC
- 依赖项:本机Web API而不是Python库
- 部署:Cloudflare Workers而不是本地进程
性能优势
- 边缘计算:在Cloudflare的边缘网络上全球运行
- 低延迟由于地理分布,响应时间缩短
- 可扩展性:使用Cloudflare Workers平台自动扩展
- 缓存:用于文档页面的内置HTTP缓存
错误处理
服务器返回标准HTTP状态代码和JSON错误响应:
{
"error": {
"code": -32601,
"message": "Unknown tool: invalid_tool_name"
}
}常见错误代码:
-32601:找不到方法(未知工具)-32602:无效参数-32603:内部错误
