当前位置: 首页
AI教程
MCP生态崛起 像搭积木一样复用AI工具

MCP生态崛起 像搭积木一样复用AI工具

热心网友 时间:2026-07-14
转载

MCP协议通过Host、Client、Server三层架构与三大原语(工具、资源、提示),使AI工具可像搭积木般复用。MultiServerMCPClient支持同时集成多个本地或远程服务器,零代码侵入即可获取多样化能力。生态已涌现文件系统、地图、浏览器等丰富服务器,极大扩展了Agent能力边界。

前言

上一篇文章我们聊了 MCP 的基础概念和跨进程调用。今天继续深入,看看 MCP 生态到底能给我们的开发效率带来多大提升。本文将带你从零开始,掌握如何像搭积木一样,通过 MCP 快速集成各种 AI 工具,让你的 Agent 拥有无限扩展的能力。

先看一个场景:你的 Agent 需要——

  • 查询某个坐标点附近的酒店
  • 把结果保存到本地文件
  • 打开浏览器展示酒店图片

放在以前,你可能要写一堆 HTTP 请求、文件操作、 Puppeteer 脚本,还要把这些功能封装成 Tool 供 LLM 调用。

但现在,有了 MCP 协议,这些能力全都有现成的 Server 可以直接复用。

一、MCP 基础:架构三组件 + 三大原语

在深入实战之前,我们先快速建立 MCP 的核心概念框架,避免后续混淆。

1.1 架构三组件:Host、Client、Server

MCP 的通信模型由三个角色组成:

组件 本质 示例
MCP Host AI 应用程序(Agent) LangChain 脚本、Cursor、Claude Desktop
MCP Client 协议通信层(内置在 Host 中) MultiServerMCPClient
MCP Server 独立的工具/资源/提示提供者 my-mcp-server、高德 MCP、Filesystem MCP

一句话总结:Host 是大脑,Client 是神经,Server 是手脚。 Host 通过 Client 与多个 Server 通信,实现能力扩展。

1.2 三大原语:Tools、Resources、Prompts

MCP 协议定义了三种可暴露的能力,统称为“原语(Primitives)”:

原语 作用 交互方式 类比
Tools(工具) 执行动作、计算 模型主动调用(传参执行) AI 的“手”
Resources(资源) 提供数据、知识 模型被动接收(注入上下文) AI 的“备忘录”
Prompts(提示模板) 提供指令模板、话术 Client 主动获取并填充 AI 的“SOP”
  • Tool 最常见,和平时说的 Tool Use 没本质区别,只是跨进程了(抛饵)。
  • Resource 可以作为 SystemMessage 的一部分,成为 Content。
  • Prompt 则是预定义的提示词模板,可带参数动态渲染。

三者在 Agent 工作流中协同工作:
启动时读取 Resources 和 Prompts 构建高质量的 System Prompt;运行时根据用户 Query 自主决定调用哪些 Tools;Tool 执行结果回传后继续推理,直至完成任务。

二、远程 MCP 的应用场景

MCP 本质上还是 Tool,只不过包了一层进程,可以通过 stdio 或 HTTP/SSE 来访问。

常见场景

MCP Server 功能 典型用途
高德地图 MCP 位置查询、路线规划、POI 搜索 酒店查询、导航、地理编码
Chrome DevTools MCP 打开/关闭页面、点击元素、截图 自动化测试、网页信息抓取
FileSystem MCP 读写文件、创建目录 日志记录、数据持久化、配置管理

这些 Server 可以是本地的(stdio),也可以是远程的(HTTP/SSE)。比如高德地图官方就提供了远程 MCP 服务,只需要一个 API Key 就能用。

三、一键集成多个 MCP Server

在 LangChain 中,MultiServerMCPClient支持同时配置多个 MCP Server,无论是本地还是远程。

3.1 配置示例

首先,安装必要的依赖包:

npm install @langchain/mcp-adapters @langchain/openai

然后,通过以下代码配置并连接多个 MCP Server:

import { MultiServerMCPClient } from '@langchain/mcp-adapters';
import { ChatOpenAI } from '@langchain/openai';

