mcpField
L
LivingDocs

LivingDocs

本地服务
github.com/dinesh-mys开发工具022 周前更新

关于 LivingDocs

LivingDocs 是面向软件团队的文档健康监测 MCP 服务,可检测过时注释、文档空缺和关键文件的人员集中风险。它还可索引代码文档及团队对话,并借助 Claude 起草更新。

主要功能

  1. 01扫描过时文档
  2. 02查询代码文档
  3. 03生成并写回注释更新
  4. 04查找文档空缺与人员风险
  5. 05索引 Slack、Teams 和邮件

适用场景

  1. 01定位需要更新的代码注释
  2. 02查询代码库文档内容
  3. 03发现缺少文档或知识集中风险的文件
  4. 04检索团队讨论中的技术决策

MCP 相关

它通过 MCP 暴露文档扫描、查询、索引和更新工具,供 Claude Desktop、Claude Code 和 GitHub Copilot 等客户端使用。部分工具可将生成的内容写回源文件或 Confluence。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

LivingDocs

NuGet 版本 NuGet 下载量 GitHub 问题 GitHub 讨论 MIT 许可证

AI 驱动的文档健康监测工具。它可检测过时的代码注释、发现知识缺口、提醒人员离职风险,并摄取 Slack、Teams 和电子邮件对话,让整个组织的知识始终可搜索且保持最新。

安装

需要 .NET 10 SDK。

dotnet tool install -g LivingDocs.Mcp

工具

工具版本描述
scan_repo免费扫描代码仓库,并列出过时文档文件及其过时百分比(0–100%)
query_docs免费使用代码库中的文档注释,回答有关代码库的自然语言问题
index_repo免费为代码仓库构建或刷新语义搜索索引
suggest_doc_update免费请 Claude 重写过时的文档注释
write_back免费将 Claude 生成的文档更新直接写入源文件
detect_gaps免费查找没有任何文档的文件,并按提交活跃度排序
departure_risk免费找出关键文件的唯一贡献者(公交因子)
write_docs专业版将更新后的文档写入 docs/<File>.md,并附上 UTC 时间戳 — 完整审计记录
sync_confluence专业版将更新后的文档写回 Confluence 页面
scan_org专业版扫描 GitHub 组织中的所有代码仓库,并生成组织级报告
index_slack专业版将 Slack 频道编入知识库索引 — 可通过 query_docs 搜索
index_teams专业版将 Microsoft Teams 频道编入知识库索引
index_email专业版将 IMAP 邮件文件夹编入知识库索引

快速测试

livingdocs-mcp scan /path/to/your/repo
Scanning /path/to/repo ...
Files examined : 12
Stale docs     : 2

  [██████████]  100%  src/Tax.cs
               doc updated : 2024-09-01
               code changed: 2025-01-15

  [████░░░░░░]   40%  src/Auth.cs
               doc updated : 2024-12-01
               code changed: 2025-01-28

设置 — Claude Desktop

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "livingdocs": {
      "command": "livingdocs-mcp",
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}

重启 Claude Desktop。工具会显示在 + 菜单下。


设置 — Claude Code

在项目根目录中添加 .mcp.json 文件:

