Rust MCP Preflight

io.github.Wolfe-Jam由 GitHub 帳號 Wolfe-Jam 發布v0.1.3更新於 Nov 7, 2026

Check an MCP Registry listing before you publish: README mcp-name line, server.json, name.

發布方自己的服務:Preflight

已驗證STDIO僅桌面開發者工具安全與監控

概覽

AI 產生的概覽

在發布前檢查 MCP Registry 項目:README 中的 mcp-name 行、server.json 的發布規則,以及伺服器名稱。

可以做什麼
  • 對 server.json 文字執行完整預檢
  • 離線依發布規則檢查 server.json,包括精確的套件版本、傳輸方式與識別碼格式
  • 檢查 crates.io 上某個 crate 版本 README 中的 mcp-name 行
  • 檢查伺服器名稱的發布規則、是否已被列出,以及需要哪種命名空間登入方式
  • 每項檢查輸出一行結果,標明通過、警告或失敗
適用情境
準備將 Rust MCP 伺服器發布到官方 MCP Registry 時使用,尤其是在 cargo publish 之後,以便在 crate 版本已固定、無法更改之前發現問題。也適合在 CI 中作為發布前的檢查關卡。
執行需求
本機以 stdio 執行的二進位程式,可透過 cargo binstall、cargo install 或預先編譯的發行檔安裝,並需位於 PATH 中。需要連線至 crates.io、官方登錄庫與 GitHub 使用者 API 的網路存取。不需要金鑰或帳號。
安裝前請注意
它只讀取遠端資料,不會發布任何內容。若無法連線至 crates.io 或 README,README 檢查會記為失敗,因此沒有網路時 CI 不會通過。README 與 crates.io 規則僅適用於 cargo 套件,其他套件類型只套用通用規則。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Rust MCP Preflight,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Rust MCP Preflight

Check an MCP Registry listing before you publish it.

mcp-publisher validate checks the shape of server.json. It doesn't check that the registry will accept your package: that only happens at mcp-publisher publish, after the crate version is already on crates.io and can't be changed. Rust MCP Preflight runs those checks first.

  • The README line. Fetches the README crates.io serves for the exact crate version and looks for mcp-name: <your server name>, matched the way the registry matches it (ported from the registry's own validator, internal/validators/registries/cargo.go; the registry's validators haven't changed since this port, checked 2026-11-06). Catches the line hidden in an HTML comment (crates.io strips comments), the line glued to the next word, and a near miss such as the wrong case.
  • server.json. The rules mcp-publisher publish applies: $schema, the server name, and for every package exact versions (no latest, no ranges), the transport and no spaces in the identifier. For cargo packages also the crate version, no fileSha256 and registryBaseUrl. Plus warnings for runtimeHint, mismatched versions, and placeholders left over from mcp-publisher init.
  • The server name. The rules publish applies, whether it's already listed, and which login its namespace needs (including GitHub organizations, which login github can't publish to yet, and the two ways that work: GitHub Actions OIDC or a token).

It only reads: crates.io, the official registry and the GitHub users API. It publishes nothing and needs no keys.

Install

Prebuilt, in seconds (needs cargo-binstall):

sh
cargo binstall rust-mcp-preflight

From source (compiles, a few minutes the first time):

sh
cargo install rust-mcp-preflight

Or download the binary for your platform from the release assets: Linux (x86_64, aarch64), macOS (Intel, Apple silicon) and Windows (x86_64), each with a .sha256 file. Prebuilt binaries start with 0.1.2; for an earlier version, cargo binstall falls back to QuickInstall or compiling from source.

Use it from a terminal or CI

sh
rust-mcp-preflight server.json

It prints one line per check. It exits 0 when ready, 1 if anything fails, and 2 if the file can't be read:

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). As an Owner of the organization, publish from GitHub Actions (`mcp-publisher login github-oidc`), or with a token: ...  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).

Use it from an MCP client

Run with no arguments, it serves MCP over stdio. Each client below starts it with the command rust-mcp-preflight, so the binary must be on your PATH (cargo binstall and cargo install put it in ~/.cargo/bin).

Claude Code

sh
claude mcp add preflight -- rust-mcp-preflight

goose (extensions): for one session,

sh
goose session --with-extension "rust-mcp-preflight"

or for every session, in ~/.config/goose/config.yaml:

yaml
extensions:  preflight:    name: preflight    cmd: rust-mcp-preflight    args: []    enabled: true    type: stdio    timeout: 300

VS Code (MCP configuration): adds it to your user profile,

sh
code --add-mcp '{"name":"preflight","type":"stdio","command":"rust-mcp-preflight"}'

or for one workspace, in .vscode/mcp.json:

json
{ "servers": { "preflight": { "type": "stdio", "command": "rust-mcp-preflight" } } }

Cursor (MCP): in ~/.cursor/mcp.json, or .cursor/mcp.json in a project:

json
{ "mcpServers": { "preflight": { "type": "stdio", "command": "rust-mcp-preflight" } } }

Any other client that runs a local MCP server: the same command, rust-mcp-preflight, over stdio.

ToolWhat it checks
preflightEverything below, from the text of server.json
check_server_jsonThe publish rules (offline)
check_readmeThe mcp-name: line in one crate version's README on crates.io
check_nameThe name's publish rules, listing and namespace login

A result with a FAIL has isError set, like the CLI's exit 1: the check ran, and the listing isn't ready.

Where it fits

The order is: cargo publish (with the line in the README), then rust-mcp-preflight server.json, then mcp-publisher login github and mcp-publisher publish.

The full walk-through: Listing a Rust MCP server in the official MCP Registry.

The README check and the crates.io rules are for cargo packages. Other package types (npm, PyPI, mcpb and so on) get the shared rules, and their registry's own checks are listed as not run.

If crates.io or the README can't be reached, the README counts as not checked and the result is a failure, so a CI run never passes on a README it didn't see.

Links

License

MIT


More about me and my work: wolfejam.dev/info

[Business card · Get yours →]

來源:README.md,提交 051eca4

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

3
  1. v0.1.3最新Nov 7, 2026
  2. v0.1.2Nov 4, 2026
  3. v0.1.1Nov 3, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Preflight 整合