AI代理集成工具

一个通过集成Model Context Protocol (MCP)服务器和Langgraph代理来创建强大的工具赋能AI应用的数据科学助手。

  • by prem-cre
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 prem-cre/Talk_to_MCP

使用说明

MCP语言集成教程

本教程演示了如何将模型上下文协议(MCP)服务器与Langgraph代理集成,以创建功能强大、支持工具的AI应用程序。该项目展示了一个名为Scout的数据科学助理,可以帮助用户使用各种MCP驱动的工具管理他们的数据科学项目。

概述

该项目实现了一个会话式AI代理,该代理:

  • 使用GPT-4.1作为基础模型
  • 与多个MCP服务器集成,以实现不同的功能
  • 使用Langgraph来编排对话流
  • 为实时响应提供流式接口

先决条件

  • Python 3.13+
  • Node.js(用于文件系统MCP服务器)
  • Docker(适用于GitHub MCP服务器)
  • UV包管理器
  • OpenAI API密钥

项目结构

scout/
├── graph.py           # Langgraph agent implementation
├── client.py          # MCP client and streaming interface
├── client_utils.py    # Utility functions
├── main.py           # Entry point
└── my_mcp/           # MCP server configurations
    ├── config.py     # Config loading and env var resolution
    ├── mcp_config.json # MCP server definitions
    └── local_servers/ # Custom MCP server implementations

设置

  1. 克隆存储库:
git clone <repository-url>
cd mcp-intro
  1. 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 安装依赖项:
uv pip install -e .
  1. 设置环境变量: 创建一个 .env 文件包含:
OPENAI_API_KEY=your_openai_api_key
MCP_FILESYSTEM_DIR=/path/to/projects/directory
MCP_GITHUB_PAT=your_github_personal_access_token

MCP服务器

该项目与四台MCP服务器集成:

  1. 数据流服务器:数据加载和查询的自定义实现
  2. 文件系统服务器:用途 @modelcontextprotocol/server-filesystem 用于文件操作
  3. Git服务器:用途 mcp-server-git 用于本地git操作
  4. GitHub服务器:使用官方GitHub MCP服务器进行GitHub操作

用法

  1. 启动应用程序:
python -m scout.client
  1. 通过键入您的问题或请求与Scout互动。例如:
USER: Can you help me set up a new data science project?
  1. Scout将使用其工具:
  • 创建和管理项目目录
  • 处理数据加载和转换
  • 管理版本控制
  • 与GitHub存储库交互
  1. 键入“quit”或“exit”结束会话。

运作原理

  1. 这 graph.py 文件定义了Langgraph代理结构:
  • 设置系统提示和代理状态
  • 配置LLM(GPT-4)
  • 定义对话流图
  1. 这 client.py 文件:
  • 使用多个服务器初始化MCP客户端
  • 处理流媒体响应
  • 管理交互式会话
  1. MCP服务器提供以下工具:
  • 文件系统操作
  • 数据操作
  • Git操作
  • GitHub交互

扩展项目

您可以通过以下方式扩展此项目:

  1. 在中添加新的MCP服务器 my_mcp/local_servers/
  2. 在中修改系统提示 graph.py
  3. 向代理添加新工具
  4. 自定义对话流

贡献

欢迎投稿!请随时提交拉取请求。