Token导航 LogoToken导航TokenDH.com
MCP Server Cdk logo
AI代理stdio官方级别未说明来源级核验

MCP Server Cdk

MCP Server

一个基于AWS CDK部署的生产级MCP协议服务器,具有安全的私有VPC架构、与Amazon Bedrock的AI集成以及现代React前端。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
PythonClaudeAI代理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

lzwdct

提供方

lzwdct

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

AWS上带有CDK的MCP服务器

使用CDK在AWS上部署的模型上下文协议(MCP)服务器的生产就绪实现,具有安全的私有VPC架构、与Amazon Bedrock的AI集成以及现代React前端。

🏗️ 架构概述

该项目使用HTTP网桥实现了一个纯MCP(模型上下文协议)服务器,以实现浏览器兼容性,并使用安全的私有VPC架构部署在AWS上。

graph TB
    subgraph "External"
        User[👤 User]
        Browser[🌐 Web Browser]
    end
    
    subgraph "AWS Account"
        subgraph "VPC (10.0.0.0/16)"
            subgraph "Public Subnet (10.0.1.0/24)"
                ALB[🔄 Application Load Balancer]
                NAT[🚪 NAT Gateway]
            end
            
            subgraph "Private Subnet (10.0.2.0/24)"
                subgraph "ECS Fargate Cluster"
                    MCPServer[📡 MCP Server Container
FastAPI + MCP Bridge
Port 8000]
                    Frontend[⚛️ React Frontend
Material-UI + Vite
Port 3000]
                end
            end
        end
        
        subgraph "AWS Services"
            DynamoDB[(🗄️ DynamoDB
mcp-items table)]
            Bedrock[🤖 Amazon Bedrock
AI Models]
            CloudWatch[📊 CloudWatch Logs]
        end
    end
    
    User --> Browser
    Browser --> ALB
    ALB --> Frontend
    ALB --> MCPServer
    MCPServer --> DynamoDB
    MCPServer --> Bedrock
    MCPServer --> CloudWatch
    Frontend --> CloudWatch
    
    classDef aws fill:#ff9900,stroke:#333,stroke-width:2px,color:#fff
    classDef private fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    classDef public fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
    classDef external fill:#c8e6c9,stroke:#1b5e20,stroke-width:2px
    
    class ALB,NAT,DynamoDB,Bedrock,CloudWatch aws
    class MCPServer,Frontend private
    class User,Browser external

🔧 MCP协议流

系统通过HTTP桥实现模型上下文协议,以实现浏览器兼容性:

sequenceDiagram
    participant Frontend as React Frontend
    participant Bridge as MCP HTTP Bridge
    participant Server as MCP Server
    participant DB as DynamoDB
    participant AI as Amazon Bedrock
    
    Frontend->>Bridge: POST /mcp
{"method": "tools/list"}
    Bridge->>Server: handle_list_tools()
    Server->>Bridge: [Tool definitions]
    Bridge->>Frontend: {"result": {"tools": [...]}}
    
    Frontend->>Bridge: POST /mcp
{"method": "tools/call", "params": {"name": "bedrock_chat"}}
    Bridge->>Server: handle_call_tool("bedrock_chat", {...})
    Server->>AI: invoke_model()
    AI->>Server: AI response with JSON action
    Server->>DB: execute_action() (if needed)
    DB->>Server: operation_result
    Server->>Bridge: [TextContent result]
    Bridge->>Frontend: {"result": {"content": [...]}}

🛠️ 技术栈

后端(MCP服务器)

  • MCP协议:官方模型上下文协议实施
  • 快速 API:用于浏览器兼容性的HTTP网桥
  • 亚马逊基岩:人工智能模型集成(Titan、Claude)
  • DynamoDB 数据库:用于物品存储的NoSQL数据库
  • python:核心服务器实施

前端

  • 反应18:现代UI框架
  • 材料UI(MUI):组件库
  • :快速构建工具
  • MCP客户端:直接MCP协议通信

基础设施(AWS CDK)

  • ECS Fargate:无服务器容器平台
  • 应用程序负载平衡器:流量路由和SSL终止
  • 垂直路径计算机:使用公共/专用子网保护专用网络
  • DynamoDB 数据库:托管NoSQL数据库
  • 云监控:记录和监控
  • 国际机械师协会:细粒度访问控制

