MCP服务器自动打包工具

自动从npm注册表获取MCP服务器元数据并生成符合agentregistry规范的ServerJSON工件,实现自动化发布到AI工件的策展注册表。

  • by ExpertVagabond
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ExpertVagabond/mcp-to-agentregistry

使用说明

mcp到代理注册表(mcp2ar)

自动打包npm发布的MCP服务器 代理注册表 由Solo.io提供。

问题: 数千台MCP服务器运行在npm上。agentregistry是一个经过精心策划的人工智能工件注册表,具有安全评分、治理和可发现性。将服务器从一个服务器转移到另一个服务器需要手动创建工件。

解决方案: mcp2ar 直接从npm注册表读取MCP服务器元数据,生成符合模式的元数据 ServerJSON 工件,并将其单独或作为策划的集合发布到agentregistry。

快速开始

# Install
npm install -g mcp-to-agentregistry

# Generate an artifact (no registry needed)
mcp2ar generate ordinals-mcp

# Preview what would be published
mcp2ar publish ordinals-mcp --dry-run

# Publish to a running agentregistry
mcp2ar publish ordinals-mcp

# Publish an entire collection
mcp2ar batch examples/blockchain-collection.json

运作原理

┌─────────────┐     ┌──────────┐     ┌─────────────────┐
│  npm Registry│────▶│  mcp2ar  │────▶│  agentregistry  │
│  (metadata)  │     │ (bridge) │     │  (curated AI    │
└─────────────┘     └──────────┘     │   artifact hub) │
                         │            └─────────────────┘
                    Reads package.json
                    Generates ServerJSON
                    Publishes via API
  1. 获取 package.json 从npm注册表API(无需安装)
  2. 将字段映射到代理注册表 ServerJSON 模式(2025-12-11)
  3. 丰富存储库信息、关键字、作者、许可证
  4. 通过代理注册REST API发布(POST /v0/servers)

命令

mcp2ar generate <npm-package>

从npm MCP服务器生成工件JSON,无需发布。

mcp2ar generate ordinals-mcp                    # stdout
mcp2ar generate ordinals-mcp -o artifact.json   # write to file
mcp2ar generate ordinals-mcp --introspect       # discover tools at runtime
标志 描述
-v, --pkg-version <ver> 特定npm版本(默认:最新)
-n, --namespace <ns> 注册表命名空间(默认值: io.github.ExpertVagabond)
--name <name> 覆盖注册表名称
--introspect 通过npx运行服务器以发现工具
--timeout <ms> 自检超时(默认值:15000)
-o, --output <file> 写入文件而不是stdout
--collection <name> 带有收藏名称的标签

mcp2ar publish <npm-package>

生成并发布到agentregistry。

mcp2ar publish ordinals-mcp
mcp2ar publish ordinals-mcp --dry-run
mcp2ar publish ordinals-mcp --introspect --collection blockchain

全部 generate 标志加:

标志 描述
--dry-run 显示工件而不发布
--registry-url <url> agentregistry API URL(默认值: http://localhost:12121)

mcp2ar batch <config-file>

从集合配置文件批量发布。

mcp2ar batch examples/blockchain-collection.json
mcp2ar batch examples/blockchain-collection.json --dry-run
标志 描述
--dry-run 显示所有工件而不发布
--registry-url <url> 代理注册表 API URL

mcp2ar inspect <npm-package>

反思MCP服务器以发现其工具。

mcp2ar inspect ordinals-mcp
mcp2ar inspect ordinals-mcp --json
标志 描述
--timeout <ms> 连接超时(默认值:15000)
--json 输出为JSON而不是表

集合配置

集合允许您将相关的MCP服务器作为一个具有共享元数据的组发布。创建JSON配置:

{
  "collection": "blockchain-mcp-collection",
  "namespace": "io.github.ExpertVagabond",
  "servers": [
    {
      "npmPackage": "ordinals-mcp",
      "envVars": [
        { "name": "HIRO_API_KEY", "description": "Hiro API key", "isRequired": false, "isSecret": true }
      ]
    },
    {
      "npmPackage": "solana-mcp-server"
    }
  ]
}

每个服务器条目支持:

字段 描述
npmPackage npm包名称(必填)
version 特定版本(默认:最新)
nameOverride 覆盖注册表名称
envVars 服务器的环境变量

演示:区块链MCP集合

该回购附带了4个区块链MCP服务器的预构建集合(共102个工具):

服务器 工具 说明
普通mcp 24 比特币序数——铭文、符文、BRC-20、市场
solana mcp服务器 28 Solana--钱包、交易、SPL代币、锚点
solmail mcp 4 通过Solana发送物理邮件——人工智能代理发送真实信件
通用区块链mcp 46 跨链--ZetaChain、Foundry、DeFi、NFT
# Preview the full collection
mcp2ar batch examples/blockchain-collection.json --dry-run

# Publish to local agentregistry
arctl &  # start registry
mcp2ar batch examples/blockchain-collection.json
arctl mcp list  # verify

环境变量

变量 描述
ARCTL_API_BASE_URL agentregistry API URL(默认值: http://localhost:12121)
ARCTL_API_TOKEN 经过身份验证的注册表的承载令牌

需求

  • Node.js>=18
  • arctl (用于出版——不需要 generate)

安装arctl:

curl -fsSL https://raw.githubusercontent.com/agentregistry-dev/agentregistry/main/scripts/get-arctl | bash

架构合规性

生成的工件符合 MCP注册表服务器JSON模式:

  • $schema: 2025-12-11
  • name:反向DNS格式(io.github.{org}/{name})
  • packages:具有stdio传输的npm注册表类型
  • repository:从npm元数据中自动提取
  • _meta:出版商提供的丰富内容(关键字、作者、许可证、收藏、工具计数)

许可证

麻省理工学院