docs.rsの検索に特化したMCPサーバー『docs.rs MCP』を公開しました!
これを追加した状態でAIに「〇〇に最適なクレートを探して」「〇〇クレートの〇〇の使い方を教えて」などの指示を出すと、適切なページを検索してその結果を取得してくれます。
上はwasmtimeクレートのEngine
型について検索させている例です。かなりいい感じの回答が返ってきているのではないでしょうか。
毎度新しいクレートを使う度にドキュメントを探しに行くのが面倒だったので、その辺りを雑にAIに聞くだけで答えてくれるようになったのは嬉しいところです。また、ちゃんと最新のドキュメントから情報を取ってきてくれるので、更新によってAPIが変わった場合などにも対応することができます。
使い方
とりあえずREADMEのセットアップ手順に沿って追加してもらえれば動きます。READMEではVSCode、Cursor、Claude Codeの手順が書いてありますが、MCPに対応したツールであればなんでもOKです。
npmで配布しているため、npx @nuskey8/docs-rs-mcp -y
で起動できます。
機能
docs.rs MCPは以下の4つのツールを提供しています。
ツール | 説明 |
---|---|
docs_rs_search_crates |
キーワードからクレートの検索を行います。 |
docs_rs_readme |
指定されたクレートの内容のREADME/概要を取得します. |
docs_rs_get_item |
クレート内の特定のアイテム(モジュール、構造体、トレイト、列挙型、関数など)のドキュメントを取得します。 |
docs_rs_search_in_crate |
クレート内のall.htmlページから、トレイト、構造体、メソッドなどを検索します。 |
「〇〇を調べて」のような指示を雑に出すと、まずはdocs_rs_search_in_crate
でクレート内検索を行い、見つかったらdocs_rs_get_item
で詳細な情報を取得し、それを元にユーザーに回答を返す、といった動作になることが多いです。
調べるものが決まっている場合は明確に「wasmtime::Engine
構造体について調べて」のように指示すると直接docs_rs_get_item
を叩いてくれます。APIの詳細やサンプルコードが欲しければ、それもプロンプトに含めてあげると良いでしょう。
内部実装
docs.rsは特に検索のためのAPIなどは用意してくれていないため、docs.rs MCPでは直接ドキュメントページのHTMLを解析してデータを取ってきています。
Web検索自体は大抵のAIエージェントに組み込みで用意されていますが、そのままでは欲しい情報をピンポイントで見つけるのは難しいため、MCP側でdocs.rsのルールに沿った適切なページへアクセスするようにしています。現状のAIは検索して情報を取得するという行為があまり得意ではないので、そこをMCPで補助してあげるわけですね。
また、HTMLは直接AI側に渡すには無駄な情報が多いため、turndownを用いて一度Markdownに変換してから渡すようにしています。
これがあるとないとで回答の精度が結構変わる(気がする)ので、渡す情報を適切に構造化してあげるのは大事なのかなーという感じです。
まとめ
以上、docs.rs MCPの紹介でした。まあ地味っちゃ地味ですが、一度有効化しておくと結構いい感じに使ってくれるので、とりあえず追加しておこうという気になるくらいの出来にはなっています。特にマイナーなクレートや新しいクレートなどをAIに書かせるときに役に立ってくれるんじゃないかな、と。
というわけでdocs.rs MCP、ぜひぜひ使ってみてください〜!
Views: 0