rtfmbro-mcp について
rtfmbro-mcp は、コーディングエージェントにプロジェクトが使用している正確なパッケージバージョンのドキュメントを提供する MCP サーバーです。対応する git タグの GitHub リポジトリから直接ドキュメントを取得し、正確で最新の API 情報を必要とする開発者を想定しています。context7 の代替となる位置づけです。
主な機能
- 01lockfile に記載された正確なバージョンのドキュメント取得
- 02PyPI と npm に対応、Swift はアルファ版
- 03SHA ベースのキャッシュ最新性チェック
- 04README、ドキュメントツリー、ファイル読み取りのツール
- 05リモート HTTP サーバーとして利用可能
活用シーン
- 01コーディングエージェントによる旧バージョンのライブラリ文書の参照
- 02古い学習データへの依存を減らしたコード作成
- 03node_modules などのソース閲覧によるトークン消費の抑制
MCP 対応
本プロジェクトは MCP サーバーであり、get_readme、get_documentation_tree、read_files、search_github_repositories の 4 つのツールを MCP クライアントに公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://rtfmbro.smolosoft.dev/mcp/claude mcp add --transport http rtfmbro https://rtfmbro.smolosoft.dev/mcp/{"mcpServers":{"rtfmbro":{"type":"http","url":"https://rtfmbro.smolosoft.dev/mcp/"}}}Cursor で開く{"servers":{"rtfmbro":{"type":"http","url":"https://rtfmbro.smolosoft.dev/mcp/"}}}VS Code で開く{"mcpServers":{"rtfmbro":{"type":"http","url":"https://rtfmbro.smolosoft.dev/mcp/"}}}{"mcpServers":{"rtfmbro":{"serverUrl":"https://rtfmbro.smolosoft.dev/mcp/"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
rtfmbro-mcp
rtfmbro は、コーディングエージェントにコンテキストとして、常に最新のバージョン固有のパッケージドキュメントを提供します。context7 の代替です。
https://github.com/user-attachments/assets/dbe0b3b4-a42c-4e91-8bcd-a94d430ef0b8
rtfmbro の使用例です。Flask の特定のバージョン(3.1.1)のREADMEとドキュメントを取得しています。
概要
rtfmbro は、複数のエコシステムにわたるパッケージのドキュメントをリアルタイムで、バージョンを考慮して取得する Model Context Protocol(MCP)サーバーです。プロジェクトで使用している正確なバージョンのドキュメントを GitHub リポジトリから直接取得し、AI エージェントと正確で最新のパッケージドキュメントの間をつなぎます。
対応エコシステム
| エコシステム | レジストリ | ステータス |
|---|---|---|
| Python | PyPI | ✅ 完全対応 |
| Node.js | npm | ✅ 完全対応 |
| Swift | SPM | 🚧 アルファ版 |
| GitHub | 直接 | ⚠️ フォールバック |
rtfmbro を選ぶ理由
問題点
- 古いドキュメント:AI モデルは、パッケージについての古い学習データに頼ることがよくあります
- コンテキストの不足:
node_modulesなどにあるソースコードには高レベルのドキュメントがなく、その閲覧は通常、トークンを消費し、非効率です - バージョンの不一致:汎用的なドキュメントは、特にレガシープロジェクトや新しいパッケージでは、使用中の特定のパッケージバージョンと一致しません
解決策
rtfmbro は、次の方法でこれらの問題を解決します。
- バージョンを正確に指定して取得:ロックファイルに一致する正確な Git タグ/コミットからドキュメントを取得します
- 包括的なカバレッジ:リポジトリからすべてのドキュメントファイル(
.md、.mdx、.txt、.rst、.html)を抽出します - インテリジェントなキャッシュ:SHA ベースの鮮度チェックにより、不要な再取得を行わずにドキュメントを最新の状態に保ちます
- エージェントとの連携:Model Context Protocol を通じて、AI コーディングアシスタントとシームレスに連携します
- 優れた DX:開発者によるセットアップは不要です。MCP 設定にサーバーと指示を追加すれば、ドキュメントを取得できます
MCP ツール
このサーバーは、AI エージェントに次の 4 つの主要なツールを提供します。
| ツール | 用途 | パラメーター | 戻り値 |
|---|---|---|---|
get_readme | 特定のパッケージバージョンの README ファイルを取得して返します | package、version、ecosystem | 文字列形式の README コンテンツ |
get_documentation_tree | すべてのドキュメントファイルを含む包括的なフォルダー構造を生成します | package、version、ecosystem | 文字列形式のツリー構造 |
read_files | 行範囲を指定して切り出すこともできる、特定のドキュメントファイルを読み取ります | package、version、ecosystem、requests[] | パスとコンテンツを対応付けた辞書 |
search_github_repositories | GitHub Search API を使用して GitHub リポジトリを検索します | query、sort、order、per_page | 書式設定されたリポジトリ検索結果 |
インストールとセットアップ
クイックスタート
Claude Code
claude mcp add-json rtfmbro '{ "type": "http", "url": "https://rtfmbro.smolosoft.dev/mcp/" }'
Claude Desktop/VS Code など
リモートサーバーを MCP 設定に追加します。
{
"rtfmbro": {
"type": "http",
"url": "https://rtfmbro.smolosoft.dev/mcp/"
}
}
Cursor
エージェントとの連携
rtfmbro を選択した AI コーディングエージェントと適切に連携させるには、プロジェクトに適切なメタ指示ファイルをコピーします。
- GitHub Copilot:プロジェクトに
.github/copilot-instructions.mdをコピーします - Claude Code:プロジェクトのルートに
CLAUDE.mdをコピーします - Cursor:プロジェクトのルートに
.cursor/rulesをコピーします - その他のエージェント:上記いずれかのファイルの指示を、使用するエージェントの形式に合わせて調整します
仕組み
ドキュメントのワークフロー
- レジストリの検索:パッケージレジストリ(PyPI、npm など)にクエリを送信し、メタデータを取得します
- GitHub の特定:パッケージのメタデータから GitHub リポジトリの URL を抽出します
- バージョンの解決:利用可能な git タグを取得し、セマンティックバージョンと照合します
- スマートな取得:完全に一致したタグ/コミットでリポジトリをクローンします
- コンテンツのフィルタリング:ドキュメントファイルのみを抽出し、ソースコードとビルド成果物を除外します
- キャッシュと最新性の確認:効率よく再アクセスできるよう、SHA ベースの最新性チェックとともに結果を保存します
キャッシュ戦略
- SHA ベースの検証:現在のリポジトリのコミット SHA とキャッシュ済みのバージョンを比較します
- 自動無効化:新しいコミットが検出されると、ドキュメントを再取得します
- 永続ストレージ:重複する GitHub API 呼び出しを避けるため、ローカルキャッシュを保持します
- メタデータの保持:すばやく閲覧できるよう、ドキュメントのツリー構造を保存します
前提条件
- パッケージがサポート対象のレジストリ(PyPI、npm)に公開されていること
- パッケージのメタデータに有効な GitHub リポジトリへのリンクが含まれていること
- リポジトリでバージョン管理に git タグが使用されていること
- リポジトリ内にドキュメントファイルが存在すること(生成済みのサイトだけではないこと)
ロードマップ
短期
- エコシステムに依存しないフォールバック:サポート対象外のエコシステム向けにフォールバックの仕組みを実装する
- rtfmbro のソースコードを公開:サーバーのコードベースをオープンソース化する
- パブリック Docker イメージ:簡単にデプロイできるパブリック Docker イメージを作成する
- プライベートリポジトリのサポート:認証を通じてプライベートリポジトリにアクセスできるようにする
- テストの追加:コア機能向けの単体テストと統合テストを実装する
- Python サポートの強化:pydocs と docstring の抽出を含める
- 検索機能:ドキュメントコーパス全体を検索する
今後対応するエコシステム/言語/レジストリ
- Rust(crates.io)
- Go(pkg.go.dev)
- Java/Kotlin(Maven Central)
- C#/.NET(NuGet)
- Ruby(RubyGems)
ソースコードのホスティングとリポジトリのサポート:
- GitHub:GitHub リポジトリをサポート
- Gitlab:GitLab リポジトリをサポート
- Bitbucket:Bitbucket リポジトリをサポート
- Launchpad:Launchpad リポジトリをサポート
既知の問題
- 一部のパッケージでは、ドキュメントが独立した別のリポジトリにある場合があります
- 大規模なリポジトリは、初回のクローンと処理に少し時間がかかる場合があります
類似/補完プロジェクト
- mcp-package-docs:パッケージドキュメント向けの別の MCP サーバーです。ドキュメントの抽出や LSP サーバーなどに重点を置いており、rtfmbro の優れた補完ツールとなる可能性があります。
- rust-docs-mcp-server:Rust のドキュメント向け MCP サーバーです。Rust 固有の機能やドキュメント形式に重点を置いています。
- mcp-ragdocs:RAG(検索拡張生成)のドキュメント向け MCP サーバーです。AI モデルのドキュメント利用体験の向上を目的としています。
- godoc-mcp:Go のドキュメント向け MCP サーバーです。Model Context Protocol を通じて Go パッケージのドキュメントにアクセスできます。
- context7:rtfmbro の代替ツールです
context7 と rtfmbro の違い
| 項目 | context7 | rtfmbro |
|---|---|---|
| 情報の鮮度 | ドキュメントを不透明な間隔で、またはユーザーの操作に応じて事前にスクレイピングします。執筆時点で、「最新」の Next.js ドキュメントはすでに2日前のものです。 | ドキュメントを必要なときに取得するため、常に最新の状態を保てます。 |
| バージョン固有のドキュメント | 理論上は古いバージョンのスクレイピングも可能です(レガシープロジェクトや長期運用プロジェクトに有用)が、手順が複雑で、実用上は最新バージョンにほぼ限られます。 | 古いバージョンのドキュメントも必要なときに取得でき、常に最新のドキュメントと同じ状態を保てます。 |
| 検索戦略 | A)トークン数を任意に制限できる RAG 検索でドキュメントを絞り込み、前処理しますが、結果にはばらつきがあります。または B)すべてのコンテンツを LLM のコンテキストに読み込み、過剰なトークンを消費します。 | エージェントによる探索を採用しています(Claude Code 自身が使用している方式)。 |
| 開発者体験 | すべてのプロンプトで context7 に明示的に言及する必要があります。 | 定義済みのルールや指示に従って動作し、ロックファイルから適切なパッケージ名とバージョンを自動的に選択します(「設定したらそのまま」)。 |
| サポート | 言語やエコシステムに依存しません。 | 現時点では言語やエコシステムに特化しています。近いうちに、対応言語やエコシステムの追加、および言語に依存しないフォールバック機構を予定しています。 |
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。