mcpField
P
Passport

Passport

本地服务
matthiasmeyer.tech开发工具01 周前更新

关于 Passport

mcp-passport 是用于检查 MCP 服务是否符合 MCP Registry 发布要求的命令行验证器。它依据注册表架构检查 server.json,并与相关软件包清单比对字段,还可输出 SARIF 供 CI 使用。

主要功能

  1. 01依据注册表架构验证 server.json
  2. 02跨软件包清单检查字段
  3. 03提供问题及文档链接
  4. 04支持 SARIF 输出和 CI 门禁
  5. 05以 Rust 二进制文件分发

适用场景

  1. 01发布前检查服务清单
  2. 02发现版本或 mcpName 不匹配
  3. 03用 SARIF 标注拉取请求问题

MCP 相关

这是面向 MCP 服务发布者的开发工具,而非 MCP 服务或客户端。它在使用 mcp-publisher 发布前验证注册表元数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

属于 StudioMeyer MCP Stack 的一部分 — 在马略卡岛打造 🌴 · 如果你在用,欢迎点 ⭐

mcp-passport

crates.io CI OpenSSF Scorecard License: MIT

用于 MCP 注册表的发布就绪状态验证器。

将服务发布到注册表,意味着必须确保 server.json 完全正确——反向 DNS 名称、packages 块、transport,以及 package.json 中与之匹配的 mcpName。 任何一项出错,mcp-publisher 都会拒绝上传(或者更糟,导致列表出现不易察觉的问题)。

mcp-passport 是一个静态二进制文件,可在本地检查所有这些内容——依据注册表架构进行验证,并且检查 server.json 与 package.json / Cargo.toml / pyproject.toml 之间的一致性——确保首次上传就能成功。

$ mcp-passport ./my-server
mcp-passport: ./my-server/server.json — 3 finding(s) (2 error, 1 warning, 0 info)

  ERROR (2)
    server.json /name — `name` "My_Weather" is not a valid reverse-DNS namespace/slug
      fix: Use `{namespace}/{slug}`, lowercase, e.g. `io.github.you/my-server`.
      see: https://github.com/modelcontextprotocol/registry/.../generic-server-json.md
    package.json /mcpName — package.json has no `mcpName` — the registry uses it to verify npm ownership
      fix: Add "mcpName": "io.github.you/weather".
      see: https://github.com/modelcontextprotocol/registry/.../quickstart.mdx
  WARNING (1)
    server.json /packages/0/version — package #0 (npm) has no `version` …
# exit code 1 → the job fails

全部检查通过时:

$ mcp-passport
mcp-passport: ./server.json is publish-ready. [OK]

安装

cargo install mcp-passport

或者从源代码构建:

git clone https://github.com/studiomeyer-io/mcp-passport
cd mcp-passport && cargo build --release   # binary at ./target/release/mcp-passport

使用

mcp-passport                       # validate ./server.json
mcp-passport path/to/server.json   # a specific file
mcp-passport ./my-server           # find + validate server.json in a directory
mcp-passport --fail-on warning     # gate CI on warnings too
mcp-passport --format sarif        # GitHub code scanning

当存在级别达到或高于 --fail-on(默认值为 error)的问题时,退出代码为 1;否则为 0。


检查内容

server.json 结构(依据2025-12-11 架构):

  • 必需的 name(反向 DNS 格式的 namespace/slug)、description、version(semver)
  • packages / remotes 至少存在一项
  • 每个包都必须包含:registryType(npm/pypi/nuget/cargo/oci/mcpb)、identifier、transport.type (stdio/streamable-http/sse);对于有版本的注册表,还必须包含 version;对于 mcpb,还必须包含 fileSha256
  • 常见的 snake_case registry_type 错误(注册表会静默忽略它)
  • 必须包含 $schema,且使用当前修订版;必须包含 repository

跨文件一致性(仅当同级清单文件存在时检查):

  • npm → package.json 中的 mcpName 必须与 server.json 中的 name 匹配(注册表通过此项验证所有权),且版本一致
  • cargo → Cargo.toml 中的 [package].version 必须匹配
  • pypi → pyproject.toml 中的 [project].version 必须匹配

每条问题都会链接到对应的注册表文档。mcp-passport 是快速的本地预检工具——最终依据是 mcp-publisher validate 和注册表本身。


CI

# .github/workflows/mcp-registry.yml
name: MCP registry
on: [pull_request]
jobs:
  passport:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: studiomeyer-io/[email protected]
        with:
          path: .
          fail-on: error

也支持 SARIF——运行 mcp-passport --format sarif > passport.sarif,然后使用 github/codeql-action/upload-sarif 上传,即可在 PR 中标注问题。


StudioMeyer MCP 工具集的一部分

一组专注、达到生产级别的工具,用于构建、发布和运维 MCP 服务:

  • mcp-armor — 运行时防护侧车
  • mcp-gauntlet — 部署前模糊测试与负载测试
  • mcp-covenant — 契约与破坏性变更检测器
  • mcp-herald — 2026-07-28 规范迁移检查工具
  • mcp-passport (就是这个) — 发布门禁:你的 server.json 是否已满足注册表要求?

许可证

MIT © StudioMeyer

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。