mcpField
R
Rust MCP Preflight

Rust MCP Preflight

Local
github.com/Wolfe-JamDeveloper Tools0Updated 1d ago

About Rust MCP Preflight

Rust MCP Preflight is a validation tool for Rust MCP server publishers preparing a Registry listing. It checks the README marker, `server.json`, and server-name rules before publishing, and can run from a terminal, CI, or an MCP client.

Key features

  1. 01Checks the crates.io README marker
  2. 02Validates `server.json` publish rules
  3. 03Checks name validity and namespace login
  4. 04Reports existing Registry listings
  5. 05Supports CLI, CI, and MCP use

Use cases

  1. 01Validate a listing before publication
  2. 02Catch README marker formatting issues
  3. 03Check package metadata in CI
  4. 04Review server-name namespace requirements

MCP support

It offers MCP clients `preflight`, `check_server_json`, `check_readme`, and `check_name` tools for validating listing requirements.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository
Packages
cargorust-mcp-preflight0.1.3

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Rust MCP Preflight

Business card · Get yours →

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). 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).

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

Install

cargo install rust-mcp-preflight

The first install compiles from source and takes a few minutes.

Use it from a terminal or CI

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). ...
  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

claude mcp add preflight -- rust-mcp-preflight
{ "mcpServers": { "preflight": { "command": "rust-mcp-preflight" } } }
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.

Listed and live? Get a free report on the whole server, not just the listing: wolfejam.dev/#worth-it

Links

License

MIT


About wolfejam

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.