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 集成