const mcpClient = new MultiServerMCPClient({
  mcpServers: {
    // 1. 远程 MCP(高德地图,通过 SSE)
    'amap-sse': {
      url: 'https://mcp.amap.com/sse?key=你的高德API密钥'
    },
    // 2. 本地 Node 编写的自定义 MCP(含 Tool + Resource + Prompt)
    'my-mcp-server': {
      type: 'stdio',
      command: 'node',
      args: ['路径/my-mcp-server.mjs']
    },
    // 3. 官方 FileSystem MCP(通过 npx 直接运行)
    'file-system-server': {
      type: 'stdio',
      command: 'npx',
      args: [
        '@modelcontextprotocol/server-filesystem',
        'C:Users...workspace' // 允许访问的根目录
      ]
    },
    // 4. Chrome DevTools MCP(通过 npx 运行)
    'chrome-devtools-server': {
      type: 'stdio',
      command: 'npx',
      args: [
        '--y',
        'chrome-devtools-mcp',
        '--port', '9222',
        '--chrome-path', 'C:Program FilesGoogleChromeApplicationchrome.exe'
      ]
    }
  }
});
小提示: 如果使用远程 MCP 服务(如高德地图),请确保将 你的高德API密钥 替换为真实密钥,并妥善保管,避免泄露到公共代码仓库中。

3.2 获取所有 Tool、Resource 和 Prompt

配置完成后,就可以通过以下方法,获取所有 MCP Server 暴露的能力:

// 获取所有工具(用于绑定给 LLM)
const tools = await mcpClient.getTools();

// 获取所有 Resources(可注入 System Prompt)
const resources = await mcpClient.listResources();
let resourceContent = '';
for (const [serverName, resList] of Object.entries(resources)) {
  for (const res of resList) {
    const content = await mcpClient.readResource(serverName, res.uri);
    resourceContent += content[0].text;
  }
}

// 获取 Prompts(可动态获取提示模板)
const prompts = await mcpClient.listPrompts();

// 例如获取 'tra vel_guide' 模板并传入城市参数
const promptResult = await mcpClient.getPrompt('tra vel_guide', { city: '西安' });
// promptResult.messages 即为渲染后的提示消息
注意: listResources()getPrompt() 等方法是异步的,必须使用 await 等待结果。如果忘记使用 await,可能会返回 undefinedPromise 对象,导致程序行为异常。

四、为什么 MCP 让复用变得如此简单?

在 MCP 之前,如果你想复用别人写的 Tool,通常要:

  • 复制代码,修改依赖
  • 或者封装成 REST API,自己写 Client
  • 语言不同时还要跨语言 RPC

而现在,只要对方按照 MCP 规范暴露了一个 Server(stdio 或 HTTP),你就可以直接通过MultiServerMCPClient配置一下 URL 或命令,零代码侵入地拿到所有工具、资源和提示。

这种“插件化”的架构,让 AI Agent 的能力边界可以无限扩展——需要什么能力,就加一个 MCP Server 配置。

五、生态现状

目前 MCP 生态已经涌现出大量官方和社区贡献的 Server:

  • 官方维护:FileSystem、GitHub、Slack、Google Drive 等
  • 第三方:高德地图、Browser Automation、Database(PostgreSQL/MySQL)、Redis 等
  • 自定义:你可以为自己的业务系统开发专属 MCP Server

未来,MCP 极有可能成为 AI Agent 领域的 “USB 接口标准” ——任何工具只要插上这个接口,就能被任意 Agent 识别和使用。

六、常见问题

Q1:MCP 的三大原语(Tools、Resources、Prompts)有什么区别?

  • Tools 是让 AI 主动去“做事”的,比如执行计算、调用 API。AI 模型会自主决定何时调用它们。
  • Resources 是“知识库”,比如一份文档或数据库内容,会自动注入到模型的上下文中,但 AI 不会主动去“读”它们,而是由系统在启动时预先注入。
  • Prompts 是“模板”,开发者可以定义一些带参数的提示词模板,AI 或客户端可以根据需要动态获取并填充,从而生成更精准的指令。

Q2:配置多个 MCP Server 时,如果其中一个 Server 启动失败,会影响其他 Server 吗?

