mcpField
B
Bookworm

Bookworm

ローカル
github.com/dcdpr開発ツール483 週間前に更新

Bookworm について

Bookwormは、docs.rsのクレートドキュメントをダウンロード、索引化、検索するRust開発者向けツール集です。MCPサーバーを通じて、対応クライアントからクレート検索やドキュメントリソースを利用できます。

主な機能

  1. 01docs.rsのクレート文書のダウンロード
  2. 02SQLiteへの文書索引化
  3. 03クレートと項目の検索
  4. 04キャッシュ済み文書リソースの取得

活用シーン

  1. 01クレートとバージョン情報の確認
  2. 02関数、型、モジュールの検索
  3. 03ローカル索引を使った文書検索

MCP 対応

MCPサーバーは、クレート検索ツールとcrate://リソースをクライアントに公開し、メタデータ、README、項目、ソースリソースを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Bookworm

docs.rs のドキュメントを扱うためのツール集です。

Crates

wrm_dl

docs.rs からクレートのドキュメントをダウンロードし、ローカルディレクトリに保存します。

ライブラリとバイナリの両方が用意されています。次のコマンドでローカルで実行できます。

cargo run --bin wrm-dl --features cli -- regex
Documentation downloaded successfully to /tmp/...
wrm_index

ローカルに保存されたクレートのドキュメントを SQLite データベースにインデックス化します。

ライブラリとバイナリの両方が用意されています。次のコマンドでローカルで実行できます。

cargo run --bin wrm-index --features cli -- /tmp/...
Documentation indexed successfully to ./index.sqlite
wrm_query

ローカルに保存されたクレートのドキュメントとインデックスデータベースを使って、クレートのドキュメントを検索します。

wrm_docs

ローカルにキャッシュされた docs.rs ドキュメントから詳細を取得します。

wrm_mcp

クレートのドキュメントを提供する モデルコンテキストプロトコル サーバーです。

次のコマンドでローカルで実行できます。

cargo run --bin wrm-mcp

MCP クライアントへのサーバーの追加方法はクライアントによって異なりますが、次の例は Claude.ai で動作します。

{
  "mcpServers": {
    "bookworm": {
      "command": "/path/to/wrm-mcp"
    }
  }
}
ツール

MCP クライアント機能を備えた LLM で、次のツールを利用できます。

crates_search

指定したクエリに一致するクレートの一覧を取得します。

返される一覧には、各クレートの追加情報を取得するための URI が含まれます。

crate_search_items

指定したクエリに一致するアイテムの一覧を取得します。

各アイテムの種類には、次の情報が含まれます。

  • アイテムのパス(例:serde_json::value::Value)
  • アイテムの種類(例:enum)
  • 型シグネチャ
  • ドキュメント
  • 関連リソースの URI
crate_search_src (TODO)

指定したクエリについて、クレートのソースコード全体を検索します。

各アイテムには、ソースコードファイルの URI、行番号、一致した行の内容が含まれます。一致箇所の前後に追加のコンテキストがある場合は、その内容も含まれます。

crate_resource

クレートを見つけた場合(またはクレート名がわかっている場合)は、crate_resource ツールを使って関連リソースを取得できます。このツールには、リソースの URI を指定します。

次の URI がサポートされています。

  • crate://{crate_name} - クレートのバージョン一覧
  • crate://{crate_name}/{crate_version} - メタデータを取得
  • crate://{crate_name}/{crate_version}/readme - readme の内容を取得
  • crate://{crate_name}/{crate_version}/items - アイテムリソースの一覧
  • crate://{crate_name}/{crate_version}/src - ソースコードリソースの一覧
  • crate://{crate_name}/{crate_version}/{path} - アイテム/ソースリソースを取得
crate://{crate_name} - クレートのバージョン一覧

指定したクレート名のバージョン一覧を返します。

一覧の各アイテムには、次の情報が含まれます。

  • バージョン
  • リリース日
  • MSRV
  • ダウンロード数
  • 公開者
crate://{crate_name}/{crate_version} - クレートのメタデータを取得

次のメタデータが返されます。

  • 名前
  • バージョン
  • リリース日
  • 説明
  • ホームページ
  • リポジトリ
  • ライセンス
  • URI:
    • Readme(例:crate://serde_json/1.0.85/readme)
    • クレートアイテム(例:crate://serde_json/1.0.85/items)
    • ソースコード(例:crate://serde_json/1.0.85/src)
crate://{crate_name}/{crate_version}/readme - クレートの readme を取得

クレートの README を Markdown 形式の文字列として返します。

crate://{crate_name}/{crate_version}/items - クレートのアイテム一覧

指定したクレートのバージョンのアイテム一覧を返します。

アイテムはクレートを構成する要素です。アイテムには次の種類があります。

  • モジュール
  • 関数定義
  • 型定義
  • 構造体定義
  • 列挙型定義
  • トレイト定義
  • 実装

特定のアイテムを検索するには、search_crate_items を使用してください。

crate://{crate_name}/{crate_version}/src - クレートのソースコードリソース一覧

指定したクレートのバージョンのソースコードリソース一覧を返します。

例:

<Resources>
  <Resource uri="crate://serde_json/1.0.85/src/serde_json/lib.rs" />
  <Resource uri="crate://serde_json/1.0.85/src/serde_json/value.rs" />
  <Resource uri="crate://serde_json/1.0.85/src/serde_json/map.rs" />
  <Resource uri="crate://serde_json/1.0.85/src/serde_json/value/mod.rs" />
  ...
</Resources>

クレートのソースコード全体を検索するには、search_crate_src を使用してください。

crate://{crate_name}/{crate_version}/{crate_resource_path} - クレートリソースを取得

指定したパスにあるリソースの内容を返します。

URL テンプレート
  • {crate_name} はクレートの正確な名前です。
  • {crate_version} は(部分的な)セマンティックバージョニング互換のバージョン番号、または 最新の公開済みクレートバージョンを示す latest です。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。