项目简介

该项目是一个基于MCP协议实现的后端服务,旨在为大型语言模型(LLM)客户端提供一个智能的数据探索(Exploratory Data Analysis, EDA)代理。通过该服务,LLM客户端可以与服务器进行交互,上传CSV文件,并利用服务器提供的工具对数据进行查询、修改和可视化操作。服务器的核心功能封装了Python REPL环境,允许LLM安全地执行数据分析代码。

主要功能点

  • 数据上传与管理: 允许MCP客户端以Base64编码的形式上传CSV文件,并在服务器端内存中管理数据集 'df'。
  • 数据查询与分析: 提供工具执行Python代码,对上传的数据集进行各种统计分析和信息查询,如计算标准差、查找特定值等。
  • 数据修改与清理: 提供工具执行Python代码,对数据集进行修改操作,包括添加/删除列、数据清洗、数据转换等。
  • 数据可视化: 提供工具执行Python代码生成图表(如分布图),并将生成的图表以Base64编码的PNG图像形式返回给客户端。
  • 资源访问: 客户端可以访问已上传的CSV文件(Base64编码)和生成的图表列表。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/Kareem404/eda-agent.git
    cd eda-agent
  2. 配置API密钥: 在项目根目录下创建一个名为 '.env' 的文件,并填入您的OpenAI API密钥:
    OPENAI_API_KEY=sk-proj-...
  3. 安装依赖:
    pip install -r requirements.txt

服务器配置(供MCP客户端使用)

MCP客户端需要以下JSON格式的配置信息才能启动并连接到该MCP服务器:

{
  "EDA Agent": {
    "command": ["python"],
    "args": ["server.py"],
    "transport": "streamable_http",
    "url": "http://localhost:8001/mcp"
  }
}
  • '"EDA Agent"': 服务器的名称,用于客户端识别。
  • '"command": ["python"]': 启动服务器进程的命令。
  • '"args": ["server.py"]': 传递给启动命令的参数,这里是服务器Python脚本的名称。
  • '"transport": "streamable_http"': 客户端连接服务器时使用的传输协议。
  • '"url": "http://localhost:8001/mcp"': 服务器的访问地址和端口。

基本使用方法

  1. 启动MCP服务器: 在项目根目录运行以下命令来启动MCP服务器:

    python server.py

    服务器将在 'http://127.0.0.1:8001' 监听请求。

  2. 启动MCP客户端(示例): 在另一个终端,修改 'client.py' 文件,将 'df = pd.read_csv('Titanic-Dataset.csv')' 中的CSV文件路径替换为您自己的路径。 然后运行客户端:

    python client.py

    客户端将连接到MCP服务器,并可以开始与智能代理进行交互。您可以通过命令行输入问题或指令,代理会利用服务器提供的工具进行数据分析并返回结果。

信息

分类

AI与计算