Token导航 LogoToken导航TokenDH.com
MCP Langchain Chatbot logo
AI代理stdio官方级别未说明来源级核验

MCP Langchain Chatbot

MCP Server

一个集成Workato的MCP服务器与LangChain的对话AI聊天机器人,支持自然语言交互访问Workato数据和工具。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
自然语言处理聊天机器人Python数据分析

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

yeowkang

提供方

yeowkang

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

MCP LangChain聊天机器人

一个对话式AI聊天机器人,将Workato的模型上下文协议(MCP)服务器与LangChain集成在一起,实现了与Workato数据和工具的自然语言交互。

项目概述

该项目创建了一个智能聊天机器人,可以与Workato的MCP服务器交互,查询客户数据、检索配方详细信息、访问帐户信息并执行数据分析。聊天机器人使用LangChain进行代理编排,使用OpenAI的GPT模型进行自然语言理解。

文件结构和描述

main.py

目的: 主要入口点和应用程序编排器

责任:

  • 启动时验证配置
  • 初始化MCP客户端连接
  • 加载可用的MCP工具
  • 创建和管理聊天代理
  • 处理主对话循环(用户输入/输出)
  • 通过用户友好的消息提供错误处理
  • 显示欢迎消息并处理优雅关机

主要功能:

  • main():编排整个应用程序流
  • print_welcome():显示启动信息
  • handle_error():提供上下文错误消息

______________________________________________________________________

config.py

目的: 集中式配置管理

责任:

  • 从加载环境变量 .env 文件使用 python-dotenv
  • 定义所有应用程序设置(API密钥、服务器URL、LLM参数)
  • 包含指导代理行为的系统提示
  • 验证是否存在所需的配置值

关键配置:

  • API密钥(OpenAI、Workato MCP)
  • MCP服务器URL
  • LLM型号设置(型号名称、温度)
  • 代理行为设置(详细程度、最大迭代次数)
  • AI代理的系统提示

主要功能:

  • validate_config():确保设置了所有必需的环境变量

______________________________________________________________________

mcp_client.py

目的: 用于与Workato MCP服务器通信的HTTP客户端

责任:

  • 与MCP服务器建立经过身份验证的连接
  • 从MCP服务器发现可用工具
  • 使用正确的请求格式执行工具调用
  • 处理MCP协议特定的响应解析
  • 管理身份验证标头和请求超时

关键类别:

  • MCPClient:处理所有MCP服务器交互

关键方法:

  • discover_tools():从MCP服务器检索可用工具列表
  • call_tool():使用给定的参数执行特定的工具

______________________________________________________________________

tools.py

目的: MCP工具和LangChain工具之间的桥梁

责任:

  • 将MCP工具定义转换为LangChain Tool 物体
  • 将MCP工具调用封装在与LangChain兼容的函数中
  • 加载并注册代理的所有可用MCP工具
  • 提供工具发现和加载功能

主要功能:

  • create_langchain_tool_from_mcp():将单个MCP工具转换为LangChain格式
  • load_mcp_tools():发现并加载所有MCP工具作为LangChain工具

为什么存在: LangChain代理需要特定格式的工具,因此此模块将MCP工具定义转换为LangChain期望的格式。

______________________________________________________________________

agent.py

目的: 管理对话式AI代理

责任:

  • 使用OpenAI的聊天模型创建和配置LangChain代理
  • 管理对话历史和消息存储
  • 处理代理的决策过程(工具选择和执行)
  • 处理用户消息并生成代理响应
  • 将代理与可用的MCP工具集成

关键类别:

  • ChatAgent:封装代理和对话管理

关键方法:

  • _create_conversation():使用工具和系统提示设置LangChain代理
  • chat():处理用户输入并返回代理响应

主要特点:

  • 维护多个回合的对话历史记录
  • 使用LangChain的 create_agent 用于现代代理创建的API
  • 与OpenAI的ChatOpenAI模型集成

______________________________________________________________________

requirements.txt

目的: Python包依赖关系

依赖关系:

  • langchain:用于代理编排的核心LangChain框架
  • langchain-openai:LangChain的OpenAI集成
  • langchain-community:社区贡献的LangChain组件(聊天消息历史记录)
  • python-dotenv:环境变量管理
  • requests:用于MCP服务器通信的HTTP客户端

______________________________________________________________________

文件如何相互关联

应用流

┌─────────────┐
│  main.py    │  ← Entry point: Orchestrates everything
└──────┬──────┘
       │
       ├──→ config.py ────────────┐
       │   (validates config)      │
       │                           │
       ├──→ mcp_client.py ────────┤
       │   (creates client)        │
       │                           │
       ├──→ tools.py ──────────────┤
       │   (loads MCP tools)       │  All modules use
       │                           │  config.py for settings
       ├──→ agent.py ──────────────┤
       │   (creates agent)         │
       │                           │
       └──→ (conversation loop)    │
                                   │
┌──────────────────────────────────┘
│
│  Dependencies:
│  - tools.py uses mcp_client.py
│  - agent.py uses tools.py
│  - main.py uses all modules
│  - All modules use config.py

详细关系

  1. main.pyconfig.py

- 呼叫 validate_config() 确保环境设置得当 - 导入配置常量(不直接使用,但可用)

  1. main.pymcp_client.py

- 创建一个 MCPClient 连接到Workato MCP服务器的实例

  1. main.pytools.py

- 呼叫 load_mcp_tools() 使用MCP客户端获取LangChain工具

  1. main.pyagent.py

- 创建一个 ChatAgent 带有加载工具的实例 - 呼叫 chat() 会话循环中的方法

  1. tools.pymcp_client.py

- 用途 MCPClient 发现工具(discover_tools()) - 用途 MCPClient 执行工具调用(通过包装器函数)

  1. agent.pyconfig.py

- 导入LLM设置(型号、温度) - 导入代理配置(详细,最大迭代次数) - 导入系统提示

  1. mcp_client.pyconfig.py

- 导入MCP服务器URL和API密钥以进行身份验证

数据流示例

当用户提出问题时:

  1. main.py 接收用户输入
  2. main.py 电话 chat_agent.chat(user_input)
  3. agent.py 通过LangChain代理处理消息
  4. agent.py 决定使用哪种工具(如果有的话)
  5. tools.py 调用包装器函数
  6. mcp_client.py 向MCP服务器发出HTTP请求
  7. mcp_client.py 返回结果
  8. tools.py 将结果返回给代理
  9. agent.py 格式化响应并返回 main.py
  10. main.py 向用户显示响应

配置依赖关系

所有模块都依赖于 config.py 用于:

  • API密钥和身份验证
  • 服务器URL
  • LLM参数
  • 代理行为设置

这种集中化使得在不涉及业务逻辑的情况下修改设置变得容易。

用法

  1. 在中设置环境变量 .env:

- OPENAI_API_KEY - WORKATO_MCP_API_KEY - MCP_SERVER_URL

  1. 安装依赖项:
   pip install -r requirements.txt
  1. 运行应用程序:
   python main.py
  1. 与终端中的聊天机器人交互。类型 quit 退出。

架构模式

该项目遵循 分层架构:

  • 表示层: main.py (用户交互)
  • 业务逻辑层: agent.py (对话管理)
  • 集成层: tools.py, mcp_client.py (外部服务集成)
  • 配置层: config.py (设置管理)

每一层都有明确的责任和依赖关系流向一个方向,使代码库可维护和可测试。

目录标签

目录标签

自然语言处理聊天机器人Python数据分析本地部署企业自动化AI代理数据查询

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP