项目简介

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,以适应不同的客户端需求。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/stancsz/data-mcp-server.git
    cd data-mcp-server
  2. 创建并激活Python虚拟环境:
    python -m venv .venv
    # Windows PowerShell
    .venv\Scripts\Activate.ps1
    # macOS / Linux
    source .venv/bin/activate
  3. 安装依赖:
    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
  4. 配置云凭证:
    • 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。

基本使用方法

  1. 启动MCP服务器: 在仓库根目录运行以下命令以HTTP模式启动服务器(默认端口8000):

    python mcp_server.py --transport http --port 8000

    您也可以选择Stdio传输模式:

    python mcp_server.py --transport stdio
  2. 使用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基础设施。

信息

分类

开发者工具