通常不会。每个 Server 在 MultiServerMCPClient 中是独立配置和启动的。如果某个 Server 配置错误或无法连接,只会导致该 Server 相关的工具、资源、提示不可用,不影响其他正常运行的服务。建议在启动时通过 try...catch 捕获异常,并记录日志以便排查问题。

Q3:本地 MCP 与远程 MCP 在配置上有什么区别?

主要区别在于连接方式:

  • 本地 MCP 通过 stdio 协议启动,需要指定 commandargs,例如 nodenpx 等。本地服务运行在同一个进程中,延迟较低。
  • 远程 MCP 通过 HTTP/SSE 协议连接,只需提供 url 地址和必要的认证信息(如 API Key)。远程服务通常部署在云端,适合需要共享数据或跨团队协作的场景。

Q4:在 Windows 和 macOS 上路径写法不同,如何保证配置通用?

建议使用 path 模块(Node.js)或 os.path(Python)来动态拼接路径,避免硬编码。例如在 Node.js 中:

const path = require('path');
const workspaceDir = path.join(os.homedir(), 'workspace');

这样就能自动适配不同操作系统。另外,在配置 Chrome 路径时,Windows 通常需要完整路径,而 macOS 上可能只需 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

七、小结

  • MCP 架构:Host(Agent) 内嵌 Client,通过 stdio/HTTP 连接多个 Server
  • MCP 能力三原语:Tools(行动)、Resources(知识)、Prompts(话术)
  • MultiServerMCPClient 支持同时接入本地和远程多个 Server
  • 生态正在迅速丰富,从地图、浏览器到文件系统应有尽有

下一篇文章,我们将基于这些 Server,实现一个完整的实战案例:查询酒店 -> 保存结果 -> 浏览器展示图片。

来源:https://juejin.cn/post/7661530411243569198

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
ESP32自定义唤醒词:TFLite到离线语音唤醒一下午搞定

ESP32自定义唤醒词:TFLite到离线语音唤醒一下午搞定

基于TFLiteMicro和ESP-IDF,在ESP32-S3上实现自定义唤醒词离线语音识别。通过5层检测管线控制误触发,模型可从voicute com在线生成并直接部署。系统推理耗时约360ms,模型体积小于80KB,支持用户自定义唤醒词且无需联网。

时间:2026-07-14 16:20
GPT-5.6选Sol还是Terra Luna 素材库项目为何用Sol+Medium

GPT-5.6选Sol还是Terra Luna 素材库项目为何用Sol+Medium

GPT-5 6Sol、Terra、Luna分别对应旗舰、平衡与高吞吐层级。素材库项目初始化用Sol+High确立规则,日常维护选Sol+Medium而非Terra+High,因日常输入杂乱、小错误累积,Medium已满足需求且减少模型切换成本。

时间:2026-07-14 16:19
AI Agent中Tracker的真正作用解析

AI Agent中Tracker的真正作用解析

Tracker是AIAgent的运行时状态中心,记录当前任务进度、槽位、流程和最近动作,解决上下文丢失与任务恢复问题。它不同于长期记忆和知识库,遵循统一状态源,确保系统各模块状态一致,避免混乱。

时间:2026-07-14 16:19
技术深度解析Apifox Agent为何选择CLI+SKILL而非更多MCP工具的根本原因

技术深度解析Apifox Agent为何选择CLI+SKILL而非更多MCP工具的根本原因

ApifoxAgent采用CLI与SKILL组合方案,将原子能力收敛为清晰工程动作,通过cli-schema校验、agentHints引导和任务判断规范,使Agent在正确时机稳定完成读取、校验、写入与验证,同时保持CI CD友好,为复杂工程产品提供更合适的执行层。

时间:2026-07-14 16:19
Claude Code Skill不触发乱触发跑挂调优指南

Claude Code Skill不触发乱触发跑挂调优指南

Skill触发依赖语义匹配,存在欠触发、误触发、执行失败三类故障。通过15条评测集量化触发精度,并用评分表评估输出质量,迭代优化description与DoNotUseWhen段可有效修复。

时间:2026-07-14 16:19
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