{
  "mcpServers": {
    "livingdocs": {
      "command": "livingdocs-mcp",
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}

或者进行全局注册:

claude mcp add livingdocs -s user -- livingdocs-mcp

然后在 Claude Code 聊天界面中:

scan this repo for stale docs              → uses scan_repo
what does the Auth module do?              → uses query_docs
suggest a fix for src/Tax.cs              → uses suggest_doc_update
find undocumented files                   → uses detect_gaps
who owns the payments module?             → uses departure_risk

设置 — GitHub Copilot(VS Code)

VS Code 1.99+ 支持在 Copilot Agent 模式下使用 MCP 服务。在项目中添加 .vscode/mcp.json 文件:

{
  "servers": {
    "livingdocs": {
      "type": "stdio",
      "command": "livingdocs-mcp",
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}

打开 Copilot 聊天面板,切换到 Agent 模式,即可使用这些工具。

注意: @livingdocs Copilot Extension Agent 已构建并部署,但由于 GitHub Copilot 计划尚未支持注册 Agent URL,目前仍待开放。与此同时,上述 MCP 服务路径可正常使用。


设置 — GitHub Webhook

Webhook 集成会监视代码仓库中每次 PR 合并,并自动以 PR 评论的形式发布过时文档报告。还可选择发送 Slack 通知,其中包含一个 自动起草 按钮,只需单击一次即可生成文档修复。

1. 部署 LivingDocs.CopilotExt

Webhook 处理程序以 Web 服务的形式运行。将其部署到任意主机(Railway、Fly.io、VPS):

# Docker
docker build -t livingdocs-ext .
docker run -p 8080:8080 \
  -e ANTHROPIC_API_KEY=sk-ant-... \
  -e GITHUB_WEBHOOK_SECRET=your-secret \
  -e LIVINGDOCS_REPO_PATH=/path/to/local/repo \
  livingdocs-ext
2. 在 GitHub 中注册 Webhook

前往你的仓库 → Settings → Webhooks → Add webhook:

字段值
Payload URLhttps://your-server/api/github/webhook
Content typeapplication/json
Secret任意随机字符串 — 设置为 GITHUB_WEBHOOK_SECRET
Events选择单个事件 → 仅勾选 Pull requests
3. 设置必需的环境变量
变量必需说明
GITHUB_WEBHOOK_SECRET是必须与在 GitHub 中输入的密钥一致
LIVINGDOCS_REPO_PATH是仓库本地克隆的绝对路径
GITHUB_TOKEN建议具有 repo 作用域的 PAT — 发布 PR 评论和获取差异内容时需要
ANTHROPIC_API_KEY是用于 AI 影响分析和语义文档映射
SLACK_WEBHOOK_URL可选用于 Slack 过时文档提醒的传入 Webhook URL
SLACK_SIGNING_SECRET可选启用 Slack Auto-draft 按钮(Slack App → Basic Information)
4. 每个已合并 PR 会发生什么
  1. GitHub 发送一个 pull_request 事件,其中包含 action: closed, merged: true
  2. LivingDocs 验证 HMAC-SHA256 签名
  3. 从 GitHub API 获取已更改的文件
  4. 针对本地仓库运行过时文档检测
  5. 调用 Claude 分析差异内容,并映射受影响的 .md 文档
  6. 将报告作为 PR 评论发布
  7. 发送 Slack 通知(如果已配置),其中包含 Auto-draft top doc 按钮

Pro 版

提供 7 天免费试用 — 开始试用无需信用卡。

Pro 工具需要许可证密钥:

export LIVINGDOCS_LICENSE_KEY=LD-xxxx-xxxx-xxxx

或者将密钥添加到 MCP 配置中的 env 块:

{
  "mcpServers": {
    "livingdocs": {
      "command": "livingdocs-mcp",
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-...",
        "LIVINGDOCS_LICENSE_KEY": "LD-xxxx-xxxx-xxxx"
      }
    }
  }
}

开始 7 天免费试用 — LivingDocs Pro(之后每月 $10)。


免费工具 — detect_gaps

查找没有任何文档注释的源文件,并根据提交活动为它们排序。最繁忙但未编写文档的文件是优先级最高的知识缺口 — 这些代码频繁变更,却从未得到说明。

在 Claude 中使用:

detect_gaps on /path/to/repo

输出示例:

Knowledge gaps in '/path/to/repo'
Files scanned: 42  |  Documented: 28  |  Undocumented: 14 (33%)

Top undocumented files by activity:
  src/payments/retry.ts          42 commits    last changed 2024-11-03  by Alice
  src/auth/session.ts            31 commits    last changed 2025-01-08  by Bob

To add docs to the highest-priority file, run:
  suggest_doc_update on /path/to/repo src/payments/retry.ts

免费工具 — departure_risk

识别作为关键文件唯一或主要贡献者的作者 — 这就是经典的“单点故障”问题。某位作者的提交占比 ≥60%,且总提交次数 ≥5 的文件会被标记为知识单点。

在 Claude 中使用:

departure_risk on /path/to/repo

输出示例:

Departure risk analysis for '/path/to/repo'
Files analysed: 42  |  High-risk files: 8

Authors with exclusive knowledge:

  Alice Chen  (6 files)
    • src/auth/session.ts        12 commits  (83% by Alice Chen)
    • src/payments/retry.ts       9 commits  (75% by Alice Chen)

  Bob Smith  (2 files)
    • src/core/engine.go         22 commits  (91% by Bob Smith)

To generate a handover doc for the riskiest file:
  suggest_doc_update on /path/to/repo src/auth/session.ts

Pro 工具 — write_docs

检测文件中过时的文档注释,通过 Claude 生成更新后的文档,并将结果附加到仓库内的 docs/<FileName>.md 中 — 每次运行都会添加 UTC 时间戳。每次运行都会新增一个带日期的章节,逐步建立完整的审计记录,追踪文档随时间的演变。

在 Claude 中使用:

write_docs on /path/to/repo for src/Tax.cs

创建或追加到 docs/Tax.md:

# Tax.cs — LivingDocs Documentation


## 2026-05-19

### TaxCalculator.Calculate
Calculates net tax payable given gross income, deductions, and the current financial year slab rates...

*Confidence: 92%*

---

Pro 工具 — sync_confluence

检测文件中过时的文档注释,通过 Claude 生成更新后的文档,并将结果写入对应的 Confluence 页面(如果页面不存在,则创建该页面)。

必需的环境变量:

变量说明
CONFLUENCE_BASE_URL你的 Confluence Cloud URL,例如 https://mycompany.atlassian.net/wiki
CONFLUENCE_EMAILAtlassian 账号电子邮件地址
CONFLUENCE_API_TOKEN从 id.atlassian.com/manage-profile/security/api-tokens 获取的 API token
CONFLUENCE_SPACE_KEY目标空间密钥,例如 DEV(可在空间 URL 中查看)

在 Claude 中使用:

sync_confluence on /path/to/repo for src/Tax.cs

Pro 工具 — scan_org

扫描 GitHub 组织中的每个仓库,并返回组织范围的陈旧度报告。对每个仓库执行浅克隆、运行过时文档检测,然后清理。

必需的环境变量:

变量描述
GITHUB_TOKEN具有 repo 和 read:org 权限范围的个人访问令牌

在 Claude 中的用法:

scan_org on my-company

示例输出:

Org: my-company — 8 repos scanned | 142 files | 5 stale docs

⚠️ Repos with stale docs
api-service — 3 stale / 48 files
  - src/Auth.cs (100%)
  - src/Tax.cs (80%)

✅ Clean repos (6)
frontend, user-service, admin-api, ...

Pro 工具 — index_slack

从 Slack 频道获取消息,并将其添加到仓库的知识索引中。建立索引后,query_docs 除了返回代码文档的结果外,还会返回 Slack 讨论的结果——因此,搜索“我们为什么选择 Postgres?”时,既能找到代码注释,也能找到作出该决定的 Slack 讨论串。

消息按讨论串分组,以保留上下文。系统会自动过滤机器人消息、加入/离开事件以及少于 30 个字符的消息。

必需的环境变量:

变量描述
SLACK_BOT_TOKEN机器人令牌(xoxb-...)——Slack 应用 → OAuth 和权限

所需的机器人 OAuth 权限范围: channels:history、channels:read

在 Claude 中的用法:

index_slack on /path/to/repo C1234ABCD

然后跨代码和 Slack 查询:

query_docs on /path/to/repo "how does the auth flow work?"

Pro 工具 — index_teams

通过 Graph API 从 Microsoft Teams 频道获取消息,并将其添加到知识索引中。使用客户端凭据 OAuth——无需用户登录。

必需的环境变量:

变量描述
TEAMS_TENANT_IDAzure AD 租户 ID
TEAMS_CLIENT_IDAzure AD 应用(客户端)ID
TEAMS_CLIENT_SECRETAzure AD 客户端密钥

Azure AD 应用设置:

  1. 在 Azure 门户 → 应用注册中注册一个应用
  2. 添加应用程序权限:ChannelMessage.Read.All
  3. 授予管理员同意
  4. 创建客户端密钥
  5. 从 Graph Explorer 获取团队/频道 ID

在 Claude 中的用法:

index_teams on /path/to/repo <teamId> <channelId>

Pro 工具 — index_email

从 IMAP 邮箱文件夹获取电子邮件,并将其添加到知识索引中。电子邮件中的工程讨论、事故报告和架构决策都可以与代码文档一起搜索。系统会自动去除邮件引用(以 > 开头的行)。

支持 Gmail 应用专用密码、Microsoft 365 以及任何标准 IMAP 服务提供商。

必需的环境变量:

变量描述
IMAP_HOSTIMAP 服务主机名,例如 imap.gmail.com
IMAP_USERNAME电子邮件地址
IMAP_PASSWORD密码或应用专用密码
IMAP_PORT端口(默认值为 993)

**Gmail 设置:**使用应用专用密码,而非账号密码。需要启用两步验证。

在 Claude 中的用法:

index_email on /path/to/repo folder=Engineering

为获得最佳效果,请创建专用文件夹(例如 Engineering/Architecture),并将相关邮件筛选到其中。


Enterprise 级别

Enterprise 许可证可完全离线运行——许可证验证无需联网。非常适合气隙环境和受监管行业。

工作原理:

  1. 联系 [[email protected]](mailto:[email protected]?subject=LivingDocs Enterprise),并提供公司名称和团队规模
  2. 接收签名的 JWT 许可证密钥和发票
  3. 设置 LIVINGDOCS_LICENSE_KEY=<jwt>——验证在本地完成,不会调用外部 API

Enterprise 功能:

  • 离线 JWT 许可证验证(由 RSA-256 签名,可在气隙网络中使用)
  • 支持 Azure OpenAI——使用自己的 Azure 部署,而非 Anthropic
  • 独立二进制文件——无需 .NET SDK,可从 GitHub Releases 下载
  • 优先支持和定制发票(按年或一次性支付)

Azure OpenAI 设置:

{
  "mcpServers": {
    "livingdocs": {
      "command": "livingdocs-mcp",
      "env": {
        "LIVINGDOCS_LICENSE_KEY": "<enterprise-jwt>",
        "AZURE_OPENAI_ENDPOINT": "https://your-resource.openai.azure.com",
        "AZURE_OPENAI_API_KEY": "your-azure-key",
        "AZURE_OPENAI_DEPLOYMENT": "gpt-4o"
      }
    }
  }
}

环境变量

变量必填描述
ANTHROPIC_API_KEY是(AI 功能)Anthropic API 密钥 — 使用 Azure OpenAI 时不需要
LIVINGDOCS_LICENSE_KEY是(Pro/Enterprise)来自 Polar.sh 的 LD-xxxx 密钥或 Novaders LLP 提供的 JWT
AZURE_OPENAI_ENDPOINTEnterpriseAzure OpenAI 资源终结点
AZURE_OPENAI_API_KEYEnterpriseAzure OpenAI API 密钥
AZURE_OPENAI_DEPLOYMENTEnterpriseAzure OpenAI 部署名称,例如 gpt-4o
GITHUB_TOKEN建议具有 repo + read:org 权限范围的 PAT — 用于 scan_org、PR 评论和私有仓库
GITHUB_WEBHOOK_SECRETWebhookHMAC 密钥 — 必须与 GitHub 仓库 Webhook 设置中配置的密钥一致
LIVINGDOCS_REPO_PATHWebhookWebhook 处理程序要扫描的本地仓库克隆的绝对路径
CONFLUENCE_BASE_URLsync_confluenceConfluence Cloud URL,例如 https://mycompany.atlassian.net/wiki
CONFLUENCE_EMAILsync_confluenceAtlassian 账户邮箱
CONFLUENCE_API_TOKENsync_confluenceAtlassian API 令牌
CONFLUENCE_SPACE_KEYsync_confluenceConfluence 空间密钥,例如 DEV
SLACK_WEBHOOK_URL可选PR 合并后用于发送过时文档 Slack 提醒的传入 Webhook URL
SLACK_SIGNING_SECRET可选在 Slack 通知中启用“自动起草”按钮(Slack App → 基本信息)
SLACK_BOT_TOKENindex_slack具有 channels:history + channels:read 权限范围的机器人令牌(xoxb-...)
TEAMS_TENANT_IDindex_teamsAzure AD 租户 ID
TEAMS_CLIENT_IDindex_teamsAzure AD 应用(客户端)ID
TEAMS_CLIENT_SECRETindex_teamsAzure AD 客户端密钥
IMAP_HOSTindex_emailIMAP 服务器主机名,例如 imap.gmail.com
IMAP_USERNAMEindex_email邮箱地址 / IMAP 登录名
IMAP_PASSWORDindex_email密码或应用专用密码
IMAP_PORTindex_emailIMAP 端口 — 默认为 993(SSL)
DO_NOT_TRACK可选设置为 1 以停用匿名遥测(见下文)
LIVINGDOCS_TELEMETRY可选设置为 off 以停用匿名遥测(见下文)

遥测

LivingDocs 会发送少量匿名使用数据,以便我们了解用户完成了哪些设置步骤(安装、启动服务、首次成功建立索引,以及显示升级提示的时间)。每个事件仅包含随机安装 ID、应用版本和操作系统 — 绝不会包含你的代码、文件路径、仓库名称或任何个人数据。

如要选择退出,请设置以下任一环境变量:

DO_NOT_TRACK=1
# or
LIVINGDOCS_TELEMETRY=off

支持的语言

C#、TypeScript、JavaScript、Python、Go

从源代码构建

git clone https://github.com/dinesh-mys/livingdocs
cd livingdocs
make build
make test
make scan REPO=/path/to/your/repo

架构

┌──────────────────────────────────────────────────────────────┐
│                        Interfaces                             │
│  Claude Desktop │ Claude Code │ VS Copilot │ GitHub Webhook  │
└───────┬──────────────────────────────────────┬───────────────┘
        │                                      │
   livingdocs-mcp                    LivingDocs.CopilotExt
   (MCP server)                      /api/github/webhook
        │                            /api/slack/actions
        │                            /api/copilot/chat (SSE)
        └──────────────────┬─────────┘
                    LivingDocs.Core
   ┌────────────────────────┴────────────────────────────────┐
GitScanner  DocExtractor  StaleDocDetector  ClaudeService
GapDetector  DepartureRisk  IndexService  DocWriterService
SlackConnector  TeamsConnector  EmailConnector  ConfluenceService

项目

项目用途
LivingDocs.Core共享引擎 — git 扫描、文档提取、过时检测、Claude API、知识缺口 + 离职风险分析、Slack/Teams/Email 连接器、Confluence 同步、组织扫描
LivingDocs.McpServerCLI + MCP 服务 — 以 LivingDocs.Mcp 名称发布到 NuGet
LivingDocs.CopilotExtGitHub Webhook 处理程序、Slack 通知 + 审批流程、Copilot Extension SSE 终结点
LivingDocs.TestsxUnit 测试套件(94 项测试)

反馈与支持

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。