🔐 安全功能

网络安全

  • 私有VPC:专用子网中的所有应用程序资源
  • 安全组:限制性防火墙规则
  • NAT网关:私人资源的出站互联网接入
  • 应用负载均衡器:带有健康检查的面向公众的负载平衡器

访问控制

  • IAM角色:ECS任务的细粒度权限
  • 服务到服务:组件之间的安全通信
  • 没有公共IP:应用程序容器无法直接访问互联网

数据保护

  • DynamoDB加密:静态加密数据
  • CloudWatch日志:集中、安全的日志记录
  • VPC端点:私有AWS服务通信(可选)

📁 项目结构

mcp-server-cdk-package/
├── lib/
│   └── mcp-server-stack.ts          # CDK infrastructure definition
├── mcp-server/
│   ├── main.py                      # MCP server + HTTP bridge
│   ├── requirements.txt             # Python dependencies
│   └── Dockerfile                   # Container configuration
├── simple-frontend/
│   ├── src/
│   │   └── App.jsx                  # React MCP client
│   ├── package.json                 # Frontend dependencies
│   └── Dockerfile                   # Container configuration
├── bin/
│   └── mcp-server-cdk-package.ts   # CDK app entry point
├── cdk.json                         # CDK configuration
└── README.md                        # This file

🛠️ 先决条件

  • Node.js 18或更高版本
  • AWS CLI配置了适当的凭据
  • Docker(用于本地开发)
  • AWS-CDK-CLI(npm install -g aws-cdk)

🚀 快速开始

1.克隆和设置

git clone 
cd mcp-server-cdk-package
npm install

2.部署到AWS

# Bootstrap CDK (first time only)
cdk bootstrap

# Deploy the entire stack
cdk deploy

3.访问您的应用程序

部署后,您将看到带有URL的输出:

  • 应用程序URL:主要前端应用程序
  • MCP API:后端MCP协议端点
  • 健康检查URL:后端运行状况

🏗️ 部署架构

graph LR
    subgraph "Development"
        Dev[👨‍💻 Developer]
        CDK[📦 CDK Code]
    end
    
    subgraph "CI/CD Pipeline"
        Deploy[🚀 cdk deploy]
        Build[🔨 Container Build]
    end
    
    subgraph "AWS Production"
        ECR[📦 ECR Registry]
        ECS[🐳 ECS Services]
        ALB[⚖️ Load Balancer]
        Apps[📱 Applications]
    end
    
    Dev --> CDK
    CDK --> Deploy
    Deploy --> Build
    Build --> ECR
    ECR --> ECS
    ECS --> ALB
    ALB --> Apps

🎯 主要特点

MCP协议实现

  • 纯MCP:完全符合模型上下文协议
  • HTTP网桥:通过HTTP与浏览器兼容的JSON-RPC 2.0
  • 工具执行:创建、读取、更新、删除数据库项
  • 资源访问:列出并读取数据源
  • 人工智能集成:基岩动力智能指令处理

AI代理功能

  • 自然语言:用简明英语处理用户命令
  • 动作执行:解析命令并执行MCP工具调用
  • JSON输出:用于可靠执行的结构化动作指令
  • 错误处理:优雅的错误响应和用户反馈

生产就绪

  • 自动缩放:ECS Fargate,可配置扩展
  • 健康检查:ALB健康监测
  • 日志记录:全面的CloudWatch集成
  • 监控:容器和应用程序指标

🛠️ 可用的MCP工具

工具说明参数
create_item创建新的数据库项name, description, category, metadata
list_items列出所有数据库项limit (可选)
get_item按ID获取特定项目item_id
delete_item按ID删除项目item_id
bedrock_chat具有动作执行功能的AI代理message, model_id (可选)
bedrock_analyze_items数据库项的AI分析analysis_type, model_id (可选)

📊 可用MCP资源

资源描述数据格式
items://all所有数据库项JSON数组
bedrock://models可用基岩模型JSON数组

📝 API文档

MCP HTTP网桥端点

  • POST/mcp:MCP协议消息(JSON-RPC 2.0)
  • GET/健康:健康检查端点
  • GET/docs:FastAPI自动生成的文档

MCP协议方法

  • tools/list:列出可用工具
  • tools/call:使用参数执行工具
  • resources/list:列出可用资源
  • resources/read:读取资源内容

