
Rust MCP Preflight
io.github.Wolfe-JamPublished by GitHub account Wolfe-Jamv0.1.3Updated Nov 7, 2026
Check an MCP Registry listing before you publish: README mcp-name line, server.json, name.
The publisher's own server: Preflight
Overview
Checks an MCP Registry listing before publishing: the README mcp-name line, server.json publish rules and the server name.
- What you can do
- Run a full preflight on the text of a server.json file
- Check server.json against the publish rules offline, including exact package versions, transport and identifier format
- Check the mcp-name line in a specific crate version's README as served by crates.io
- Check the server name's publish rules, whether it is already listed, and which namespace login it needs
- Report one line per check with pass, warning or failure results
- When to use it
- Use it when preparing to publish a Rust MCP server to the official MCP Registry, especially after cargo publish, to catch problems before the crate version is fixed and cannot be changed. Also useful in CI to gate a publish step.
- Requirements
- A local binary run over stdio, installed with cargo binstall, cargo install, or a prebuilt release binary; it must be on your PATH. Network access to crates.io, the official registry and the GitHub users API. No keys or accounts are needed.
Installation
In SourceWeft
- Open Rust MCP Preflight in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
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 publishapplies:$schema, the server name, and for every package exact versions (nolatest, no ranges), the transport and no spaces in the identifier. For cargo packages also the crate version, nofileSha256andregistryBaseUrl. Plus warnings forruntimeHint, mismatched versions, and placeholders left over frommcp-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 githubcan'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):
From source (compiles, a few minutes the first time):
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
It prints one line per check. It exits 0 when ready, 1 if anything fails, and 2 if the file can't be read:
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
goose (extensions): for one session,
or for every session, in ~/.config/goose/config.yaml:
VS Code (MCP configuration): adds it to your user profile,
or for one workspace, in .vscode/mcp.json:
Cursor (MCP): in ~/.cursor/mcp.json, or .cursor/mcp.json in a project:
Any other client that runs a local MCP server: the same command, rust-mcp-preflight, over stdio.
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
- Repository: https://github.com/Wolfe-Jam/rust-mcp-preflight
mcp-name: io.github.Wolfe-Jam/rust-mcp-preflight
License
MIT
More about me and my work: wolfejam.dev/info
Source: README.md at commit 051eca4
Tools
0Version history
3- v0.1.3LatestNov 7, 2026
- v0.1.2Nov 4, 2026
- v0.1.1Nov 3, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Preflight integrations
Preflight
social.preflightOfficial publisher
Hosted social media scheduling server that lets an assistant draft, rule-check, schedule and publish posts to 12 networks.

SQLite rebuild copy-map preflight
Published by GitHub account showflexinc
Remote preflight service that checks the structure of SQLite table-rebuild copy maps before a rebuild is run.

Multipart row preflight
Published by GitHub account showflexinc
CSV row-structure inspection (inspect_parts) and manifest comparison (compare_manifest).

Tool-dialogue preflight
Published by GitHub account showflexinc
Tool-dialogue preflight's hosted MCP server; credential required; Streamable HTTP.

PayStage Trade Preflight
xyz.paystage
Local MCP server that checks a proposed Hyperliquid HIP-3 / trade.xyz order against your own TradePolicy and returns allow, review or do_not_trade.