96SEO 2026-07-23 04:43 2
大家好。今天我们将继续探索 Claude Code 的主要源码。

但你有没有想过一个单机版的 AI 编程助手。怎么能随心所欲地去查天气、读内部数据库,甚至和公司的专属 API 打交道呢?
今天我们就来揭开让 Claude Code 拥有无限 能力的终极武器——MCP 服务与插件整体环境。
学习完这章后你会对下面内容有清晰的认识:
在看这部分源码之前。我一直有个疑问:如果我想让 Claude Code 能查天气、读数据库或者调公司内部的 API,直接在源码里加几个新的 Tool 不就好了吗?
直到我翻开源码,看到 Anthropic 提出的 MCP 还有建立在其上的 插件程序 时我才恍然大悟——人家的格局大多了。
内置的 Tool是硬编码在代码里的。采用 TypeScript 编写,和主要引擎深度绑定。怎么说呢,但如果我们希望接入百花齐放的外部能力。这种紧耦合的模式显然行不通。
MCP 就像是 AI 时代的 USB 接口,而插件则是封装好的 U 盘。
MCP 是一种标准化的通信协议,允许 Claude Code与本地或远程的服务器进行交互。通过这个接口,你可以让 Claude Code 获得:
而插件程序则是为了让使用者能更方便地分发和安装这些 MCP 服务。在 Claude Code 中,你可以通过 /plugin 命令直接从插件行业市场下载别人写好的插件包。这些插件底层往往就是一个或多个 MCP Server。怎么说呢,
最棒的是由于它是跨进程的。你可以用 Python、Go、Rust 任何你喜欢的语言来写插件,彻底打破了环境的壁垒。
在源码的 src/utils/plugins/ 目录下我看到了完整的插件生命周期管理。一个标准的 Claude Code 插件通常包含一个 manifest.json里面声明了它提供的能力。更硬核的是为了方便分发,源码还支持一种叫做 MCPB 的格式。
在 src/utils/plugins/mcpPluginIntegration.ts 中,loadPluginMcpServers 函数展示了插件加载的优先级:
.mcp.json。manifest.json 中的 mcpServers 字段。.mcpb 压缩包。它会调用 loadMcpbFile 自动下载、解压缓存,甚至还能处理需要使用者填写的鉴权配置。
最终在 src/services/mcp/config.ts 中。Claude Code 会把这些插件提供的 MCP 服务,与使用者全局或项目目录下手动配置的 .claude/settings.json 进行合并。不过,这种多层级的配置聚合,保证了灵活性的也兼顾了项目的隔离。
拿到所有配置后就该建立连接了。翻开 client.ts,这个是我在源码里看到的最硬核的设计之一。
Claude Code 支持了多种传输层协议,包括 **stdio**、**SSE** 和 **HTTP**。其中我们平时写本地插件最常用到的就是 `stdio`。
// src/services/mcp/client.ts transport = new StdioClientTransport。...serverRef.env,},stderr: 'pipe',// 防止插件的报错直接污染使用者的 UI 界面})
**这里有个非常高明的设计理念:进程隔离。**你的 MCP Server 是作为一个独立的子进程被拉起的。Claude Code 通过标准输入输出来发送和接收 JSON-RPC 信息。这代表着什么,这代表着就算你下载的第三方插件代码写得稀烂。运行时直接崩溃了主进程依然稳如泰山,仅仅是那个插件不可用而已。怎么说呢,
当 MCP Server 连接上后。它暴露出来的工具是怎么让大模型看到的呢?大模型能区分哪个是内置工具,哪个是远端插件工具吗?
说到答案是,完全区分不出来。
在 MCPTool.ts 中,源码使用了一个非常优雅的“代理”模式。把远端工具包装成了本地标准格式:// src/tools/MCPTool/MCPTool.tsexport const MCPTool = buildTool
// src/tools/* *s const buildTool = => { const { isMcp,name,maxResultSizeChars } = options;return { async call { // TODO: 实现真正的调用逻辑 return { content: };},name,maxResultSizeChars,};},// src /tools /tools /tools /tools /tools /tools /tools *s const buildTool = => { const { isMcp,name } = options;return { async call { // TODO: 实现真正的调用逻辑 return {};},name,},};export default buildTool;export const mcpTool = buildTool //export const mcpTools =;import mcpp from './tool';
export default function buildtool{ return options;} export const toolName= ‘wear’ import React from ‘react’;export default function Tool{ return null;} import Weartool from './tool';export default toolName;import Wear toolName={ wear} export const getwear= async =>{ console .log ’);} import Weartool from './tool';import Weartool from './Wear tool’ import Wear toolName={ wear} import Weartool from './tool';import Weartool from './Wear tool’ export const getwear= async =>{ console .log ’);} import Weartool from './tool';import Wear toolName={ wear} import Weartool from './tool';话说回来,import Weartool from './Wear tool’ export const get_wear= async =>{ console .log;} import Weartool from './tool';import Wear toolName={ wear} import Weartool from './tool';import Wear toolName={ wear} import Weartool from './tool';import Wear toolName={ wear} import Wear toolName={ wear} export default function createMock {} });//使用方法var mock={} var result=mock );),);),);),);),);),);),});),});),};],);},];),};],);},];),};],);},];),};],);},];),};]],]];]],]];]],]];]],]];]],]];]],}];}),
结合 // src tools / tools tools tools tools tools tools tools tools tools */s const buildTool = => { const { isMcp,name } = options;return { async call { // TODO: 实现真正的调用逻辑 return {};},name,},};export default buildTool;export const mcpTool = buildTool //export const mcpTools =;import mcpp from './tool';export default function buildtool{ return options;不过,} export const toolName= ‘wear’ import React from ‘react’;export default function Tool{ return null;} import Weartool from './tool';export default toolName;import Wear toolName={ wear} export const getwear= async =>{ console .log ’);} import Weartool from './tool';import Weartool from './Wear tool’ import Wear toolName={ wear} import Weartool from './tool';import Wear toolName={ wear} import Weartooolfrom;imporrt Weartooolfrom.’./stool’. export consut getweater= asyn =>{ console .log );} imort Weartooolfrom.’./stool’. //export Default function creatMock{}
本技术文章仅供学习交流之用。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback