文档管理工具

一个用于管理Markdown文档和进行OSS分析的工具,支持文档列表、内容获取、元数据搜索以及OSS仓库的分析和学习。

  • by glkt3912
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 glkt3912/docs-mcp-server

使用说明

docs-mcp服务器

GitHub存储库或本地 docs/ 一种MCP服务器,允许Claude引用其下属的Markdown文档。

机能

文档管理工具

工具|说明| |--------|------| | list_documents 将文档列表与元数据一起返回 | get_document_content |获取指定路径的Markdown正文| | search_metadata 基于关键字的加权评分搜索

OSS分析和学习工具

您可以指定GitHub URL或本地路径来分析和学习任何OSS存储库。

工具|说明| |--------|------| | register_oss 在GitHub URL/本地路径中注册短别名 | list_oss_sources 查看已注册的别名列表 | analyze_oss |分析存储库结构、主要文件、使用语言| | get_oss_file 获取存储库中的任意文件 | search_oss_code 根据关键字的代码横断检索(前20件) | generate_oss_doc |生成汇总了结构、模块、设计模式、阅读顺序的学习Markdown|

必要条件

  • Node.js 18.0.0 以上
  • npm

安装,安装

# 1. 依存関係インストール
npm install

# 2. ビルド
npm run build

# 3. 環境変数を設定(後述の環境変数一覧を参照)
export GITHUB_OWNER=your-org
export GITHUB_REPO=your-repo

环境变数

文档管理

|变量名|说明|默认| |--------|------|-----------| | LOCAL_MODE | true 在本地 docs/ 查看项目中可用的所有族 false | | GITHUB_TOKEN 用于查找专用存储库OSS | GITHUB_OWNER |存储库所有者名称|—| | GITHUB_REPO 存储库名称 | GITHUB_BRANCH 参考分支 main | | DOCS_BASE_PATH 本地docs目录路径 ./docs | | FALLBACK_TO_LOCAL 在GitHub失败时向本地回退 false |

OSS 分析

|变量名|说明|默认| |--------|------|-----------| | OSS_ALIASES 启动时要注册的别名(逗号分隔)

OSS_ALIASES 格式: alias1=source1,alias2=source2

OSS_ALIASES="mybff=/Volumes/Dev-SSD/dev/nestjs-bff,nest=https://github.com/nestjs/nest"

注册的别名在MCP服务器启动期间一直有效。重新启动后 .mcp.json 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

起动

# ローカルモード
npm run start:local

# GitHub モード(環境変数設定済みの場合)
npm start

注册Claude Code

通过在项目范围中注册,仅在该目录中启动Claude Code时自动连接。

  1. 复制模板并重写路径:
cp .mcp.json.example .mcp.json
  1. .mcp.json 的,之 args 将更改为环境的绝对路径:
{
  "mcpServers": {
    "docs": {
      "type": "stdio",
      "command": "node",
      "args": ["/your/path/to/docs-mcp-server/build/index.js"],
      "env": {
        "LOCAL_MODE": "true",
        "DOCS_BASE_PATH": "./docs",
        "OSS_ALIASES": "mybff=/path/to/your/repo,nest=https://github.com/nestjs/nest"
      }
    }
  }
}

OSS_ALIASES 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

  1. 在该目录中启动Claude Code时自动连接:
claude
# 起動後 /mcp で接続状態を確認

.mcp.json 包含特定于计算机的绝对路径 .gitignore 中所述修改相应参数的值。团队共享 .mcp.json.example 对较大场景进行渲染期间已观察到该故障。

如何添加文档

  1. docs/ 将标记文件添加到
  2. docs/metadata.json 的,之 documents 向数组添加条目
{
  "id": "new-doc",
  "path": "docs/new-doc.md",
  "title": "新しいドキュメント",
  "description": "説明文",
  "tags": ["タグ1", "タグ2"],
  "industry": ["IT"],
  "topics": ["トピック1"],
  "updatedAt": "2026-02-22"
}

关于评分和检索精度

search_metadata 将关键字与各字段进行对照,用以下权重计算得分。

|字段|匹配类型|分数| |-----------|-----------|--------| | title | 完全一致 | +10点 | | title | 部分一致 | +5点 | | tags | 部分一致(件数分) | +5点/件 | | industry | 部分一致(件数分) | +4点/件 | | topics | 部分一致(件数分) | +3点/件 | | description | 部分一致 | +1点 |

tags 和 topics 越仔细设计搜索精度越高。 例如,“验证”、“JWT”、“OAuth”等,如果列举了多个同义词关联词,则在各种查询中都很容易命中。

项目配置

docs-mcp-server/
├── src/
│   ├── index.ts              # エントリポイント(設定読み込み・起動・OSS_ALIASES 読み込み)
│   ├── service.ts            # DocsService クラス・scoreDocument 関数
│   ├── oss-service.ts        # OssService クラス(GitHub API + ローカル FS)
│   ├── server.ts             # MCP ツール登録(全9ツール)
│   ├── types.ts              # Zod スキーマ・型定義
│   └── __tests__/
│       ├── scoreDocument.test.ts
│       └── service.test.ts
├── docs/
│   ├── metadata.json         # ドキュメント索引
│   ├── getting-started.md    # セットアップ・全ツール一覧
│   ├── dependencies.md       # 依存パッケージ説明
│   ├── mcp-sdk-internals.md  # MCP SDK 内部構造解説
│   └── oss-tools.md          # OSS 分析・学習ツールリファレンス
├── build/                    # コンパイル成果物(git管理外)
├── claude_code_config.json   # Claude設定サンプル
├── package.json
├── tsconfig.json
└── vitest.config.ts

参考文档