这个项目能做什么

fumasignal-mcp 是一个第三方、非官方的 Model Context Protocol(MCP)服务器,其目的是让 AI 助手能够搜索和阅读使用 Fumadocs 构建的文档站点。它可以指向已部署的 Fumadocs URL(仅 scheme 和 host,docs 路径单独配置)或本地 Fumadocs 项目目录,并向任何支持 MCP 的客户端暴露一组只读工具。项目名称是对 Fumadocs 作者账号 fuma-nama 的戏仿,以及烟雾信号在 AI 客户端与外部工具之间传递消息的概念。作者明确表示该项目与 Fumadocs 项目无关联。 运行模式 服务器有两种运行模式。在远程模式下,您提供已部署 Fumadocs 站点的源点(仅 scheme 加 host,docs 路径单独配置),无需本地设置。在本地模式下,您指向磁盘上的 Fumadocs 项目根目录,适用于离线工作或部署前检查。它以单个 npx 二进制文件分发,典型调用为 npx -y fumasignal-mcp --url https://your-docs.com,所有访问均为只读,永不修改文档。 暴露的工具 提供七个工具。search_docs 通过站点的 Orama 搜索 API 执行全文搜索,需要查询参数;对于多文档站点还接受 tag 参数。list_pages 枚举已知的文档页面,可按 URL 前缀过滤。get_page 获取页面的完整 Markdown 内容。get_section 根据标题锚点检索单个章节。get_toc 列出页面的所有标题及其锚点。get_meta 以 JSON 形式返回前置元数据或页面元数据。get_llms_txt 获取 llms.txt,若设置 full 选项则获取 llms-full.txt。页面引用可以是 URL 路径、绝对同主机 URL,或 docs 前缀下的 slug。 客户端配置 README 提供了 Claude Desktop、Claude Code、Cursor、VS Code 带 GitHub Copilot Chat、以及 Continue.dev 的配置片段,均使用 stdio 传输和相同的 npx 命令。通过在不同键下注册多个实例,可服务多个文档站点。对于 Continue.dev,同时展示了可复用的 JSON 文件和原生 YAML 格式。 配置标志和环境变量 CLI 标志包括:--url 用于站点源点,--local 用于本地项目根目录,--search-path 用于非默认搜索 API 路径(默认 /api/search,始终从源点根解析),--docs-prefix 用于文档 URL 前缀(默认 /docs),--content-dir 用于本地内容目录(默认 content/docs),--auth-header 用于需要认证的站点,--cache-ttl 用于远程响应缓存(默认 300000 ms),以及 --version 和 --help。每个标志都有对应的 FUMASIGNAL_* 环境变量,显式标志优先级更高;此外还有无对应标志的 FUMASIGNAL_LOG_LEVEL 设置。README 建议通过环境变量传递密钥,以免它们留在 shell 历史记录或进程列表中。 检索工作原理 在远程模式下,search 调用站点的 Orama API,并处理 flat-array 与 hits/document 两种响应格式;列出页面时获取 sitemap.xml 并按 docs 前缀过滤;页面获取先尝试 .md、.mdx 和 /raw 变体的 URL,否则回退到抓取渲染的 HTML,再用 Turndown 将 article 或 main 元素转换为 Markdown;llms.txt 直接获取。远程响应在内存中缓存,默认 TTL 为五分钟。在本地模式下,服务器遍历内容目录下的 Markdown 和 MDX 文件,使用 gray-matter 解析前置元数据,将 index 文件映射到 docs 根目录,并使用基于标题的加权 token 匹配对搜索结果进行评分。 兼容性与测试 该项目要求 Node.js 20 或更高版本,说明已针对默认的 Orama 搜索 API 和标准站点地图布局进行测试,并声明可与任何 STDIO MCP 客户端一起工作,提及 Claude Desktop、Claude Code、Cursor、VS Code、Zed 和 Cline 等。报告拥有 280 多个单元测试,覆盖搜索、站点地图和 HTML 路径的 fixture。 故障排除与开发 README 列出常见问题:缺少站点地图仅影响 list_pages;搜索返回 404 通常意味着使用了非默认搜索路径或 URL 包含路径;在没有 Markdown 端点的站点上进行 HTML 抓取可能会产生噪声;提供了 MCP Inspector 脚本以验证工具是否正确注册。开发说明包括克隆、安装、使用 tsc 进行类型检查、使用 eslint 进行 lint、使用 vitest 进行测试、使用 tsup 进行构建,以及一个组合检查脚本。欢迎贡献,但请先为非微小的更改开启 issue。项目采用 MIT 许可证发布。