Token导航 LogoToken导航TokenDH.com
Mcpb Pack logo
开发工具未说明官方级别未说明来源级核验

Mcpb Pack

MCP Server

一个GitHub Action,用于将MCP服务器打包成可分发捆绑包并发布到mpak注册表。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
自动化部署ClaudeAI工具集成Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

NimbleBrainInc

提供方

NimbleBrainInc

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCPB包

![Test](https://github.com/NimbleBrainInc/mcpb-pack/actions/workflows/test.yml) ![License: MIT](https://opensource.org/licenses/MIT) ](https://github.com/NimbleBrainInc/mcpb-pack/releases)

GitHub Action将MCP服务器打包成可分发的捆绑包并发布到 mpak注册表.

这是什么?

主控程序 (模型上下文协议)是人工智能助手与外部工具和服务交互的标准。MCP服务器公开了AI助手可以调用的工具(如“搜索文件”或“查询数据库”)。

2甲4氯丁酸 是捆绑格式(.mcpb 文件),将MCP服务器及其所有依赖项打包到单个可移植文件中。这使得MCP服务器易于分发和安装。

篮子 是一个公共注册表,您可以在其中发布和发现MCP捆绑包。把它想象成npm,但适用于MCP服务器。

此操作 自动化整个工作流程:将MCP服务器构建成一个捆绑包,将其附加到GitHub版本中,并在mpak中注册,以便其他人可以找到并安装它。

快速开始

先决条件

您的存储库需要:

  1. A. manifest.json 描述您的MCP服务器:
{
  "manifest_version": "0.4",
  "name": "@your-github-org/your-server",
  "version": "1.0.0",
  "description": "What your server does",
  "server": {
    "type": "python",
    "entry_point": "your_package.server",
    "mcp_config": {
      "command": "python",
      "args": ["-m", "your_package.server"]
    }
  }
}
注:@scope 必须与您的GitHub组织或用户名匹配。注册表通过OIDC进行验证。
  1. 您的MCP服务器代码 使用stdio入口点:
# At end of server.py
if __name__ == "__main__":
    mcp.run()  # Required for mpak run / Claude Desktop

最小工作流程

将此添加到 .github/workflows/release.yml:

name: Release
on:
  release:
    types: [published]

permissions:
  contents: write
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: NimbleBrainInc/mcpb-pack@v3

当你发布GitHub版本时,这将:

  1. 将所有依赖项提供到捆绑包中
  2. 建立一个 .mcpb 文件
  3. 将其上传到您的发布中
  4. 在mpak.dev上注册

您的服务器现在可以通过以下方式被发现 mpak search 可通过以下方式安装 mpak bundle pull.

用法

单一平台

对于没有本机依赖关系的纯Python/Node服务器:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: NimbleBrainInc/mcpb-pack@v3

多平台

对于具有本机依赖关系(C扩展、Rust绑定等)的服务器,您需要在每个目标平台上构建:

jobs:
  build:
    strategy:
      matrix:
        include:
          - os: linux
            arch: x64
            runner: ubuntu-latest
          - os: linux
            arch: arm64
            runner: ubuntu-24.04-arm
          - os: darwin
            arch: arm64
            runner: macos-latest
          - os: darwin
            arch: x64
            runner: macos-15-intel
    runs-on: ${{ matrix.runner }}
    steps:
      - uses: actions/checkout@v4
      - uses: NimbleBrainInc/mcpb-pack@v3
        with:
          output: "{name}-{version}-${{ matrix.os }}-${{ matrix.arch }}.mcpb"

每个作业都构建并注册自己的特定于平台的捆绑包。注册表会自动合并它们。

跑步者参考

平台运行器标签架构注释
Linux x64ubuntu-latestx64免费
Linux ARMubuntu-24.04-armarm64免费
macOS ARMmacos-latest / macos-15arm64(M1)免费,3 vCPU,7 GB
macOS英特尔macos-15-intelx64免费,4 vCPU,14 GB

付费大型跑步者 (团队/企业计划):

平台运行器标签架构注释
macOS英特尔macos-15-largex6412 vCPU,30 GB
macOS ARMmacos-15-xlargearm64(M2)5个vCPU+8个GPU,14 GB
注: macos-132025年12月退休.使用 macos-15-intel 适用于英特尔macOS版本。

仅构建(不发布)

对于CI验证或专用服务器:

- uses: NimbleBrainInc/mcpb-pack@v3
  with:
    upload: false
    announce: false

使用现有捆绑包

如果你已经建立了你的 .mcpb 单独捆绑(例如,提交到仓库或在前面的步骤中构建),您可以跳过构建,只需上传/宣布:

- uses: NimbleBrainInc/mcpb-pack@v3
  with:
    directory: packages/mcp/mcpb
    bundle-path: context7.mcpb
    build: false

这在以下情况下很有用:

  • 您的捆绑包已预先构建并提交到存储库
  • 您有一个自定义构建过程
  • 您想向mpak.dev宣布一个现有的捆绑包

该操作将从提供的包中计算SHA256哈希值和大小,将其上传到发布版本,并将其通知给注册表。

跨平台捆绑

对于没有本机依赖关系的纯Node.js或Python服务器,您可以使用以下命令将单个捆绑包声明为跨平台 any:

- uses: NimbleBrainInc/mcpb-pack@v3
  with:
    platform-os: any
    platform-arch: any

这将该捆绑包注册为通用,因此任何平台上的用户都可以安装它。当没有特定于平台的构建可用时,注册表将为该捆绑包提供服务。

手动重新公告

要重新宣布现有版本(例如,如果注册表已关闭或您要向其他注册表宣布),请添加 workflow_dispatch 到您的工作流程:

on:
  release:
    types: [published]
  workflow_dispatch:
    inputs:
      build:
        description: 'Build bundle'
        type: boolean
        default: true
      announce:
        description: 'Announce to registry'
        type: boolean
        default: true

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: NimbleBrainInc/mcpb-pack@v3
        with:
          build: ${{ inputs.build }}
          announce: ${{ inputs.announce }}

然后从Actions选项卡手动触发,检查发布标签。该行动使用 github.ref_name 当未被释放事件触发时,作为释放标签。

注:upload 输入仅适用于发布事件。对于手动触发器,请手动将捆绑包上传到版本或使用 gh release upload.

输入

输入默认值描述
directory.包含manifest.json和服务器代码的目录
bundle-path现有.mcpb捆绑包的路径(与一起使用 build: false)
output{name}-{version}.mcpb输出文件名({name}{version} 被替换)
python-version3.13用于销售的Python版本(如果是Python服务器)
buildtrue是否构建捆绑包
uploadtrue是否上传到GitHub发布
announcetrue是否向mpak.dev注册
announce-requiredfalse宣布失败是否应使工作流失败
announce-urlhttps://registry.mpak.dev/v1/bundles/announce注册表端点(更改自托管注册表)
platform-os覆盖检测到的操作系统(达尔文、linux、win32、任何)
platform-arch覆盖检测到的拱形结构(x64、arm64、任意)

输出

输出描述
bundle-path生成的.mcpb文件的路径
bundle-size捆绑包的大小(字节)
bundle-sha256SHA256哈希用于完整性检查
announced注册是否成功

权限

permissions:
  contents: write   # Required to upload to releases
  id-token: write   # Required for OIDC authentication with registry

运作原理

建筑

行动:

  1. 确认 manifest.json (mcpb v0.4必填字段,可选反向DNS名称覆盖)
  2. 从以下位置检测您的服务器类型 manifest.json (Python或Node.js)
  3. 将所有依赖项提供给bundle(Python: deps/,节点: node_modules/)
  4. 将所有内容打包成 .mcpb 文件使用 mcpb命令行界面

宣布

当你向mpak.dev宣布:

  1. 该操作上传 .mcpb 捆绑到GitHub版本
  2. 该行动要求 OIDC代币 来自GitHub
  3. 此令牌以加密方式证明该捆绑包来自您的存储库
  4. 注册表验证令牌并注册您的捆绑包;注册表组成MCP ServerDetail 从你的发现形状 manifest.json
  5. 不需要API密钥或机密

每个平台构建都会宣布自己的工件。注册表跟踪一个版本的所有工件,因此用户可以为他们的系统安装正确的捆绑包。

选择退出公告

要构建而不发布到公共注册表,请执行以下操作:

- uses: NimbleBrainInc/mcpb-pack@v3
  with:
    announce: false

如果发生以下情况,您可能会想要这个:

  • 您的服务器是私有的或内部的
  • 您正在使用自托管注册表
  • 您想在发布之前进行测试
  • 您通过其他渠道分销

MCP注册表发现

mpak自动组成MCP注册表 ServerDetail 从您的包中发现形状 manifest.json --没有单独的 server.json 要维护的文件。每个已公布的捆绑包都可以通过以下方式访问:

  • GET /v1/servers/ --最新 ServerDetail
  • GET /v1/servers//versions/ --版本特定
  • GET /v1/servers/search?q=... --分页搜索

命名

默认情况下,注册表会从npm风格的包名中机械地分配一个反向DNS名称:

  • @your-org/your-serverdev.mpak.your-org/your-server

如果你想要一个品牌反向DNS名称(例如。 com.example/your-server),将其设置在您的清单中 _meta:

{
  "manifest_version": "0.4",
  "name": "@your-org/your-server",
  "version": "1.0.0",
  "description": "What your server does",
  "_meta": {
    "dev.mpak/registry": {
      "name": "com.example/your-server"
    }
  }
}

超控必须与上游模式相匹配 ^[a-zA-Z0-9.-]+/[a-zA-Z0-9._-]+$ (一个斜线将反向DNS命名空间与服务器名称分隔开)。

迁移自 server.json (v2 → v3)

如果您之前已发货 server.json 将文件放在捆绑包旁边,您可以将其删除。此操作之前的版本 v3 已验证并上传 server.json GitHub发布; v3 不再读取或上传它。注册表组成 ServerDetail 发现形状从 manifest.json 相反。

git rm server.json
# Optional: add a reverse-DNS name override to manifest.json (see "Naming" above).
git add manifest.json
git commit -m "drop server.json (mcpb-pack@v3 composes registry metadata from manifest)"

支持的运行库

运行时通过依赖关系检测
python server.type: "python"uv pip install --target
Node.jsserver.type: "node"npm install --omit=dev
二进制server.type: "binary"无(您构建二进制文件)

二进制服务器(Go、Rust等)

对于编译语言,在运行mcpb包之前构建二进制文件:

jobs:
  build:
    strategy:
      matrix:
        include:
          - os: linux
            arch: x64
            runner: ubuntu-latest
          - os: linux
            arch: arm64
            runner: ubuntu-24.04-arm
          - os: darwin
            arch: arm64
            runner: macos-latest
          - os: darwin
            arch: x64
            runner: macos-15-intel
    runs-on: ${{ matrix.runner }}
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-go@v5
        with:
          go-version: "1.22"

      - name: Build binary
        run: |
          mkdir -p bin
          go build -o bin/server ./cmd/server

      - uses: NimbleBrainInc/mcpb-pack@v3
        with:
          output: "{name}-{version}-${{ matrix.os }}-${{ matrix.arch }}.mcpb"

二进制服务器的manifest.json:

{
  "name": "@your-org/your-server",
  "version": "1.0.0",
  "server": {
    "type": "binary",
    "entry_point": "bin/server",
    "mcp_config": {
      "command": "${__dirname}/bin/server",
      "args": []
    }
  }
}

Node.js服务器

{
  "name": "@your-org/your-server",
  "version": "1.0.0",
  "server": {
    "type": "node",
    "entry_point": "dist/index.js",
    "mcp_config": {
      "command": "node",
      "args": ["${__dirname}/dist/index.js"]
    }
  }
}

示例存储库

  • mcp回声 -具有多平台构建的简单Python MCP服务器

了解更多

许可证

麻省理工学院

目录标签

目录标签

自动化部署ClaudeAI工具集成GitHubAction本地部署MCP服务器打包工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP