mcpField
L
LangChain Agent with MCP Servers

LangChain Agent with MCP Servers

本地服务
github.com/esakrissaAI 与智能体482 周前更新

关于 LangChain Agent with MCP Servers

LangChain Agent with MCP Servers 是一个展示 LangChain Agent 如何借助 MCP Adapters 调用服务工具的项目,适合研究 MCP 工具集成的开发者。它使用 LangGraph 的 ReAct 模式,并管理 MCP 服务子进程。

主要功能

  1. 01集成 Tavily 搜索、天气和数学工具
  2. 02依据查询动态选择工具
  3. 03跟踪并管理服务子进程
  4. 04处理信号并有序关闭
  5. 05模块化扩展 MCP 服务

适用场景

  1. 01构建调用 MCP 工具的 LangChain Agent
  2. 02根据用户查询选择搜索或计算工具
  3. 03在退出时清理服务子进程

MCP 相关

项目通过 LangChain MCP Adapters 连接 MCP 服务,并将其工具集成到 Agent 中;主程序负责管理服务子进程。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

使用 MCP 服务的 LangChain Agent

一个使用 MCP 适配器将工具集成到 Model Context Protocol(MCP)服务的 LangChain Agent。

概述

本项目演示如何构建一个使用 Model Context Protocol(MCP)与各种服务交互的 LangChain Agent:

  • Tavily Search:网页搜索和新闻搜索功能
  • Weather:模拟天气信息检索
  • Math:数学表达式求值

Agent 使用 LangGraph 的 ReAct Agent 模式,根据用户查询动态选择并使用这些工具。

功能

  • 优雅关闭:所有 MCP 服务都实现了适当的信号处理,以便干净地终止
  • 子进程管理:主 Agent 跟踪并管理所有 MCP 服务子进程
  • 错误处理:整个应用程序具备稳健的错误处理机制
  • 模块化设计:易于扩展其他 MCP 服务

优雅关闭机制

本项目实现了一套全面的优雅关闭系统:

  1. 信号处理:捕获 SIGINT 和 SIGTERM 信号,以启动优雅关闭
  2. 进程跟踪:主 Agent 维护所有子进程的注册表
  3. 清理流程:确保退出时正确终止所有子进程
  4. 关闭标志:每个 MCP 服务都有一个关闭标志,在开始关闭后阻止新操作
  5. 异步协作:使用 asyncio 尽可能让正在进行的操作完成

安装

# Clone the repository
git clone https://github.com/yourusername/langchain-mcp.git
cd langchain-mcp

# Create a virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install -e .

配置

在项目根目录中创建 .env 文件,并添加以下变量:

OPENAI_API_KEY=your_openai_api_key
TAVILY_API_KEY=your_tavily_api_key

使用方法

从命令行运行 Agent:

python src/agent.py

Agent 会提示你输入查询,然后使用相应的工具进行处理。

开发

添加新的 MCP 服务:

  1. 在 src/mcpserver/ 中创建新文件
  2. 实现服务并正确处理信号
  3. 更新 src/mcpserver/__init__.py 以导出新服务
  4. 将服务配置添加到 src/agent.py

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。