🔧 地方发展

在本地运行MCP服务器

cd mcp-server
pip install -r requirements.txt
python main.py

在本地运行前端

cd simple-frontend
npm install
npm run dev

Docker开发

# Build and run backend
cd mcp-server
docker build -t mcp-server .
docker run -p 8000:8000 mcp-server

# Build and run frontend
cd simple-frontend
docker build -t mcp-frontend .
docker run -p 3000:3000 mcp-frontend

🎓 使用示例

直接MCP协议

// List available tools
const tools = await mcpClient.listTools();

// Create an item
const result = await mcpClient.callTool('create_item', {
  name: 'My Item',
  description: 'Item description',
  category: 'test'
});

AI代理命令

"create an item called laptop with description work computer"
"list all items"  
"delete item abc-123-def"
"analyze all items for insights"

🛡️ 安全考虑

网络安全

  • 所有应用程序组件的专用子网
  • 具有最低访问权限的安全组
  • 用于出站互联网接入的NAT网关
  • 不直接向容器分配公共IP

IAM权限

  • 最小权限原则
  • 服务特定角色和政策
  • 没有硬编码凭据

数据安全

  • 静态DynamoDB加密
  • CloudWatch记录加密
  • VPC流日志(可选)

📈 监控和记录

CloudWatch日志

  • MCP服务器: /ecs/mcp-server
  • 前端: /ecs/frontend
  • 保留期:7天

健康检查

  • ALB健康检查: /health 端点
  • 容器运行状况:ECS任务运行状况监控
  • 数据库运行状况:DynamoDB连接验证

🧪 测试

测试MCP协议

# Health check
curl http://your-alb-url/health

# List MCP tools
curl -X POST http://your-alb-url/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": "1", "method": "tools/list"}'

# Create an item via MCP
curl -X POST http://your-alb-url/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": "2", "method": "tools/call", "params": {"name": "create_item", "arguments": {"name": "Test Item", "description": "A test item", "category": "test"}}}'

测试AI代理

curl -X POST http://your-alb-url/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": "3", "method": "tools/call", "params": {"name": "bedrock_chat", "arguments": {"message": "create an item called laptop"}}}'

🔄 CI/CD管道

该项目通过以下方式支持自动化部署:

  • CDK部署: cdk deploy 用于基础设施更新
  • 容器更新:零停机的ECS服务更新
  • 健康检查:部署失败时自动回滚

清理

清除所有AWS资源:

cdk destroy

🔧 配置

环境变量

  • DYNAMODB_TABLE_NAME:DynamoDB表名(默认值: mcp-items)
  • AWS_DEFAULT_REGION:AWS区域(默认值: us-east-1)
  • NODE_ENV:节点环境(默认值: production)

CDK配置

  • VPC CIDR: 10.0.0.0/16
  • 容器资源:256 CPU,512 MB内存
  • 自动缩放:基于CPU/内存利用率的1-10个任务

🚨 故障排除

常见问题

  1. CDK启动错误:运行 cdk bootstrap 手动地
  2. Docker构建问题:确保Docker正在运行
  3. 权限错误:检查AWS IAM权限
  4. 端口冲突:利用不同的港口促进当地发展

日志

检查CloudWatch日志:

  • /ecs/mcp-server -后端日志
  • /ecs/frontend -前端日志

🎨 前端功能

  • 现代用户界面:采用Material UI的简洁、响应式设计
  • MCP协议:通过HTTP网桥直接进行MCP通信
  • AI聊天:具有自然语言命令的交互式AI代理
  • 项目管理:通过MCP工具进行完整的CRUD操作
  • 实时更新:AI操作后自动刷新
  • 响应式:适用于台式机和移动设备

🛡️ 生产注意事项

  • 为HTTPS添加SSL证书
  • 配置自定义域名
  • 为DynamoDB设置备份策略
  • 实施监控和警报
  • 添加身份验证和授权
  • 配置WAF以增强安全性

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

📄 许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

📞 支持

对于问题和疑问:

  • 在存储库中创建问题
  • 检查故障排除部分
  • 查看AWS CloudWatch日志

______________________________________________________________________

🎉 使用MCP服务器编写代码快乐! 🎉

目录标签

目录标签

PythonClaudeAI代理MCP协议本地部署AWS部署AI集成React前端生产级

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP