Rust MCP Preflight について
Rust MCP Preflight は、Registry への登録を準備する Rust MCP サーバーの公開者向け検証ツールです。公開前に README のマーカー、`server.json`、サーバー名の規則を確認でき、ターミナル、CI、MCP クライアントから利用できます。
主な機能
- 01crates.io README マーカーの確認
- 02`server.json` 公開規則の検証
- 03名前と名前空間ログイン要件の確認
- 04Registry の既存登録状況を報告
- 05CLI、CI、MCP での利用
活用シーン
- 01公開前の Registry 登録内容の検証
- 02README マーカーの書式ミスの検出
- 03CI でのパッケージメタデータ確認
- 04サーバー名の名前空間要件の確認
MCP 対応
MCP クライアント向けに、登録要件を検証する `preflight`、`check_server_json`、`check_readme`、`check_name` ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Rust MCP Preflight
MCP Registryへの掲載を、公開する前に確認します。
mcp-publisher validate は server.json の形式を確認します。しかし、レジストリがパッケージを受け入れるかどうかは確認しません。確認できるのは mcp-publisher publish の実行時ですが、その時点ではすでにクレートのバージョンが crates.io に公開されており、変更できません。Rust MCP Preflight は、これらのチェックを先に実行します。
- READMEの行。 指定したクレートのバージョンについて、crates.io が提供するREADMEを取得し、
mcp-name: <your server name>を探します。レジストリと同じ方法で照合します(レジストリ独自のバリデーターから移植)。HTMLコメント内に隠れた行(crates.io はコメントを削除します)、次の単語とつながった行、大文字・小文字が間違っているなどの惜しい不一致を検出します。 - server.json。
mcp-publisher publishが適用するルールを確認します。$schema、サーバー名、各パッケージの正確なバージョン(latestや範囲指定は不可)、トランスポート、識別子にスペースがないことを確認します。cargoパッケージの場合は、クレートのバージョン、fileSha256がないこと、registryBaseUrlも確認します。また、runtimeHint、バージョンの不一致、mcp-publisher initのプレースホルダーが残っている場合は警告します。 - サーバー名。 公開ルール、すでに掲載されているかどうか、名前空間に必要なログイン方法を確認します(現時点では
login githubから公開できないGitHub組織も含みます)。
読み取り先は、crates.io、公式レジストリ、GitHubユーザーAPIのみです。何も公開せず、キーも必要ありません。
インストール
cargo install rust-mcp-preflight
初回インストールではソースからコンパイルするため、数分かかります。
ターミナルまたはCIから使う
rust-mcp-preflight server.json
チェックごとに1行を出力します。問題がなければ終了コードは0、失敗があれば1、ファイルを読み取れない場合は2です。
Preflight: server.json
PASS name "io.github.VoidNullable/lific" is a valid server name
PASS packages[0]: cargo crate "lific"
WARN VoidNullable is a GitHub organization: `mcp-publisher login github` can't publish to org namespaces yet (registry #1468). ...
INFO already listed: latest 2.11.1 (active). Your next publish needs a new version number
PASS README of lific 2.11.1 on crates.io contains `mcp-name: io.github.VoidNullable/lific`
Ready: no failures, 1 warning(s).
MCPクライアントから使う
claude mcp add preflight -- rust-mcp-preflight
{ "mcpServers": { "preflight": { "command": "rust-mcp-preflight" } } }
| ツール | チェック内容 |
|---|---|
preflight | server.json のテキストを基に、以下のすべてを確認 |
check_server_json | 公開ルール(オフライン) |
check_readme | crates.ioにある、指定したクレートバージョンのREADME内の mcp-name: 行 |
check_name | 名前の公開ルール、掲載状況、名前空間のログイン |
FAILを含む結果では isError が設定されます。CLIの終了コード1と同じく、チェックは実行されましたが、掲載の準備ができていないことを示します。
適用の流れ
手順は、cargo publish(READMEに該当の行を入れて実行)、rust-mcp-preflight server.json、mcp-publisher login github、mcp-publisher publish の順です。
詳しい手順はこちらをご覧ください:公式MCP RegistryへのRust MCPサーバーの掲載。
READMEのチェックとcrates.ioのルールはcargoパッケージ向けです。その他のパッケージ形式(npm、PyPI、mcpbなど)には共通ルールが適用され、各レジストリ独自のチェックは未実行として表示されます。
crates.ioまたはREADMEにアクセスできない場合、READMEは未チェックとして扱われ、結果は失敗になります。そのため、READMEを確認できていない状態でCIが成功することはありません。
掲載済みで、稼働中ですか?掲載情報だけでなく、サーバー全体の無料レポートをご利用ください:wolfejam.dev/#worth-it
リンク
- リポジトリ:https://github.com/Wolfe-Jam/rust-mcp-preflight
mcp-name: io.github.Wolfe-Jam/rust-mcp-preflight
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。