云资源管理MCP服务器

一个通过自然语言交互实现多云资源管理的模型上下文协议(MCP)服务器,支持权限审计、开发人员入职和安全调查等功能。

  • by jasonbgarland
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jasonbgarland/ai_mcp_cloud_platforms

使用说明

云平台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 <repository>
cd ai_mcp_cloud_platforms

# Start all services
docker-compose up -d

# Check service status
docker-compose ps

2.验证安装

# Test API
curl http://localhost:8000/developers/

# Test MCP Server
curl http://localhost:9001/mcp/

# Run demonstration
python demo_prompts.py

3.接入服务

  • 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

添加新工具

  1. 在中定义工具功能 MCP_SERVER/tools.py
  2. 添加 @mcp.tool() 装饰器
  3. 注册 main.py
  4. 使用演示脚本进行测试

添加新提示

  1. 在中创建提示功能 MCP_SERVER/prompts.py
  2. 添加 @mcp.prompt() 装饰器
  3. 注册 main.py
  4. 文档在 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 | jq

MCP测试

# 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

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 更新文档
  5. 提交拉取请求

📄 许可证

该项目旨在展示MCP的能力。有关详细信息,请参阅LICENSE文件。

🙋‍♂️ 支持

有关此MCP服务器演示的问题:


🎉 准备好见证人工智能云管理的实际应用了吗?

跑 docker-compose up -d 然后 python demo_prompts.py 体验自然语言如何将复杂的云基础设施任务转化为简单的对话!