云平台MCP服务器演示
一个全面的示范 模型上下文协议(MCP)服务器 它通过智能提示和工具实现了与云资源管理的自然语言交互。
🎯 概述
该项目展示了MCP如何将复杂的云基础设施管理转化为直观、对话式的工作流程。通过将LLM客户端连接到我们的MCP服务器,用户可以使用自然语言查询执行复杂的云资源分析、安全审计和访问管理。
关键创新:用户不必编写复杂的SQL查询或API调用,只需询问: _“请帮我登上爱丽丝·史密斯”_ 或 _“审核AWS资源的所有写入权限”_ 并获得全面、结构化的回应。
✨ 特性
🤖 MCP服务器功能
- 6核心工具 用于云资源管理
- 5个预定义提示 用于常见的IT工作流程
- 自然语言接口 通过模型上下文协议
- 实时数据访问 通过FastAPI后端
- 多云支持 (AWS、Azure、GCP)
🔧 后端基础设施
- FastAPI REST API 具有完整的CRUD操作
- PostgreSQL数据库 具有优化的模式
- Docker编排 便于部署
- 健康检查 监测
- 自动数据种子 具有真实的测试数据
🛡️ 安全与合规
- 权限审核 跨云平台
- 准入调查 针对特定资源
- 特权评论 识别特权账户
- 开发人员入职培训 具有自动访问验证功能
🏗️ 建筑
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ LLM Client │◄──►│ MCP Server │◄──►│ FastAPI │
│ │ │ (Port 9001) │ │ (Port 8000) │
│ • Natural Language │ │ • 6 Tools │ │ • CRUD Operations │
│ • Conversational UI │ │ • 5 Smart Prompts │ │ • Data Validation │
│ • Auto Tool Select │ │ • Protocol Handler │ │ • Business Logic │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ │
│ │
▼ ▼
┌─────────────────────────────────────────────┐
│ PostgreSQL Database │
│ (Port 5432) │
│ • Developers Table │
│ • Cloud Resources Table │
│ • Permissions Table │
└─────────────────────────────────────────────┘🚀 快速开始
先决条件
- Docker&Docker编写
- Python 3.11+(用于本地开发)
1.克隆并启动
git clone
cd ai_mcp_cloud_platforms
# Start all services
docker-compose up -d
# Check service status
docker-compose ps2.验证安装
# Test API
curl http://localhost:8000/developers/
# Test MCP Server
curl http://localhost:9001/mcp/
# Run demonstration
python demo_prompts.py3.接入服务
- API文档: http://localhost:8000/docs
- MCP服务器: http://localhost:9001/mcp/
- 数据库:本地主机:5432(itadmin/itadmin)
🔨 项目结构
ai_mcp_cloud_platforms/
├── API/ # FastAPI Backend
│ ├── main.py # API entry point
│ ├── models.py # SQLAlchemy models
│ ├── database/
│ │ ├── init_db.sql # Database schema
│ │ └── connection.py # DB connection
│ ├── routes/ # API endpoints
│ │ ├── developers.py # Developer CRUD
│ │ ├── cloud_resources.py # Resource CRUD
│ │ └── permissions.py # Permission CRUD
│ └── Dockerfile # API container
│
├── MCP_SERVER/ # MCP Server
│ ├── main.py # MCP entry point
│ ├── tools.py # 6 MCP tools
│ ├── prompts.py # 5 predefined prompts
│ └── Dockerfile # MCP container
│
├── seed_data/ # Database seeding
│ └── seed_api.py # Test data generation
│
├── docker-compose.yml # Service orchestration
├── demo_prompts.py # Demonstration script
├── MCP_PROMPTS_GUIDE.md # Prompt documentation
├── PROJECT_SUMMARY.md # Technical deep dive
└── README.md # This file🛠️ MCP服务器详细信息
可用工具
| 工具 | 目的 | 示例使用 |
|---|---|---|
list_developers | 获取所有开发人员 | 用户管理 |
list_cloud_resources | 获取资源(可过滤) | 资源清单 |
lookup_resources_for_developer | 用户访问权限 | 登机验证 |
get_resource_permissions | 资源访问列表 | 安全调查 |
hello | 简单问候 | 连接测试 |
test_simple | 基本功能 | 健康检查 |
智能提示
| 提示 | 场景 | 业务价值 |
|---|---|---|
developer_onboarding | 新员工设置 | 简化访问验证 |
security_audit_write_access | 合规审查 | 风险评估 |
resource_access_investigation | 事件响应 | 快速访问查找 |
cloud_footprint_analysis | 迁移规划 | 成本优化 |
high_privilege_review | 安全审计 | 权限管理 |
🎮 如何互动
通过API(直接)
# Get all developers
curl http://localhost:8000/developers/
# Get permissions for developer ID 1
curl http://localhost:8000/permissions/by-developer/1
# Get who can access resource ID 1
curl http://localhost:8000/permissions/by-resource/1通过MCP(自然语言)
使用兼容MCP的LLM客户端:
User: "Help me onboard developer Alice Smith"
LLM: Uses developer_onboarding prompt → Shows Alice's resources across clouds
User: "Who has write access to AWS resources?"
LLM: Uses security_audit_write_access prompt → Lists write permissions
User: "Investigate access to the AWS S3 Bucket"
LLM: Uses resource_access_investigation prompt → Shows detailed access通过演示脚本
python demo_prompts.py这将使用真实数据运行所有5个提示,并准确显示LLM将看到的内容。
📊 样品数据
该系统预装了真实的测试数据:
开发者(5)
- 爱丽丝·史密斯、鲍勃·琼斯、卡罗尔·李、大卫·金、伊娃·布朗
云资源(15)
- 亚马逊云服务:S3存储桶、EC2实例、RDS数据库、Lambda函数、DynamoDB表
- Azure:VM、Blob存储、SQL数据库、应用服务、Cosmos DB
- 谷歌云平台:BigQuery、计算引擎、云存储、云SQL、发布/订阅
权限(55)
- READ、WRITE和RW权限的真实分布
- 多云访问模式
- 每个开发人员的权限级别不同
🔧 发展
地方发展设置
# Install dependencies
pip install fastapi uvicorn sqlalchemy psycopg2-binary
pip install fastmcp
# Start PostgreSQL (via Docker)
docker-compose up demo-db -d
# Run API locally
cd API && python -m uvicorn main:app --reload --port 8000
# Run MCP Server locally
cd MCP_SERVER && python main.py添加新工具
- 在中定义工具功能
MCP_SERVER/tools.py - 添加
@mcp.tool()装饰器 - 注册
main.py - 使用演示脚本进行测试
添加新提示
- 在中创建提示功能
MCP_SERVER/prompts.py - 添加
@mcp.prompt()装饰器 - 注册
main.py - 文档在
MCP_PROMPTS_GUIDE.md
🐳 Docker服务
| 服务 | 目的 | 端口 | 健康检查 |
|---|---|---|---|
demo-db | PostgreSQL数据库 | 5432 | pg_isready |
demo-db-setup | 架构初始化 | - | 一次 |
demo-db-seed | 测试数据加载 | - | 一次 |
demo-api | FastAPI后端 | 8000 | HTTP / |
demo-mcp-server | MCP服务器 | 9001 | HTTP /mcp/ |
环境变量
POSTGRES_USER=itadmin
POSTGRES_PASSWORD=itadmin
POSTGRES_DB=demo_db
POSTGRES_HOST=demo-db
POSTGRES_PORT=5432
API_BASE_URL=http://demo-api:8000🧪 测试
API测试
# Health check
curl http://localhost:8000/
# Get all developers
curl http://localhost:8000/developers/ | jq
# Test filtering
curl http://localhost:8000/cloud_resources/?cloud_type=AWS | jqMCP测试
# Run full demonstration
python demo_prompts.py
# Test specific scenarios
python -c "
import requests
print(requests.get('http://localhost:8000/permissions/by-developer/1').json())
"🎯 用例
1. IT运营
- 自动化开发人员入职流程
- 生成访问报告以确保合规性
- 快速调查安全事件
- 通过访问分析规划云迁移
2. 安全团队
- 跨云平台审核权限
- 识别特权账户
- 跟踪资源访问模式
- 生成合规报告
3. DevOps团队
- 在部署过程中验证开发人员的访问权限
- 分析云资源利用率
- 集中管理多云权限
- 简化访问审查
🚀 扩展项目
潜在增强功能
- 成本跟踪:将云成本数据添加到资源中
- 基于时间的访问:实施临时权限
- 审批工作流:添加权限请求/批准
- 警报系统:通知异常访问模式
- 多用户:支持多个组织
- 资源标记:添加元数据和分类
整合思路
- LDAP/Active Directory:与企业标识同步
- 云提供商API:实时资源发现
- 松弛/团队:基于聊天的访问请求
- 监视工具:与DataDog、New Relic集成
- CI/CD管道:自动访问验证
📚 文档
- API文档:自动生成于http://localhost:8000/docs
- MCP提示指南:参见 MCP_PROMPTS_GUIDE.md
- 技术深度潜水:参见 项目\_ SUMMARY.md
- 数据库模式:参见
API/database/init_db.sql
🤝 贡献
- 分叉存储库
- 创建要素分支
- 添加新功能的测试
- 更新文档
- 提交拉取请求
📄 许可证
该项目旨在展示MCP的能力。有关详细信息,请参阅LICENSE文件。
🙋♂️ 支持
有关此MCP服务器演示的问题:
- 查看 MCP_PROMPTS_GUIDE.md 以便迅速使用
- 检查 项目\_ SUMMARY.md 了解技术细节
- 跑
python demo_prompts.py查看系统的运行情况
______________________________________________________________________
🎉 准备好见证人工智能云管理的实际应用了吗?
跑 docker-compose up -d 然后 python demo_prompts.py 体验自然语言如何将复杂的云基础设施任务转化为简单的对话!
