使用说明
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时自动连接。
- 复制模板并重写路径:
cp .mcp.json.example .mcp.json
.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 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
- 在该目录中启动Claude Code时自动连接:
claude
# 起動後 /mcp で接続状態を確認
.mcp.json包含特定于计算机的绝对路径.gitignore中所述修改相应参数的值。团队共享.mcp.json.example对较大场景进行渲染期间已观察到该故障。
如何添加文档
docs/将标记文件添加到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
