返回市场
MCP-查阅文档

MCP-查阅文档

作者:ryanjoachim34 星标更新:2025-02-19

项目介绍

MCP-RTFM

TypeScript MCP License: MIT

“RTFM!”他们说,但如果根本就没有手册可读呢?🤔 这就是MCP-RTFM:一个帮助你创建那个每个人都被要求阅读的手册的MCP服务器!通过高级内容分析、元数据生成和智能搜索能力,它将你的不存在或难以阅读的文档转换成一个相互关联的知识库,真正回答那些“基本问题”在它们被问之前。

剧情反转:现在,你不仅可以告诉人们去RTFM,还可以实际给他们一本值得阅读的手册!因为对“阅读手册”的最佳回应是有一本真正值得阅读的手册。📚✨

📚 目录

🚀 快速开始

# 安装依赖
npm install

# 构建服务器
npm run build

# 添加到您的MCP设置并开始使用
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "analyze_project_with_metadata", // 增强初始化
  args: { projectPath: "/path/to/project" }
});

// 这将:
// 1. 创建文档结构
// 2. 使用unified/remark进行内容分析
// 3. 生成智能元数据
// 4. 使用minisearch构建搜索索引
// 5. 添加结构化的前言
// 6. 让您的文档真正可读!

✨ 特性

文档管理工具

  • analyze_existing_docs - 分析并增强现有文档的内容和元数据
  • analyze_project_with_metadata - 使用增强的内容分析和元数据生成初始化文档结构
  • analyze_project - 基础文档结构初始化
  • read_doc - 读取文档文件(更新前需要)
  • update_doc - 使用基于差异的变化更新文档
  • get_doc_content - 获取文档文件的当前内容
  • get_project_info - 获取项目结构和文档状态
  • search_docs - 在文档文件中搜索并显示高亮结果
  • update_metadata - 更新文档元数据
  • get_related_docs - 根据元数据和内容链接查找相关文档
  • customize_template - 创建或更新文档模板

默认文档文件

服务器自动创建和管理这些核心文档文件:

  • techStack.md - 工具、库和配置的详细清单
  • codebaseDetails.md - 代码结构和逻辑的低级解释
  • workflowDetails.md - 关键流程的逐步工作流
  • integrationGuides.md - 外部系统连接的说明
  • errorHandling.md - 故障排除策略和实践
  • handoff_notes.md - 关键主题和下一步的总结

文档模板

内置不同类型的文档模板:

  • 标准文档模板
  • API文档模板
  • 工作流文档模板

可以使用customize_template工具创建自定义模板。

📝 示例工作流

1. 分析现有文档

// 使用高级分析增强现有文档
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "analyze_existing_docs",
  args: { projectPath: "/path/to/project" }
});

// 这将:
// - 查找.handoff_docs中的所有markdown文件
// - 使用unified/remark分析内容结构
// - 生成智能元数据
// - 构建搜索索引
// - 如果没有添加前言
// - 建立文档关系
// - 保存现有内容

// 结果包括:
// - 所有文档的增强元数据
// - 搜索索引填充
// - 内容关系映射
// - 如果可用的Git上下文

2. 增强项目文档设置

// 使用高级内容分析初始化文档
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "analyze_project_with_metadata",
  args: { projectPath: "/path/to/project" }
});

// 结果包括:
// - 初始化的文档文件
// - 从内容分析生成的元数据
// - 建立文档关系
// - 填充搜索索引
// - 添加结构化的前言
// - Git仓库上下文

// 获取增强的项目信息
const projectInfo = await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "get_project_info",
  args: { projectPath: "/path/to/project" }
});

// 在文档中智能搜索
const searchResults = await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "search_docs",
  args: {
    projectPath: "/path/to/project",
    query: "认证"
  }
});

// 结果包括:
// - 加权匹配(标题匹配优先)
// - 模糊搜索结果
// - 匹配的完整内容上下文
// - 相关文档建议

3. 使用内容链接更新文档

