关于 LangChain MCP Chat Platform
LangChain MCP Chat Platform 是基于 LangChain 和 Gemini 2.0 Flash 的网页聊天应用,面向希望通过聊天界面使用已配置 MCP 服务并保留对话历史的用户。
主要功能
- 01LangChain 对话与工具处理
- 02Gemini 2.0 Flash 模型
- 03可配置的 MCP 服务集成
- 04对话历史跟踪
- 05响应式网页界面
- 06可扩展的工具架构
适用场景
- 01在聊天中使用 Tavily 网页搜索
- 02在聊天中执行 Gmail 操作
- 03连接自定义会计 MCP 服务
- 04在多轮聊天中保留上下文
MCP 相关
平台通过 LangChain 的 MCP 集成连接已配置的 MCP 服务。README 列出的服务包括 Tavily、Gmail 和自定义会计服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
LangChain MCP 聊天平台
一个功能多样的聊天平台,集成了 LangChain、自定义 MCP(Model Control Protocol)服务和 Google 的 Gemini AI 模型,以增强对话能力。
功能
- Langchain 集成:利用 LangChain 的强大功能,实现高级对话管理和工具使用
- Google Gemini AI:由 Google 强大的 Gemini 2.0 Flash 模型驱动,实现自然对话
- 自定义 MCP 服务:集成多个 MCP 服务,提供专用功能:
- Tavily 网页搜索和提取(Tavily MCP 链接)
请查看代码库并按照设置说明进行集成。
- 用于电子邮件操作的 Gmail 集成(Gmail MCP GitHub 代码库)
请务必按照说明克隆并配置,以启用 Gmail 功能。
- 自定义会计系统(muhasebe)
- Tavily 网页搜索和提取(Tavily MCP 链接)
- 记忆管理:跟踪对话历史,以提供具有上下文的回复
- Web 界面:用于用户交互的响应式 Web UI
- 可扩展架构:轻松添加新工具和功能
项目结构
langchain-mcp-chat-platform/
├── web_js/ # Web interface using FastAPI and WebSockets
│ ├── main.py # Main FastAPI application with WebSocket connections
│ ├── templates/ # HTML templates
│ └── static/ # Static assets (CSS, JS)
├── own_mcp/ # Custom MCP server implementations
│ ├── mcp_server.py # Main MCP server implementation
│ ├── muhasebe_client.py # Accounting system client
│ └── __init__.py # Package initialization
└── app/ # Desktop application
├── main.py # Main application entry point
├── database/ # Database operations
└── ui/ # UI components
设置与安装
步骤 1:克隆代码库
git clone https://github.com/BilalAltundag/langchain-mcp-chat-platform.git
cd langchain-mcp-chat-platform
步骤 2:创建并激活虚拟环境
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On Linux/Mac:
source venv/bin/activate
步骤 3:安装依赖项
请确保使用 requirements.txt 中的确切版本,以避免兼容性问题:
pip install -r requirements.txt
重要:如果遇到依赖项错误,请尝试逐个安装软件包:
pip install fastapi==0.104.1 uvicorn==0.24.0 pip install langchain==0.3.23 langchain-community==0.3.21 langchain-core==0.3.51 pip install langchain-mcp-adapters==0.0.7 langchain-google-genai==2.1.2 pip install langgraph==0.3.29 langgraph-prebuilt==0.1.5 langgraph-sdk==0.1.61
步骤 4:安装 Node.js 依赖项(用于 Tavily 和 Gmail)
如果你想使用 Tavily 搜索或 Gmail 功能,则需要安装 Node.js 和 Smithery CLI:
# Install Smithery CLI globally
npm install -g @smithery/cli
步骤 5:设置环境变量
复制示例 .env 文件,并填入你的 API 密钥:
# Copy the example .env file
cp .env.example .env
# Then edit the .env file with your preferred text editor
你的 .env 文件应包含以下密钥:
# Google Gemini API key (required for the AI model)
GOOGLE_API_KEY="your_google_api_key"
# Smithery CLI key (required for Tavily and Gmail services)
SMITHERY_KEY="your_smithery_cli_key"
关于 API 密钥
- GOOGLE_API_KEY:供 AI 模型用于自然语言理解
- SMITHERY_KEY:在本地运行 Tavily 和 Gmail MCP 服务时唯一需要的密钥
重要:无需填写 TAVILY_API_KEY 和 GMAIL_API_KEY。这些密钥用于在 Smithery 网站上创建 MCP 代码,本应用不需要它们。只需提供 SMITHERY_KEY 即可。
替代方案:在代码中直接配置
如果你不想使用 .env 文件,可以直接在代码中设置 API 密钥:
打开 web_js/main.py,并将环境变量加载部分替换为直接赋值:
# Instead of this:
# google_api_key = os.environ.get("GOOGLE_API_KEY")
# smithery_key = os.environ.get("SMITHERY_KEY")
# Use this (replace with your actual API keys):
google_api_key = "YOUR_GOOGLE_API_KEY_HERE"
smithery_key = "YOUR_SMITHERY_CLI_KEY_HERE"
步骤 6:启用 Gmail API(用于电子邮件功能)
使用 Gmail 功能之前,需要在 Google Cloud 项目中启用 Gmail API:
- 前往 Google Cloud Console
- 选择或创建一个项目
- 前往“APIs & Services” > “Library”
- 搜索“Gmail API”并选择它
- 点击“Enable”,为你的项目启用该 API
- 等待几分钟,让更改生效
如果跳过此步骤,可能会遇到类似以下的错误:
Error: Gmail API has not been used in project XXXXX before or it is disabled.
运行应用
选项 1:运行所有 MCP 服务
这将启动包含所有服务(muhasebe、Tavily 搜索和 Gmail)的应用:
cd web_js
python main.py
选项 2:仅运行 muhasebe 服务(首次运行推荐)
为避免外部服务可能带来的问题,你可以修改 web_js/main.py,仅使用 custom_mcp 服务:
async with MultiServerMCPClient(
{
"custom_mcp": {
"command": "python",
"args": [os.path.abspath(os.path.join(os.path.dirname(os.getcwd()), "own_mcp", "mcp_server.py"))],
"transport": "stdio",
}
# Comment out other services for initial testing
}
) as client:
故障排除
应用在启动期间挂起
如果应用在启动期间似乎挂起,可能是启动 NPX 服务时遇到了困难。请尝试以下步骤:
- 仅启动 custom_mcp 服务(移除或注释掉 Tavily 和 Gmail 服务)
- 在系统中全局安装 Node.js 和 NPM
- 启动应用前运行
npm install -g @smithery/cli - 尝试在不同的终端中手动运行这些服务,以确定是哪个服务导致了问题
MCP 服务路径问题
如果遇到找不到 MCP 服务路径的错误,请尝试直接使用绝对路径:
"args": ["C:/full/path/to/langchain-mcp-chat-platform/own_mcp/mcp_server.py"]
找不到静态文件
如果遇到找不到静态文件的错误,请检查是否从正确的目录运行应用。应用需要找到 static 和 templates 文件夹。
与外部服务集成
该平台集成了多种外部服务:
- Google Gemini:用于自然语言理解和生成
- Tavily:用于网页搜索和内容提取
- Gmail:用于电子邮件操作和管理
- Accounting System:用于财务管理和跟踪
重要说明
- API 密钥和敏感信息应存储在
.env文件中 - 出于安全原因,Git 不会跟踪
.env文件 - 请务必查看
.env.example文件,了解所需的环境变量 - 该应用采用模块化设计,需要时可以禁用特定服务
- Smithery CLI 密钥:通过 Smithery CLI 运行 Tavily 和 Gmail MCP 服务时,两者使用相同的 Smithery CLI 密钥。不过,每项服务仍需要各自的 API 密钥:
- Tavily 服务需要自己的 TAVILY_API_KEY 才能使用网页搜索功能
- Gmail 服务需要自己的 GMAIL_API_KEY 才能执行电子邮件操作
软件包依赖项和版本管理
此应用依赖特定版本的软件包:
- create_react_agent 函数需要 langchain-prebuilt==0.1.5 才能正常工作
- 请确保使用与其他组件兼容的 langgraph==0.3.29
- 升级任何软件包时,请进行充分测试,因为较新版本可能会破坏兼容性
许可证
MIT
组件详细信息
create_react_agent 的导入路径
在较新版本的 langgraph-prebuilt(0.1.5)中,create_react_agent 的正确导入方式是:
from langgraph.prebuilt.task import create_react_agent
请勿使用:
from langgraph.prebuilt import create_react_agent # This will cause errors
API 密钥要求
需要以下 API 密钥:
- GOOGLE_API_KEY - 用于 Gemini 模型
- SMITHERY_KEY - 用于运行 Tavily 和 Gmail MCP 服务
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。