Module Federation MCP Server
使用说明内容(Markdown格式)
-
项目简介
- 该仓库实现了一个基于 Model Context Protocol (MCP) 的服务器端后端,用于管理资源、注册工具、渲染 Module Federation(MF)组件并通过 MCP 协议与客户端通信。服务器负责会话管理、能力声明、以及通过多种传输协议为 LLM 客户端提供统一的上下文服务。
-
主要功能点
- 处理 MCP 请求与响应:支持通过 MCP 协议的工具列表、工具调用、资源读取等标准请求。
- 资源与工具管理:按配置注册工具、逐个远程资源分配独立 CSP,确保跨域策略的作用域性。
- 渲染与交互:为 MF 组件提供 HTML 资源,通过 MF 运行时渲染组件,并在需要时通过 CSP 和代理实现资源加载。
- 多传输协议支持:同时支持 Streamable HTTP(SSE)传输、STDIO 传输以及可选的直接 JSON-RPC 端点,方便不同客户端接入。
- 动态配置与校验:从 JSON 配置加载工具与远程资源信息,提供配置校验,确保工具引用的远程和资源存在。
- 本地与远程调试能力:包括日志输出、错误处理、以及在 UI/CLI 中的可观测性。
-
安装步骤
- 准备环境:确保 Node.js 18 及以上版本已安装。
- 获取代码:将仓库克隆到本地或直接下载。
- 安装依赖并构建:
- 安装依赖:使用 npm 或 pnpm 安装。
- 构建:运行构建命令,生成 dist 目录中的可执行文件。
- 运行方式(两种常见方式)
- 方式A(推荐用于与 Claude Desktop 集成的开发环境):使用 npx 直接启动服务器
- 执行命令示例(请将实际路径替换为你本地的 mcp_apps.json 路径):npx -y @module-federation/mcp-server@latest --config /absolute/path/to/module-federation-mcp/module-federation-examples/basic/mcp_apps.json --stdio
- 方式B(从本地构建后运行)
- 执行命令示例:/absolute/path/to/node /absolute/path/to/module-federation-mcp/dist/index.js --config /absolute/path/to/mcp_apps.json --stdio
- 方式A(推荐用于与 Claude Desktop 集成的开发环境):使用 npx 直接启动服务器
- 重要说明
- 服务器的配置文件通常命名为 mcp_apps.json,包含 remotes 与 tools 的定义。具体字段与示例请参考仓库的 README 以及示例配置。
- 启动后,Claude Desktop 等 MCP 客户端需要在配置中指向以上命令与参数,以便建立与 MCP 服务器的连接。
-
服务器配置(MCP 客户端需要的最小信息,描述性说明,不提供实际代码)
- server 名称(server name): module-federation
- 启动命令(command): 可以使用 npx 或本地 Node 运行方式
- 参数(args):
- 使用 npx 启动的参数示例:
- -y
- @module-federation/mcp-server@latest
- --config
- /absolute/path/to/module-federation-mcp/module-federation-examples/basic/mcp_apps.json
- --stdio
- 使用本地构建后直接运行的参数示例:
- /absolute/path/to/node
- /absolute/path/to/module-federation-mcp/dist/index.js
- --config
- /absolute/path/to/mcp_apps.json
- --stdio
- 使用 npx 启动的参数示例:
- 备注
- 以上信息仅用于 MCP 客户端配置示例,实际环境请将路径替换为你的本地实际路径。MCP 客户端通常不需要读取服务器内部实现细节,只需要知道服务器的启动方式和配置文件位置即可建立连接。
-
基本使用方法
- 启动服务器后,确保配置文件路径正确,服务器将提供工具与资源的注册信息。
- 在 MCP 客户端(如 Claude Desktop)中将服务器配置为上述启动命令形式,指定配置文件路径并选择 stdio 或其他传输模式。
- 使用工具时,服务器会按配置从远程端拉取 MF 组件、生成资源 HTML,并通过 CSP 限制跨域访问,确保安全加载。
- 如遇问题,请查看日志输出,默认日志位置通常在用户主目录的日志目录中(如 Claude 日志或服务器日志),以及服务器控制台输出的调试信息。