项目简介
DataMCP服务器是一个利用Model Context Protocol (MCP) 为LLM(大型语言模型)客户端提供上下文和功能的后端服务。它专注于编排和管理跨AWS和GCP的数据管道(包括批处理和流处理),以及自动化基础设施操作。通过将各种云服务(如S3、Kinesis、BigQuery、GCS、Lambda、Terraform、Helm等)封装为可编程的工具,DataMCP使LLM能够以标准化的方式调用这些外部功能,从而实现高级的数据工程和机器学习工作流自动化。
主要功能点
- 多云连接器: 提供与AWS(S3、DynamoDB、Lambda、Athena、Kinesis、Firehose、Glue、EMR、Step Functions、Secrets Manager、SSM)和GCP(BigQuery、Pub/Sub、Cloud Storage、Secret Manager、IAM)的集成。
- 数据管道工具: 封装了一系列用于数据摄取、转换、分析和机器学习模型训练的工具。
- 基础设施即代码 (IaC) 编排: 允许通过MCP调用Terraform、Helm和ArgoCD等工具进行云基础设施的部署和管理。
- 会话与能力声明: 服务器支持标准MCP协议,允许客户端发现可用工具,并进行安全的会话管理。
- 灵活的传输协议: 支持多种通信协议,例如HTTP和Stdio,以适应不同的客户端需求。
安装步骤
- 克隆仓库:
git clone https://github.com/stancsz/data-mcp-server.git cd data-mcp-server - 创建并激活Python虚拟环境:
python -m venv .venv # Windows PowerShell .venv\Scripts\Activate.ps1 # macOS / Linux source .venv/bin/activate - 安装依赖:
pip install -r requirements.txt # 如果requirements.txt不存在或安装失败,可以尝试安装核心依赖: pip install fastmcp boto3 python-dotenv httpx # 如果需要运行batch-ingestion模板或GCP客户端,可能还需要安装: pip install pandas pyarrow google-cloud-storage google-cloud-bigquery google-cloud-pubsub google-cloud-secret-manager - 配置云凭证:
- AWS: 在仓库根目录创建'.env'文件,或通过环境变量配置'AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_REGION'。
- GCP: 确保运行服务器的环境已配置GCP Application Default Credentials (ADC)。对于某些GCP工具,可能需要安装'gcloud' CLI并进行认证。
服务器配置
MCP客户端需要以下JSON配置来连接和使用DataMCP服务器。请根据您的部署环境调整'command'和'args'。
{ "server_name": "DataMCP Server", "command": "python", "args": [ "mcp_server.py", "--transport", "http", "--port", "8000" ], "description": "连接到DataMCP服务器,提供AWS和GCP数据与基础设施管理工具。", "environment": { // 可选:在此处添加环境变量,例如AWS或GCP凭证 // "AWS_REGION": "us-east-1", // "DEFAULT_S3_BUCKET": "your-default-bucket" }, "transport_protocol": "http", "endpoint": "http://localhost:8000/mcp" }
- 'server_name': 服务器的显示名称,方便识别。
- 'command': 启动MCP服务器的命令(例如:'python')。
- 'args': 传递给启动命令的参数。'mcp_server.py'支持 '--transport <协议>'(如 'http' 或 'stdio')和 '--port <端口号>'(HTTP模式下使用)。
- 'description': 服务器功能的简要描述。
- 'environment': 可选的环境变量字典,用于在启动服务器时设置。
- 'transport_protocol': 服务器使用的通信协议(例如 'http')。
- 'endpoint': 如果使用HTTP传输协议,这是MCP服务器的完整URL。
基本使用方法
-
启动MCP服务器: 在仓库根目录运行以下命令以HTTP模式启动服务器(默认端口8000):
python mcp_server.py --transport http --port 8000您也可以选择Stdio传输模式:
python mcp_server.py --transport stdio -
使用MCP客户端调用工具: 服务器启动后,您可以使用兼容MCP协议的客户端(例如项目中的'mcp_client.py')来调用已注册的工具。
使用HTTP客户端示例:
python mcp_client.py http://localhost:8000/mcp这将调用服务器上注册的'greet'和'add_numbers'工具并打印结果。
LLM客户端可以根据MCP协议发现这些工具及其参数,并根据需求进行调用,例如:
- 调用's3_list_objects'来列出S3存储桶中的对象。
- 调用'dynamo_put_item'来向DynamoDB写入数据。
- 调用'apply_terraform'来部署Terraform基础设施。
信息
分类
开发者工具