mcpField
L
LivingDocs

LivingDocs

ローカル
github.com/dinesh-mys開発ツール022 週間前に更新

LivingDocs について

LivingDocsは、ソフトウェアチーム向けのドキュメント健全性監視MCPサーバーです。古いコメントや文書の不足、重要ファイルの知識集中リスクを検出し、コード文書やチームの会話を索引化して、Claudeによる更新案を作成できます。

主な機能

  1. 01古いドキュメントのスキャン
  2. 02コード文書の検索
  3. 03コメント更新案の生成と書き戻し
  4. 04文書不足と知識集中リスクの検出
  5. 05Slack、Teams、メールの索引化

活用シーン

  1. 01更新が必要なコードコメントの特定
  2. 02コードベース内の文書の検索
  3. 03未文書化ファイルや知識集中の発見
  4. 04技術的決定に関するチームの議論の検索

MCP 対応

MCPを通じて文書のスキャン、検索、索引化、更新のツールを公開し、Claude Desktop、Claude Code、GitHub Copilotなどのクライアントから利用できます。一部のツールは生成した内容をソースファイルやConfluenceに書き戻せます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

LivingDocs

NuGet のバージョン NuGet のダウンロード数 GitHub の Issue 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_docsPro更新したドキュメントを docs/<File>.md に UTC タイムスタンプ付きで書き込み、完全な監査証跡を残します
sync_confluencePro更新したドキュメントを Confluence ページに書き戻します
scan_orgProGitHub 組織内のすべてのリポジトリをスキャンし、組織全体のレポートを返します
index_slackProSlack チャンネルをナレッジベースにインデックス登録し、query_docs で検索できるようにします
index_teamsProMicrosoft Teams チャンネルをナレッジベースにインデックス登録します
index_emailProIMAP メールフォルダーをナレッジベースにインデックス登録します

クイックテスト

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 のエージェントモードで MCP サーバーをサポートしています。プロジェクトに .vscode/mcp.json ファイルを追加します。

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

Copilot のチャットパネルを開き、Agent mode に切り替えると、ツールを利用できます。

注記: @livingdocs Copilot Extension エージェントはビルドおよびデプロイ済みですが、エージェント URL の登録に利用できる GitHub Copilot プランの提供待ちです。それまでは、上記の 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 を選択します。

フィールド値
ペイロード URLhttps://your-server/api/github/webhook
コンテンツタイプapplication/json
シークレット任意のランダムな文字列。GITHUB_WEBHOOK_SECRET として設定します
イベント個別のイベントを選択 → 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任意Auto-draft Slack ボタンを有効にします(Slack App → Basic Information)
4. PR がマージされるたびに行われる処理
  1. GitHub が action: closed, merged: true を含む pull_request イベントを送信します
  2. LivingDocs が HMAC-SHA256 署名を検証します
  3. GitHub API から変更されたファイルを取得します
  4. ローカルリポジトリに対して古いドキュメントの検出を実行します
  5. Claude を呼び出して差分を分析し、影響を受ける .md ドキュメントを特定します
  6. レポートを PR コメントとして投稿します
  7. Auto-draft top doc ボタン付きの Slack 通知を送信します(設定されている場合)

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

重要なファイルへの唯一または主要な貢献者である作成者を特定します。これは典型的な「バス係数 1」の問題です。1 人の貢献者がコミットの 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_URLConfluence Cloud の URL。例:https://mycompany.atlassian.net/wiki
CONFLUENCE_EMAILAtlassian アカウントのメールアドレス
CONFLUENCE_API_TOKENid.atlassian.com/manage-profile/security/api-tokens で取得した API トークン
CONFLUENCE_SPACE_KEY対象スペースのキー。例:DEV(スペースの URL に表示されます)

Claude での使用方法:

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

Pro ツール — scan_org

GitHub 組織内のすべてのリポジトリをスキャンし、組織全体の陳腐化レポートを返します。各リポジトリをシャロークローンし、古くなったドキュメントを検出してから、クリーンアップします。

必須の環境変数:

変数説明
GITHUB_TOKENrepo と 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 App → OAuth & Permissions

必要なボットの 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 portal → App registrations でアプリを登録します
  2. アプリケーションのアクセス許可として ChannelMessage.Read.All を追加します
  3. 管理者の同意を付与します
  4. クライアントシークレットを作成します
  5. Graph Explorer でチーム ID とチャンネル 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 のセットアップ: アカウントのパスワードではなく、アプリパスワードを使用してください。2 段階認証プロセスが必要です。

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 のサポート — Anthropic の代わりに独自の Azure デプロイを使用できます
  • 自己完結型バイナリ — .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 → Basic Information)
SLACK_BOT_TOKENindex_slackchannels: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、アプリのバージョン、OS のみです。コード、ファイルパス、リポジトリ名、個人データが送信されることはありません。

オプトアウトするには、次のいずれかの環境変数を設定します。

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 サーバー — NuGet で LivingDocs.Mcp として公開
LivingDocs.CopilotExtGitHub Webhook ハンドラー、Slack 通知と承認フロー、Copilot Extension SSE エンドポイント
LivingDocs.TestsxUnit テストスイート(94 件のテスト)

フィードバックとサポート

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。