日本語 | 中文 | Español | Français | हिन्दी | Italiano | Português (BR)
Catch registry drift before your users do.
______________________________________________________________________
你发布到npm、PyPI和NuGet。随着时间的推移,你的注册表页面会漂移:过时的描述、缺失的主页链接、与版本不匹配的标签、没有徽标的README标题。除非用户注意到,否则没有人会注意到。
mcpt出版 跨注册表审核您发布的包,发现偏差,修复偏差,并给您一个收据来证明发生了什么。零依赖。节点22+。
快速启动
# Scaffold config + profiles
npx mcpt-publishing init
# Audit everything — writes reports/latest.md + receipt
npx mcpt-publishing audit
# Preview what fix would change
npx mcpt-publishing fix --dry-run
# Apply fixes
npx mcpt-publishing fix就这样,快跑 audit 在CI中尽早捕捉漂移,或 weekly 使整个循环自动化。
______________________________________________________________________
它捕获了什么
| 查找 | 严重性 | 示例 |
|---|---|---|
失踪 repository package.json | RED | npm页面中没有显示“Repository”链接 |
失踪 homepage | 红色 | 没有指向文档或登录页面的链接 |
失踪 bugs.url | 黄色 | npm上没有问题跟踪链接 |
| 缺少关键字 | 黄色 | 搜索不可见的包 |
| 陈旧的README标题 | 黄色 | 没有徽标、没有徽章、链接错误 |
| GitHub描述/主页不匹配 | 黄色 | Repo“About”与注册表不匹配 |
| NuGet缺少PackageProjectUrl | 黄色 | NuGet页面没有主页 |
| 标签/发布版本不匹配 | 红色 | 已发布v1.2.0,但标签显示为v1.1.0 |
它修复了什么
七个内置修复程序应用分配的元数据更正:
npx mcpt-publishing fix # apply locally
npx mcpt-publishing fix --remote # apply via GitHub API
npx mcpt-publishing fix --pr # open a PR with fixes
npx mcpt-publishing fix --repo owner/my-package # fix one repo only| Fixer | 它做什么 |
|---|---|
npm-repository | 套装 repository 在package.json中 |
npm-homepage | 套装 homepage 在package.json中 |
npm-bugs | 套装 bugs.url 在package.json中 |
npm-keywords | 在package.json中添加起始关键字 |
readme-header | 添加徽标+README.md链接 |
github-about | 通过GitHub API设置描述/主页 |
nuget-csproj | 将PackageProjectUrl/仓库URL添加到.csproj |
使用收据发布
每次发布都会生成一个不可变的JSON收据,其中包含提交SHA、注册表版本、工件哈希和时间戳。
# Publish to npm with receipt
npx mcpt-publishing publish --target npm
# Verify a receipt later
npx mcpt-publishing verify-receipt receipts/publish/2026-03-01.json每周管道
在一个命令中运行整个循环--audit、fix和可选的publish:
npx mcpt-publishing weekly --dry-run # preview everything
npx mcpt-publishing weekly --pr # audit + fix as PR
npx mcpt-publishing weekly --publish # the full pipeline______________________________________________________________________
设置您的清单
之后 init,编辑 profiles/manifest.json 要声明您的包裹:
{
"npm": [
{ "name": "@yourscope/my-tool", "repo": "your-org/my-tool", "audience": "front-door" }
],
"pypi": [
{ "name": "my-tool", "repo": "your-org/my-tool", "audience": "front-door" }
],
"nuget": [
{ "name": "MyTool.Core", "repo": "your-org/my-tool", "audience": "internal" }
]
}观众 严格控制:
front-door--面向公众。需要干净的元数据、标签+发布、适当的README。internal--支持包。标签是必需的,README是可选的。
可选:资产插件
核心是零依赖。视觉更新(徽标、图标)由可选插件处理:
npm i -D @mcptoolshop/mcpt-publishing-assets
npx mcpt-publishing assets logo --input src.png
npx mcpt-publishing assets wire --repo owner/name______________________________________________________________________
环境变量
仅发布或基于API的修复程序需要:
| 目标 | 环境变量 | 注释 |
|---|---|---|
| npm | NPM_TOKEN | 具有发布权限的粒度令牌 |
| NuGet | NUGET_API_KEY | 在CI或当地工作 |
| GitHub | GITHUB_TOKEN / GH_TOKEN | 关于发布、问题、GHCR |
| PyPI | PYPI_TOKEN | 用于PyPI发布 |
退出代码
| 代码 | 含义 |
|---|---|
0 | 干净——未发现漂移 |
1 | 未捕获异常(节点默认) |
2 | 检测到红色严重性漂移 |
3 | 配置或架构错误 |
4 | 缺少凭据 |
5 | 发布失败 |
6 | 修复失败 |
收据
每个操作(审计、修复、发布、资产)都会将不可变的JSON收据写入 receipts/。每个都包括提交SHA、时间戳、工件SHA-256哈希和注册表URL。验证任何收据:
npx mcpt-publishing verify-receipt receipts/audit/2026-03-01.json安全
| 方面 | 细节 |
|---|---|
| 读取 | 包清单、注册表API(npm、NuGet、PyPI) |
| 写入 | 收据文件仅指向用户指定的路径 |
| 网络 | 注册表API查询-只读,除非发布 |
| 遥测 | 没有。没有分析,没有电话回家。 |
看 安全.md 用于漏洞报告。
______________________________________________________________________
由...建造 MCP工具车间