// 首先读取文档
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "read_doc",
  args: {
    projectPath: "/path/to/project",
    docFile: "techStack.md"
  }
});

// 使用链接到其他文档的内容更新
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "update_doc",
  args: {
    projectPath: "/path/to/project",
    docFile: "techStack.md",
    searchContent: "[为什么这个领域对项目至关重要]",
    replaceContent: "技术栈文档提供了开发的重要背景。参见[[workflowDetails]]了解实施步骤。",
    continueToNext: true // 自动移动到下一个文档
  }
});

4. 管理文档元数据

// 更新元数据以更好地组织
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "update_metadata",
  args: {
    projectPath: "/path/to/project",
    docFile: "techStack.md",
    metadata: {
      title: "技术栈概述",
      category: "架构",
      tags: ["基础设施", "依赖项", "配置"]
    }
  }
});

// 查找相关文档
const related = await use_mcp_tool({
  server: "mcp-rtfm",
  tool:_get_related_docs,
  args: {
    projectPath: "/path/to/project",
    docFile: "techStack.md"
  }
});

5. 使用上下文搜索文档

// 使用高亮结果搜索
const results = await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "search_docs",
  args: {
    projectPath: "/path/to/project",
    query: "认证"
  }
});

// 结果包括:
// - 文件名
// - 行号
// - 高亮匹配
// - 匹配周围的上下文

6. 创建自定义模板

// 为架构决策创建自定义模板
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "customize_template",
  args: {
    templateName: "architecture-decision",
    content: `# {title}

## 上下文
[决策的背景和上下文]

## 决策
[做出的架构决策]

## 后果
[决策的影响和权衡]

## 相关决策
[与相关架构决策的链接]`,
    metadata: {
      category: "架构",
      tags: ["决策记录", "设计"]
    }
  }
});

🔧 安装

VSCode (Roo Cline)

添加到设置文件:

  • Windows: %APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json
  • MacOS: ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
  • Linux: ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
{
  "mcpServers": {
    "mcp-rtfm": {
      "command": "node",
      "args": ["<path-to-mcp-rtfm>/build/index.js"],
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

Claude Desktop

添加到配置文件:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-rtfm": {
      "command": "node",
      "args": ["<path-to-mcp-rtfm>/build/index.js"],
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

🎯 高级特性

内容链接

使用[[文档名称]]语法在文档之间创建链接。服务器会自动跟踪这些关系,并在查找相关文档时包含它们。

元数据驱动的组织

文档使用以下方式进行组织:

  • 类别(例如,“架构”,“API”,“工作流”)
  • 标签用于灵活分组
  • 基于共享元数据的自动关系发现
  • 内容链接分析

增强内容分析

服务器使用高级库来更好地管理文档:

  • unified/remark用于Markdown处理:

    • 基于AST的内容分析
    • 准确的标题结构检测
    • 代码块和链接提取
    • 正确的Markdown解析和操作
  • minisearch用于强大的搜索能力:

    • 跨所有文档的快速模糊搜索
    • 字段加权搜索(标题优先)
    • 完整内容和元数据索引
    • 带TTL管理的有效缓存
    • 实时搜索索引更新

智能元数据生成

  • 自动内容分析进行分类
  • 基于内容模式的智能标签生成
  • 文档中的结构化前言
  • 基于AST的标题和章节检测
  • 代码片段识别和标记
  • 意识到上下文的结果展示

模板系统

  • 内置常见文档类型的模板
  • 支持自定义模板,默认带有元数据
  • 模板继承和覆盖能力
  • 用于一致格式的占位符系统

🛠️ 开发

# 安装依赖
npm install

# 构建服务器
npm run build

# 开发时自动重建
npm run watch

🐛 调试

由于MCP服务器通过stdio通信,调试可能会很困难。使用MCP Inspector

npm run inspector

Inspector将提供一个URL,以便您可以在浏览器中访问调试工具。

📄 许可证

MIT © Model Context Protocol