AgentHubAgentHub
返回全部博客

从零实现遵循规范的自定义 MCP Client:让自研系统直接调度 MCP 工具生态

AgentHub 核心团队··2 分钟阅读·30 次阅读
从零实现遵循规范的自定义 MCP Client:让自研系统直接调度 MCP 工具生态

为什么需要自研 MCP Client?

虽然市面上有 Claude Desktop、Cursor 等优秀客户端,但在企业级内部系统(如内部客服平台、自动化运维控制台、专属 IDE 插件)中,我们往往需要直接在自有业务流中驱动现成的海量开源 MCP 工具。


1. 核心流程

MCP 客户端的通信遵循严格的标准状态机:

  1. 启动子进程(或建立 SSE 连接);
  2. 初始化握手 (initialize):协商协议版本与双方 capabilities;
  3. 工具发现 (tools/list):获取可用工具的 JSON Schema;
  4. 意图决策与工具执行 (tools/call):将模型选择的工具参数传递给服务端并捕获结果。

2. 最小化客户端代码示例

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

async function main() {
  const transport = new StdioClientTransport({
    command: "npx",
    args: ["-y", "@modelcontextprotocol/server-filesystem", "./data"],
  });

  const client = new Client({ name: "my-custom-app", version: "1.0.0" }, { capabilities: {} });
  await client.connect(transport);

  // 获取工具
  const tools = await client.listTools();
  console.log("可用工具数量:", tools.tools.length);

  // 执行读取文件
  const result = await client.callTool({
    name: "read_file",
    arguments: { path: "./data/config.json" },
  });
  console.log("工具执行结果:", result);

  await client.close();
}

main().catch(console.error);

掌握了 Client 端编写,你就能将开源社区的数百个现成 MCP Server 自由拼装到自己的任何产品中。

推荐阅读

实战教程

AI 为什么聊着聊着就忘了你说的话:它没有“记住”这一步,只有“这次递进去多少”

它不是记住了又忘掉。模型没有“记住”这个动作:你每问一次,程序都要把这次要它看的东西整份重新递一遍,而这一块地方有边界、单位是 token 不是字、还要和它的回答共用同一份预算。这篇用官方文档和有出处的研究讲清三件事:规格页上的数字该怎么读、装不下时各家怎么处理(截断还是摘要)、以及为什么装得下它照样会看漏——中间那段最容易漏,把要求拆成多轮说六类任务平均降 39%。最后给六个你当场就能用的动作,附可直接抄的话术。

实战教程

AI 为什么会一本正经地胡说八道:它认得出自己的错,却不会主动说

模型不是在查资料,是在接话——这一句能解释所有现象。这篇用四条有出处的事实讲清它为什么编得这么像:GPT-4 报告自陈不可靠、2023 年那项研究发现它能识别自己 87% 的错误、2026 年《自然》论文指出只按准确率打分等于奖励瞎猜、以及 2025 年一年里 146,932 条不存在的引文进入学术库。再给出六种你在对话框里就能做的自查,附可直接抄的话术。

实战教程

每百万 tokens 到底是多少字:三步算清一次 AI 调用要花多少钱

先把元/千 tokens、元/百万 tokens、万字这三种单位钉死,再按标定、算单次、核账单三步走:用自己的素材测字 token 比,把系统提示、本轮内容、历史轮次、工具定义四块输入加总,最后换算成每业务单位多少钱。附一个可复算的例子,和 Agent 场景下输入按 n(n+1)/2 平方增长的解释。

实战教程

怎么读一份大模型发布稿:六个数分三组看,三个地方最容易讲错

参数量要分清总参数和激活参数,上下文要换算单位,跑分要看子集和推理预算,训练成本只认卡时,推理价要输入输出分列,许可证和备案决定三年后它还在不在。这套读法配三个真实错例:557 万美元是推算值、DeepSeek-V2 比的是 GPT-4-Turbo、内容标识办法不在 2024 年。

探索更多生产力神器

不想只停留在理论?立即体验下一代 AI 工具与 MCP 插件

收录 ChatGPT 6、Claude 3.7、Devin 等热门 AI,以及 3000+ 开发者开源 MCP 插件与一键安装脚本。