Token导航 LogoToken导航

MCP Server · AI代理

Langchain MCP Multiserver Demo

LangChain MCP集成工具通过自动发现和编排来自多个MCP服务器的工具,结合Context7文档检索系统,确保代理响应基于真实、版本化的文档,消除幻觉。

stdio官方级别未说明来源级核验工具 0
LangChainPython文档检索

快速开始

作者 / 组织
don-aie-cohort8
提供方
don-aie-cohort8
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Langchain MCP Multiserver Demo 属于AI代理类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

AI代理

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

python clients/integration_test_mcp_json.py

客户端配置示例

{
  "mcpServers": {
    "langchain-mcp-multiserver-demo": {
      "command": "python",
      "args": [
        "clients/integration_test_mcp_json.py"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

LangChain与MCP集成:从工具混乱到上下文清晰

基于来自……的例子构建 LangChain MCP适配器 仓库(在计算机科学中,通常指存储代码、数据等资源的地方)

太长,读不下去了

这个项目展示了LangChain代理如何自动发现并协调来自多个MCP服务器(时间、推理、文档)的工具。突破之处在于: 上下文7——一个文档检索系统,它基于来自40多个库(如LangChain、LangGraph、OpenAI、Next.js、Redis等)的真实、版本化的文档来生成代理响应,从而消除幻觉。

快速入门: python clients/integration_test_mcp_json.py | 实际示例: LangSmith 追踪(或“追踪功能”)

一目了然的堆栈视图

LangChain 1.0.2 | MCP SDK ≥1.6.0 | FastMCP | Context7 | LangSmith | Python ≥3.13
Transport: stdio, HTTP (streamable-http), SSE | LLM: OpenAI GPT-4.1

______________________________________________________________________

🧩 问题

人工智能工程师面临着一个持续的挑战:将来自不同来源的工具——Python、Node.js、不同的传输方式、各种API模式——集成到统一的智能体框架中。传统方法会导致供应商锁定、脆弱的集成以及易产生幻觉的推理。

如果有一种更好的方法呢?

这个项目展示了一个 基于协议的方法 其中 模型上下文协议(MCP) 作为通用适配器,使代理能够:

  • 自动发现工具 来自异构服务
  • 实际文档中的地面响应 (不是幻觉)
  • 透明地推理 具有可观察的决策路径

这不仅仅是关于连接API的问题,而是关于构建 可组合的智能体生态系统 在这里,驱动智能的是上下文,而不仅仅是推理。

______________________________________________________________________

🏗️ 系统概述

该架构遵循清晰的职责分离原则:

flowchart LR
  A[User Query] --> B[LangChain Agent]
  B --> C[MultiServerMCPClient]
  C -->|Tool Discovery| D1[mcp-server-time]
  C -->|Tool Discovery| D2[sequential-thinking]
  C -->|Tool Discovery| D3[Context7]
  D1 --> E1[Time data]
  D2 --> E2[Reasoning traces]
  D3 --> E3[Documentation grounding]
  E1 & E2 & E3 --> F[LangChain Agent Response]
  F --> G[LangSmith Trace + Display Utils]

MCP服务器角色

服务器用途示例工具
mcp-server-time 翻译为中文是:“MCP服务器时间”或“MCP服务器时钟时间”时间推理和时区操作get_current_time, convert_time
顺序思维用于逐步推理的逻辑框架sequentialthinking, plan_steps
上下文7文档基础(或文档扎根) — 从LangChain、LangGraph、MCP以及40多个其他库中检索真实文档resolve-library-id, get-library-docs
💡 灯泡(表示想法或灵感的闪现) 为何选择Context7? Context7的扩展范围远远超出了LangChain——它提供了来自权威来源的文档 40多个生态系统 包括OpenAI SDKs、Next.js、Redis、Supabase、Hugging Face等。这使其成为事实性AI响应的通用基础层,而不仅仅是工具适配器。

所有工具都是 自动发现的 通过MCP协议,作为统一工具包暴露给代理。

______________________________________________________________________

💡 为何这很重要

该架构展示了生产级智能代理系统所需的三个关键支柱:

1. 标准化(MCP协议)

  • 将智能体与工具实现解耦 — 不受供应商锁定限制
  • 与语言无关的 — Python、Node.js 或任何运行时环境
  • 与传输方式无关 — stdio(标准输入输出)、HTTP、SSE(服务器发送事件)或 WebSocket

2. 接地(上下文7)

  • 事实准确性 通过权威文档检索
  • 来源归属 — 每个答案都链接到经过验证的文档
  • 版本意识 — 查询特定的库版本(例如。, /langchain/langchain/1.0.2)

3. 可观测性(LangSmith)

  • 可见的推理路径 — 查看每个工具调用和决策
  • 可调试的执行 — 追踪故障至根本原因
  • 性能指标 — 令牌使用、延迟、工具选择
⚡(闪电符号,常用于表示速度、活力或紧急情况,具体含义需结合上下文) 关键要点: MCP将工具集成方式从代码布线转变为协议协商。Context7确保代理从真实情况中学习,而非产生幻觉。

这些支柱共同作用,使得代理具有可扩展性、真实性和可审计性。

______________________________________________________________________

🚀 演示亮点

这个项目的中心环节是 integration_test_mcp_json.py—112行 这些展示了MCP集成的全部潜力。

🧩(拼图、碎片、谜题等的象征) 见解: 这不仅仅是工具编排——它是 基于协议的上下文架构该代理进行推理 *和;与* 文档,而不仅仅是 *关于* 任务。

它的功能/作用

  1. 生成三个MCP服务器 (时间、顺序思维、上下文7)作为子过程
  2. 发现工具 通过所有服务器 MultiServerMCPClient
  3. 创建一个LangChain代理 使用聚合工具包
  4. 执行复杂查询: *“提供从LangGraph的迁移指导 create_react_agent 到LangChain的 create_agent (v1.0.2)*
  5. 基于理由作出回应 在Context7文档中——无虚构内容

实时示例

查看 LangSmith 追踪 以完全执行,或审查 详细输出。

一目了然

方面详情
脚本integration_test_mcp_json.py (112行)
服务器时间,顺序思维,上下文7(自动生成)
查询 “从LangGraph迁移 create_react_agent 到LangChain create_agent“
结果基于文档的迁移指南,附带源代码出处
追踪LangSmith

关键要点: 这个代理不仅仅 *理由*它 从真理中学习Context7直接从LangChain的官方文档中展示代码片段、API参考和迁移指南。

实际行动中的移民

该脚本展示了从LangGraph迁移到LangChain v1的过程:

# Old (LangGraph)
from langgraph.prebuilt import create_react_agent
agent = create_react_agent(model, tools, prompt=...)

# New (LangChain v1.0.2+)
from langchain.agents import create_agent
agent = create_agent(llm, tools=tools, prompt=...)

这不是一个玩具般的例子——它是 已准备好投入生产 使用(或“结合”)代理进行编排 真实的文件记录接地(或:实际的文件接地处理)。

______________________________________________________________________

⚙️ 快速入门

先决条件

# Install dependencies
uv venv --python 3.13
source .venv/bin/activate
uv pip install -e .

# Set environment variables
cp .env.example .env
# Add your OPENAI_API_KEY, LANGSMITH_API_KEY (optional), CALCOM_API_KEY (optional)

选项1:运行集成测试(推荐)

观察一切运作情况的最简单方法:

python clients/integration_test_mcp_json.py

这会自动启动所有必需的MCP服务器,发现工具,并展示基于Context7的推理。

选项2:手动服务器设置

对于勘探和开发,手动启动服务器:

第一航站楼 - 天气服务器(端口8000):

python servers/weather_server.py

2号航站楼 - LangChain 数学工具服务器(端口 8001):

python servers/wrap_langchain_tools_server.py --port 8001

3号终端 - 客户端(Jupyter Notebook):

jupyter notebook clients/langchain_mcp_adapter_client.ipynb

______________________________________________________________________

🔧 服务器配置

自定义HTTP服务器

weather_server.py

使用FastMCP(HTTP传输)的简单天气MCP服务器。

端口: 8000(默认)| 工具: get_weather (模拟数据)

# Default
python servers/weather_server.py

# Custom port
python servers/weather_server.py --port 8080
wrap_langchain_tools_server.py

将LangChain工具转换为MCP格式。

端口: 8001(默认)| 工具: add, multiply | 模式: LangChain → MCP 适配器

# Default
python servers/wrap_langchain_tools_server.py

# Custom port
python servers/wrap_langchain_tools_server.py --port 8002

外部MCP服务器

配置在 .mcp.json:

  • mcp-server-time 翻译为中文是“MCP服务器时间” — 时区操作(uvx)
  • 顺序思维 — 反思性推理(npx)
  • 上下文7 — 文档检索(npx)
  • ai-docs-server 翻译为中文是“AI文档服务器” — 轻量级文档获取(uvx)

______________________________________________________________________

📊 显示实用程序

这个(或“它”) display_utils.py 该模块提供灵活的响应格式化功能。

display_agent_response()

显示代理执行轨迹:

from display_utils import display_agent_response

# Full trace with token usage
display_agent_response(response, show_full_trace=True, show_token_usage=True)

# Minimal (final answer only)
display_agent_response(response, show_full_trace=False)

get_final_answer()

通过程序提取答案:

from display_utils import get_final_answer

answer = get_final_answer(response)
if "migration" in answer.lower():
    proceed_with_next_step()

print_tools_summary()

列出已发现的工具:

from display_utils import print_tools_summary

tools = await client.get_tools()
print_tools_summary(tools)

输出:

======================================================================
AVAILABLE TOOLS (5 total)
======================================================================

01. get_current_time
    └─ Get current time in a specific timezone
02. sequential_thinking
    └─ Dynamic problem-solving through reflective reasoning
03. resolve-library-id
    └─ Resolve package name to Context7 library ID
04. get-library-docs
    └─ Fetch documentation for a library
...
======================================================================

______________________________________________________________________

💻 示例

示例1:使用工具链进行数学运算

response = await agent.ainvoke({"messages": "what is (15 + 27) * 3?"})
display_agent_response(response)

输出:

01. HumanMessage: what is (15 + 27) * 3?
02. AIMessage → 🔧 tool_call(s): add
03. ToolMessage [add]: ✓ 42
04. AIMessage → 🔧 tool_call(s): multiply
05. ToolMessage [multiply]: ✓ 126
06. AIMessage: (15 + 27) * 3 = 126.

示例2:基于文档的回应

response = await agent.ainvoke({
    "messages": "How do I create an agent in LangChain 1.0.2? Use Context7 to ground your response."
})
display_agent_response(response, show_full_trace=False)

输出:

💡 Final Answer: In LangChain 1.0.2, use `from langchain.agents import create_agent`
and pass your model instance and tools. Example:

from langchain.agents import create_agent
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o")
agent = create_agent(llm, tools=tools)

This replaces the older LangGraph `create_react_agent` pattern.
[Source: https://docs.langchain.com/oss/python/langchain/agents]

示例3:程序化答案提取

response = await agent.ainvoke({"messages": "multiply 7 and 9"})
answer = get_final_answer(response)

if "63" in answer:
    print("Correct!")

______________________________________________________________________

🔭 接下来是什么

这个项目是我们正在进行的探索中的一部分,旨在 基于协议的智能体架构下一个前沿领域不仅仅是推理——它还是 上下文交换 在代理之间。

1. 代理到代理(A2A)通信

  • 调查新兴模式以(用于/针对) 多智能体协作
  • 探索超越单一智能体推理的协议(共享内存、协调、持久状态)
  • 构建协作架构,使代理保持共享上下文

2. 超越推理循环

  • 从无状态推理/行动循环转变为 持久上下文架构
  • 整合 记忆系统 对于长期任务
  • 将上下文视为首要的架构基本元素进行探索

3. 基于协议的互操作性

  • 继续探索MCP作为 通用接口 用于人工智能能力
  • 调查与其他协议的集成(OpenAI的实时API、Anthropic的计算机使用)
  • 在能动生态系统之间搭建桥梁
🔍(放大镜图标,常用于表示搜索、查看细节等动作) 深入探讨: 如需进行全面的架构分析,请参阅 架构概述 和 更新后的架构文档.

目标: 从“推理循环”转向 上下文架构—系统中,人工智能(AI) *知道* 和它(的方式/方法)一样重要 *认为*。

______________________________________________________________________

🐞 故障排除

端口已被占用

错误:

ERROR: [Errno 98] error while attempting to bind on address ('127.0.0.1', 8000): address already in use

解决方案:

# Check process using port
lsof -i :8000

# Kill process
kill -9 

# Or use different port
python servers/weather_server.py --port 8080

连接关闭错误

错误:

mcp.shared.exceptions.McpError: Connection closed

解决方案:

  • 在启动客户端之前,请确保服务器正在运行
  • 验证端口号是否正确
  • 检查服务器日志以查找启动错误

运行时错误:已在运行 asyncio

错误:

RuntimeError: Already running asyncio in this thread

解决方案:

  • 别跑 mcp.run() 在Jupyter笔记本中
  • MCP服务器必须在单独的终端/进程中运行
  • 在笔记本中使用客户端代码连接到正在运行的服务器

______________________________________________________________________

🏛️ 建筑细节

四层系统

┌─────────────────────────────────────────────────────────────┐
│  Client Layer (Blue)                                        │
│  - Integration Test Client                                  │
│  - LangChain Agent (ReAct pattern)                          │
│  - MultiServerMCPClient (tool aggregation)                  │
│  - Display Utils                                            │
└─────────────────────┬───────────────────────────────────────┘
                      │
                      │ MCP Protocol (Auto-Discovery)
                      │
┌─────────────────────┴───────────────────────────────────────┐
│  Custom MCP Servers (Green)                                 │
│  - Weather Server (Port 8000, HTTP)                         │
│  - LangChain Tools Server (Port 8001, HTTP)                 │
│  - Math Server (stdio)                                      │
└─────────────────────┬───────────────────────────────────────┘
                      │
┌─────────────────────┴───────────────────────────────────────┐
│  External MCP Services (Orange)                             │
│  - mcp-server-time (stdio, via uvx)                         │
│  - sequential-thinking (stdio, via npx)                     │
│  - Context7 (stdio, via npx)                                │
│  - ai-docs-server (stdio, via uvx)                          │
└─────────────────────┬───────────────────────────────────────┘
                      │
┌─────────────────────┴───────────────────────────────────────┐
│  External APIs (Red)                                        │
│  - OpenAI API (GPT-4.1)                                     │
│  - Documentation Sources (llms.txt, official docs)          │
└─────────────────────────────────────────────────────────────┘

支持的传输协议

  • stdio(在中文中通常直接使用原英文缩写,也可理解为“标准输入输出”) — 基于子进程,对于本地工具来说速度最快
  • HTTP(可流式传输的HTTP) — HTTP POST + 服务器发送事件
  • 上海证券交易所 — 仅支持服务器发送事件(Server-Sent Events)
  • WebSocket — 双向流(可选)

______________________________________________________________________

📁 文件

文件用途
clients/integration_test_mcp_json.py主要演示 — 112乐线配器示例
clients/display_utils.py响应格式化工具
clients/langchain_mcp_adapter_client.ipynb交互式示例
servers/weather_server.py示例 HTTP MCP 服务器
servers/wrap_langchain_tools_server.pyLangChain → MCP 适配器
.mcp.json外部MCP服务器配置

______________________________________________________________________

📚 参考文献

MCP协议

LangChain 集成

Context7 文档服务器

  • 上下文7 MCP服务器
  • 支持40多个库,包括LangChain、LangGraph、LangSmith、OpenAI、Next.js、Redis、Hugging Face

可观测性

额外资源

______________________________________________________________________

项目: langchain-mcp-multiserver-demo 目的: 第8期人工智能工程教育演示 python 大于等于3.13 许可证: 麻省理工学院(MIT)

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

LangChainPython本地部署MCP协议文档检索代理框架上下文架构

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Langchain MCP Multiserver Demo

MCP World · 本页

0stdio有1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Langchain MCP Multiserver Demo 怎么安装?

公开资料给出的安装命令是 python clients/integration_test_mcp_json.py,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Langchain MCP Multiserver Demo 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Langchain MCP Multiserver Demo 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Langchain MCP Multiserver Demo 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Langchain MCP Multiserver Demo 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP