read-docs-mcp について
read-docs-mcpは、Gitリポジトリ内のパッケージドキュメントをAIエージェントが参照するためのMCPサーバーです。ドキュメントのモジュール構成からツールを生成し、対応するドキュメント構造の作成も案内します。
主な機能
- 01ドキュメントモジュールからツールを生成
- 02モジュール一覧・概要・詳細の取得
- 03キーワードによるあいまい検索
- 04通常モードと2段階モード
- 05オプションでソースファイルを参照
活用シーン
- 01モジュール別にライブラリの文書を確認
- 02キーワードで関連ドキュメントを検索
- 03実装の把握にソースファイルを参照
MCP 対応
ドキュメントの一覧、概要、詳細を取得するツールをMCPクライアントに公開します。リポジトリが未設定の場合は、対応するドキュメント構造の作成方法を案内します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
read-docs-mcp
AI エージェントが、構造化されたインターフェースを通じてパッケージのドキュメントにアクセスし、その内容を理解できるようにする Model Context Protocol(MCP)サーバーです。
機能
- ドキュメントの構造から MCP ツールを自動生成します
- 複数のドキュメントモジュール(フック、コンポーネント、ユーティリティなど)に対応します
- ドキュメントファイルおよびモジュールフォルダーの命名パターンを設定できます
- 一覧、概要、詳細なドキュメントへのアクセスを提供します
- 設定されたモジュールに基づいて、ツールを動的に生成します
- バージョン情報がない場合は
package.jsonを参照します - ドキュメントのパスをカスタマイズできます
- キーワードでファイルを検索し、優先順位を自動調整するあいまい検索機能を備えています
2 つの使用モード
この MCP サーバーには、次の 2 つの使用モードがあります。
-
ドキュメント読み取りモード(
read-docs-{name}):nameとgit-repo-pathの両方が指定されている場合、指定されたリポジトリのドキュメントリーダーとして機能し、ドキュメントにアクセスするツールを生成します。 -
ドキュメント作成モード(
create-read-docs):リポジトリ情報が指定されていない場合、ドキュメント構造を作成するためのガイドとして機能し、ドキュメントファイルの設定方法を案内します。
設定
MCP では、次のコマンドライン引数を使用できます。
--name:パッケージ/ライブラリの名前(ドキュメント読み取りモードでは必須)--git-repo-path:Git リポジトリのパス(http または ssh)(ドキュメント読み取りモードでは必須)- 指定しない場合、MCP サーバーは構築手順のみを提供します
--personal-token:Git 認証用の個人アクセストークン(任意)- プライベートリポジトリの場合に推奨します
- GitHub、GitLab、Bitbucket、および汎用的な Git ホスティングに対応します
--branch:ドキュメントを読み込むブランチ- デフォルト:
main
- デフォルト:
--docs-path:ドキュメントフォルダーのパス- デフォルト:
docs
- デフォルト:
--clone-location:Git リポジトリをクローンするパス- デフォルト:{os home directory}/.temp-repo
--mode:MCP サーバーの動作モード- 選択肢:
normal(デフォルト)、two-step - 詳細は動作モードのセクションをご覧ください
- 選択肢:
--include-src:ソースコードの読み取り機能を有効にします(任意)trueに設定すると、リポジトリのソースファイルを読み取れるようになります- デフォルト:
false - 有効にすると、実装の詳細を確認するためのソースコードファイル読み取りツールが追加されます
Git 認証に関する重要な注意事項
この MCP では、対象の Git リポジトリを直接クローンする必要があります。このツールを使用する前に、リポジトリへの適切なアクセス権があることを確認してください。プライベートリポジトリの場合は、次の認証方法を利用できます。
- 個人アクセストークンを使用(推奨):
--personal-token引数を使用して、個人アクセストークンを渡します。これは最も信頼性の高い方法で、主要な Git ホスティングプロバイダーすべてで利用できます。 - SSH キー:SSH URL を使用する場合は、ローカルマシンで SSH キーを設定します
- Git 認証情報の保存:HTTPS URL を使用する場合は、マシンで Git 認証情報の保存を設定します
個人アクセストークンの使用:
# With HTTPS URL
npx -y read-docs-mcp --name=MyDocs --git-repo-path=https://github.com/user/private-repo --personal-token=your_personal_access_token_here
# With SSH URL (automatically converted to HTTPS)
npx -y read-docs-mcp --name=MyDocs [email protected]:frontend/private-repo.git --personal-token=your_personal_access_token_here
MCP は HTTPS URL と SSH URL の両方で個人アクセストークンに対応しています。
HTTPS URL:
- GitHub:HTTPS URL にトークンを直接使用します
- GitLab(セルフホストを含む):トークンを OAuth2 形式で使用します
- Bitbucket:トークン認証形式を使用します
- 汎用 Git ホスティング:OAuth2 形式(GitLab 形式)を使用します
SSH URL: 個人トークンが指定されている場合、SSH URL は適切な認証を使用する HTTPS に自動変換されます。
- SSH:
[email protected]:frontend/repo.git - HTTPS:
https://oauth2:[email protected]/frontend/repo.git
適切な認証がない場合、MCP はプライベートリポジトリのクローンに失敗します。
動作モード
--mode 引数を使用して、MCP サーバーの起動時に異なるモードを指定できます。
通常モード(デフォルト)
npx -y read-docs-mcp --name=MyDocs --git-repo-path=https://github.com/user/repo
# or explicitly:
npx -y read-docs-mcp --name=MyDocs --git-repo-path=https://github.com/user/repo --mode=normal
通常モードでは、サーバーはモジュールごとに各操作のツールを個別に作成します(例:get-hooks-list、get-hooks-details、get-components-list など)。
2ステップモード
npx -y read-docs-mcp --name=MyDocs --git-repo-path=https://github.com/user/repo --mode=two-step
2ステップモードでは、モジュールごとに個別のツールを作成する代わりに、サーバーは次の5つの汎用ツールを作成します。
- get-overview - プロジェクトの概要を取得します(通常モードと同じです)
- get-overall-list - 利用可能なすべてのモジュールの一覧を取得します
- get-module-overview - 特定のモジュールの概要を取得します(パラメーターとしてモジュール名を指定します)
- get-module-list - 特定のモジュール内の項目一覧を取得します(パラメーターとしてモジュール名を指定します)
- get-module-detail - モジュール内の特定の項目の詳細を取得します(パラメーターとしてモジュール名と項目名を指定します)
この方法では、多数のモジュールがある場合にツールの総数を大幅に減らせるため、MCP サーバーの効率が上がり、管理も容易になります。
Cursor でのセットアップ
Cursor でこの MCP を使用するには、次の設定を Cursor の設定に追加します。
ドキュメント読み取りモード(Mac/Linux)
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName"
]
}
}
}
ソースへのアクセスを含むドキュメント読み取りモード(Mac/Linux)
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName",
"--include-src=true"
]
}
}
}
ドキュメント作成モード(Mac/Linux)
{
"mcpServers": {
"create-read-docs": {
"command": "npx",
"args": ["-y", "read-docs-mcp"]
}
}
}
ドキュメント読み取りモード(Windows)
{
"mcpServers": {
"read-docs-{name}": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName"
]
}
}
}
ソースへのアクセスを含むドキュメント読み取りモード(Windows)
{
"mcpServers": {
"read-docs-{name}": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName",
"--include-src=true"
]
}
}
}
ドキュメント作成モード(Windows)
{
"mcpServers": {
"create-read-docs": {
"command": "cmd",
"args": ["/c", "npx", "-y", "read-docs-mcp"]
}
}
}
カスタムドキュメントパス
カスタムのドキュメントディレクトリを指定する場合:
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName",
"--docs-path=documentation"
]
}
}
}
2ステップモードの設定
大量のドキュメントをより効率的に扱うため、2ステップモードを使用する場合:
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/repo",
"--name=YourLibName",
"--mode=two-step"
]
}
}
}
個人用トークンを使用したプライベートリポジトリ
個人用アクセストークンを使用してプライベートリポジトリにアクセスする場合:
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"--git-repo-path=https://github.com/user/private-repo",
"--name=YourLibName",
"--personal-token=your_personal_access_token_here"
]
}
}
}
SSH URL を使用したセルフホスト GitLab
SSH URL を使用してセルフホストの GitLab インスタンスに接続する場合:
{
"mcpServers": {
"read-docs-{name}": {
"command": "npx",
"args": [
"-y",
"read-docs-mcp",
"[email protected]:some-group/your-repo.git",
"--name=YourLibName",
"--personal-token=your_gitlab_access_token_here"
]
}
}
}
セキュリティに関する注意:個人用アクセストークンは安全に保管してください。設定にトークンを直接記述するのではなく、環境変数を使用することを検討してください。
ドキュメントの構成
MCP サーバーは、ドキュメント読み取りモードで次の構成を想定しています。
repository/
├── docs/ (configurable)
│ ├── read-docs-mcp.json
│ ├── hooks/
│ │ ├── read-module-docs-mcp.json
│ │ ├── list.md
│ │ ├── overview.md
│ │ ├── use-state.md
│ │ └── ...
│ ├── components/
│ │ ├── read-module-docs-mcp.json
│ │ └── ...
│ └── ...
└── package.json
メイン設定:read-docs-mcp.json
{
"name": "SomeLibrary",
"description": "A library for some purpose",
"version": "1.0.1",
"moduleList": ["hooks", "components", "directives", "utils"],
"fileName": "overview.md",
"moduleFolderNamingPattern": "kebab"
}
name、description:MCP サーバーの構築に使用されますversion:指定されていない場合は、package.json のバージョンが使用されます。それもない場合は、デフォルトで "0.1.0" になりますmoduleList:ドキュメントモジュールの一覧です。指定されていない場合は、docs ディレクトリ内のすべてのフォルダーが使用されますfileName:概要に使用するファイルです。指定されていない場合は、デフォルトで "overview.md" になりますmoduleFolderNamingPattern:モジュールフォルダーの命名パターンです。"kebab"、"camel"、"snake"、"pascal"、"original" のいずれかを指定できます。デフォルトは "kebab" です
命名パターンのルール
モジュールフォルダーと詳細ファイルでは、次の命名パターンを使用できます。
-
kebab-case(デフォルト):単語は小文字で、ハイフンで区切ります
- 例:"form-control"、"use-state"、"data-table"
-
camelCase:最初の単語は小文字で、それ以降の単語は区切り文字なしで先頭を大文字にします
- 例:"formControl"、"useState"、"dataTable"
-
snake_case:単語は小文字で、アンダースコアで区切ります
- 例:"form_control"、"use_state"、"data_table"
-
PascalCase:各単語の先頭を大文字にし、区切り文字は使用しません
- 例:"FormControl"、"UseState"、"DataTable"
-
original:moduleList で指定された名前を変換せず、そのまま使用します
- 例:moduleList 内の名前は、ディレクトリ名としてそのまま使用されます
モジュール設定:read-module-docs-mcp.json
{
"get-all": {
"name": "get-hook-list",
"description": "Get a list of hooks",
"fileName": "list.md"
},
"get-details": {
"name": "get-hook-details",
"description": "Get details of a hook",
"paramDescription": "A hook name",
"namingPattern": "kebab"
},
"get-overview": {
"name": "get-hook-overview",
"description": "Get an overview of the hook module",
"fileName": "overview.md"
}
}
エージェントとの連携
ドキュメント読み取りモードの使用
リポジトリを指定して MCP サーバーをセットアップすると、ドキュメントの確認に使用できます。
Using the read-docs-{YourLibName} MCP, I'd like to explore the documentation for {YourLibName}. Can you:
1. Get an overview of the available modules
2. Show me the list of hooks available
3. Provide details on a specific hook
4. Give me an overview of the components module
ドキュメント作成モードの使用
リポジトリを指定せずに MCP サーバーを使用すると、ドキュメントの作成を依頼できます。
Using the create-read-docs MCP, I need to create documentation for my library that can be used with read-docs-mcp.
Can you help me set up the required structure and files?
ドキュメント読み取りモードでのプロンプト例
パッケージのドキュメントを確認する
Using the read-docs-{PackageName} MCP, I'd like to explore the documentation for [Package Name]. Can you:
1. Get an overview of the available modules
2. Show me the list of hooks available
3. Provide details on the useAuth hook
4. Give me an overview of the components module
I'm particularly interested in understanding how authentication works in this library.
コンポーネントの使い方を学ぶ
Using the read-docs-{PackageName} MCP, I need to implement a form with validation using the [Package Name] library. Please:
1. Show me the available components
2. Get details on the Form component
3. Get details on the Input component
4. Explain how to use form validation with these components
If there are any code examples in the documentation, please highlight those.
あいまい検索でドキュメントを見つける
Using the read-docs-{PackageName} MCP, I'm looking for documentation about authentication in the library. Can you:
1. Use fuzzy search to find all files related to "auth"
2. Based on the search results, get the details for the most relevant authentication documentation
3. Show me how to implement authentication using the library
The fuzzy search should help us quickly locate the relevant documentation files.
実装の詳細を確認するためにソースコードを読む
Using the read-docs-{PackageName} MCP (configured with --include-src=true), I need to understand how the useAuth hook is implemented. Please:
1. First, get the documentation details for the useAuth hook
2. Based on the documentation, read the source code file for useAuth to understand the implementation
3. Explain how the authentication flow works based on both the documentation and source code
Remember to prioritize the documentation first, then use source code only for additional implementation details.
ドキュメント作成モードでのプロンプト例
Using the create-read-docs MCP, I need to set up documentation for my React component library. Can you help me create the folder structure and necessary configuration files?
Using the create-read-docs MCP, I've started creating documentation for my utility functions. How should I structure the detailed documentation for individual utility functions?
ツール
ドキュメント読み取りモードのツール
MCP は、ドキュメントの構造と動作モードに基づいてツールを動的に生成します。複数の read-docs-mcp インスタンスを使用する際の競合を避けるため、すべてのツールにはパッケージ名がプレフィックスとして付与されます。
通常モードのツール
通常モードでは、moduleList 内の各モジュールについて、最大 3 つのツールに加え、オプションでソースファイルを読み取るツールが生成されます。
{name}-get-[module]-list
モジュール内のすべての項目の一覧を取得します。
パラメーター:
- なし
戻り値:
- 一覧ファイルの内容(デフォルト:
list.md)
{name}-get-[module]-details
モジュール内の特定の項目の詳細を取得します。
パラメーター:
name(string):詳細を取得する項目の名前
戻り値:
namingPatternに従って命名された詳細ファイルの内容(デフォルトは kebab-case)
{name}-get-[module]-overview
モジュールの概要を取得します。
パラメーター:
- なし
戻り値:
- 概要ファイルの内容(デフォルト:
overview.md)
{name}-fuzzy-search
インテリジェントな優先順位付けを行い、キーワードでファイルを検索します。
パラメーター:
keyword(string):ファイル名と内容から検索するキーワード
戻り値:
- 以下の優先順位で一致したファイルの整形済みリスト:
- ファイル名の完全一致
- ファイル名の部分一致
- ファイル内容の完全一致
- ファイル内容の部分一致
結果は次の形式で整形されます。
type: module
name: someModule
または
type: detail
name: someDetail
module: someModule
2 ステップモードのツール
2 ステップモードでは、MCP は各モジュール用の個別ツールの代わりに 5 つの汎用ツールを生成します。加えて、オプションでソースファイルを読み取るツールが生成されます。
{name}-get-overview
プロジェクトの概要を取得します。
パラメーター:
- なし
戻り値:
- メインの概要ファイルの内容
{name}-get-overall-list
利用可能なすべてのモジュールの一覧を取得します。
パラメーター:
- なし
戻り値:
- ドキュメントで利用可能なすべてのモジュールの一覧
{name}-get-module-overview
特定のモジュールの概要を取得します。
パラメーター:
module(string):モジュールの名前
戻り値:
- モジュールの概要ファイルの内容
{name}-get-module-list
特定のモジュール内の項目の一覧を取得します。
パラメーター:
module(string):モジュールの名前
戻り値:
- モジュールの一覧ファイルの内容
{name}-get-module-detail
モジュール内の特定の項目の詳細を取得します。
パラメーター:
module(string):モジュールの名前name(string):詳細を取得する項目の名前
戻り値:
- 項目の詳細ファイルの内容
{name}-fuzzy-search
インテリジェントな優先順位付けを行い、キーワードでファイルを検索します。
パラメーター:
keyword(string):ファイル名と内容から検索するキーワード
戻り値:
- 上記の「通常モード」セクションで説明した優先順位と形式で整形された、一致するファイルのリスト
{name}-read-source-file
ソースコードファイルの内容を読み取ります。注:このツールは、サーバーの初期化時に --include-src=true パラメーターが使用された場合にのみ利用できます。
パラメーター:
filePath(string):プロジェクトリポジトリ内のソースファイルへの相対パス(例:'src/components/Button.tsx'、'lib/utils.js')
戻り値:
- プロジェクトディレクトリ内にアクセスを制限するセキュリティチェックを行ったうえでの、ソースファイルの内容
**重要:**このツールは、まずドキュメントを確認してから使用してください。主な情報源としてドキュメントを使用してください。ドキュメントに記載されていない追加の実装詳細や例が必要な場合にのみ、ソースコードを読み取ってください。
ドキュメント作成モードのツール
MCP は、ドキュメント作成を支援する単一のツールを提供します。
get-create-docs-instructions
ドキュメントの構造を作成するための詳細な手順を取得します。
パラメーター:
- なし
戻り値:
- ドキュメントファイルと構造の設定に関する詳細な手順
ドキュメント読み取りモード用のドキュメントの作成
ドキュメント構造は手動で作成することも、ドキュメント作成モードを使って手順に沿って作成することもできます。ドキュメント読み取りモードからアクセスできるドキュメントを作成するには、以下の手順に従ってください。
ステップ 1:メイン設定ファイルを作成する
ドキュメントディレクトリに read-docs-mcp.json ファイルを作成します。
{
"name": "YourLibrary",
"description": "Description of your library",
"version": "1.0.0",
"moduleList": ["hooks", "components", "utils"],
"moduleFolderNamingPattern": "kebab"
}
moduleFolderNamingPattern は、モジュールフォルダー名の変換方法を指定します。たとえば、moduleList に ["FormControl", "useHooks"] が含まれていて、「kebab」パターンを選択した場合、フォルダーは form-control/ と use-hooks/ として作成されます。
ステップ 2:モジュールディレクトリと設定を作成する
各モジュールについて、ディレクトリと read-module-docs-mcp.json ファイルを作成します。
{
"get-all": {
"name": "get-component-list",
"description": "Get a list of components",
"fileName": "list.md"
},
"get-details": {
"name": "get-component-details",
"description": "Get details of a component",
"paramDescription": "A component name",
"namingPattern": "kebab"
},
"get-overview": {
"name": "get-component-overview",
"description": "Get an overview of components",
"fileName": "overview.md"
}
}
注: 生成される実際のツール名には、パッケージ名が先頭に付加されます。たとえば、パッケージ名が「MyLibrary」の場合、ツール名は MyLibrary-get-component-list、MyLibrary-get-component-details などになります。
ステップ 3:ドキュメントファイルを作成する
必要な Markdown ファイルを作成します。
list.md- モジュール内のすべての項目の一覧overview.md- モジュールの概要- 個別の詳細ファイル(例:
button.md、input.mdなど)
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。