原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

GitFerry

作者:mayank1307版本 0.4.2i★ –i在你的电脑上运行
注册名称io.github.mayank1307/gitferry

安装

概览

作者提供的说明(英文原文)

Pack, inspect, and apply portable Git change bundles across offline repositories.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 开发者工具

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "gitferry": {
      "command": "npx",
      "args": [
        "-y",
        "gitferry",
        "mcp"
      ]
    }
  }
}

在终端中运行这条命令

claude mcp add gitferry -- npx -y gitferry mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "gitferry": {
      "command": "npx",
      "args": [
        "-y",
        "gitferry",
        "mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "gitferry": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "gitferry",
        "mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 mayank1307 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“开发者工具”中的其他服务器比较i

  • 星标数多于此分类中其他 1386 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 1386 个服务器的 92% 更新
  • 基础检查结果等于或优于此分类中其他 1386 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

GitFerry 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.4.2)于3天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:GitHub, Desktop Commander, Cloudflare MCP

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

GitHub

作者:github

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

电脑或云端★ 34,245MIT3天前更新
安装

Desktop Commander

作者:wonderwhy-er

MCP server for terminal commands, file operations, and process management

在你的电脑上运行★ 10,225MIT15天前更新
安装

Cloudflare MCP

作者:cloudflare

Cloudflare MCP servers

在云端运行★ 4,446Apache-2.014个月前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

gitferry

v0.4.2 is released. npm package · v0.4.2 release and downloads · MCP Registry

Portable git-change bundles for air-gapped repos. Pack your unpushed commits, staged/unstaged changes, and untracked files into a single shareable file on one machine — carry it across the air gap (USB, secure file transfer, email, or QR codes across a webcam) — validate and apply it to the same repo on another machine. No shared remote, no network, no sync required.

machine A (has your changes)          machine B (same repo, no sync)

┌─────────────────────────┐ ┌─────────────────────────┐ │ $ gitferry pack │ ──────▶ │ $ gitferry apply │ │ → repo-main-a1b2c3d │ USB / │ ✓ checksums verified │ │ .gitferry │ scp / │ ✓ same repo confirmed │ │ │ email │ ✓ 2 commits replayed │ │ commits + worktree │ │ ✓ staged/unstaged │ │ + untracked, checksummed│ │ state restored │ └─────────────────────────┘ └─────────────────────────┘

See SCENARIOS.md for every situation this is built for — air-gapped environments, client-site work, WIP handoffs, offline review, and more. See INSTALL.md for offline installation on other devices.

Quick MCP install (Claude Code): claude mcp add --transport stdio gitferry -- npx --yes --package=gitferry@0.4.2 gitferry-mcp, then restart your client and confirm the pack_changes, inspect_bundle, and apply_bundle tools appear. Codex, VS Code, JSON config, and offline setup are in MCP server below.

Why not just git format-patch / git bundle?

You can — gitferry *uses* them under the hood. What raw git doesn't give you:

  • Untracked files travel too (respecting .gitignore) — git diff never sees them
  • Staged vs unstaged state is preserved — your index looks the same on the other side
  • Validation before anything touches the repo: sha256 checksums of every file, same-repository fingerprint check (root commits), base-commit check, clean-tree check
  • One command each way instead of a multi-step format-patch/diff/am/apply choreography
  • Binary-safe (--binary patches for tracked files, verbatim bytes for untracked)
  • Plain-git fallback: the bundle is a zip of standard git patches — pack with --portable and a machine with only git + unzip applies it by hand (instructions are inside every bundle; the compact default needs node's one-liner to unwrap first)

Install

Requires Node.js 22 or newer and Git 2.32 or newer. Install the published CLI and MCP server from npm:

npm install -g gitferry@0.4.2

gitferry --version

For MCP-only use, skip the global install and use the pinned npx configuration in MCP server.

Installation and MCP registration are separate steps. Installing the npm package makes gitferry and gitferry-mcp available in your terminal. Registering the server tells Codex, Claude Code, or another MCP client how to launch it. With npx, the client downloads the pinned package on first launch, so a global install is optional. Reading this README or installing the package alone does not register the server.

Closed environments (no npm)

Download gitferry.cjs, gitferry-mcp.cjs, and SHA256SUMS from the public v0.4.2 release. These standalone files include their JavaScript dependencies; transfer them to the offline machine with Node and Git. See INSTALL.md for checksum verification and setup.

To build the same standalone executables from a source checkout:

npm run bundle                 # → dist/gitferry.cjs + dist/gitferry-mcp.cjs

node dist/gitferry.cjs pack # runs without any install or node_modules

Usage

On the machine with changes
gitferry pack                          # asks what should travel (Enter = uncommitted); base = merge-base with upstream

gitferry pack --only staged # skip the question: all | uncommitted | staged | unstaged | committed | repo gitferry pack --only repo # whole-repo snapshot: every tracked file as-is — seed/sync another machine gitferry pack --base origin/main # explicit base gitferry pack -o changes.gitferry --no-untracked

The interactive picker only appears in a terminal; in scripts (no TTY) pack takes everything unless --only or --no-* flags say otherwise. Selections mean: all = commits + staged + unstaged + untracked · uncommitted = everything except commits · staged = index edits only · unstaged = worktree edits + untracked · committed = unpushed commits only · repo = a snapshot of every tracked file as it is on disk (no history) — apply seeds a bare directory or syncs an existing checkout, skipping identical files and touching drifted ones only with --force.

On the receiving machine
gitferry inspect changes.gitferry      # verify + preview, touches nothing

gitferry apply changes.gitferry --dry-run gitferry apply changes.gitferry

No transfer channel at all? Beam it over QR

When even USB is off the table, the screen itself is the channel: one machine plays the bundle as a looping sequence of QR codes, the other watches with any webcam.

# machine A (sender)

gitferry show changes.gitferry # QR loop right in the terminal gitferry show changes.gitferry --browser # bigger + denser, in a local browser page gitferry show changes.gitferry --color # experimental: 3x density, 3 chunks per image in R/G/B

machine B (receiver) — point its webcam at A's screen

gitferry read # opens a local camera page, reassembles the bundle gitferry apply changes.gitferry

Every QR frame carries its chunk number / total plus a transfer id, so the receiver knows exactly which pieces it still needs — it shows the missing numbers live and keeps collecting as the loop repeats (order doesn't matter; missed frames come around again). The file is only written once every numbered chunk arrived and the whole-file sha256 matches, so a completed read is proof nothing was skipped or corrupted. Both pages live on 127.0.0.1; no network between the machines is used or needed.

Point the sender's webcam back at the receiver and the loop gets smart. The read page displays a small progress QR of its own (tiny payload, high error correction, so it scans easily). If the show --browser machine also has a camera watching the receiver's screen, then after each loop the sender re-shows only the chunks that are still missing, dropping from the first-loop rate (default 4 fps) to a slower retry rate (default 1 fps, --retry-fps) so the stragglers are easy to catch — and stops automatically once the receiver's code says *complete*. No camera on the sender's side? Everything simply loops at full speed like before.

Throughput is roughly chunk × fps: defaults give ~0.3 KB/s in the terminal, ~0.6 KB/s in the browser, ~1.8 KB/s with --color — meant for patch-sized bundles, not megabyte piles (pack --no-untracked helps keep them small). The default is deliberately a coarse, easy-scan code (150 bytes ≈ QR version 8, 49×49 modules): webcams reading another screen fail on fine modules long before they fail on frame count. Raise --chunk (up to 2900) if your camera and screens are good.

Applying

Apply order: commits (git am -3, full author/date/message preserved) → staged patch (index + worktree) → unstaged patch (worktree only) → untracked files (never overwrites existing files unless --force).

On conflicts you get standard git conflict markers and clear instructions (git am --continue / --abort, .rej files as last resort) — application is not transactional, so review the error and recovery instructions before continuing.

Flags
FlagCommandEffect
--base packcommit the bundle applies onto
--only packall / uncommitted / staged / unstaged / committed / repo — non-interactive selection
--no-commits / --no-worktree / --no-untrackedpacktrim what's captured (combinable with --only)
--portablepackplain-zip bundle (~30% bigger) for targets with only git + unzip
--dry-runapplyvalidate + show the plan, change nothing
--forceapplyoverride same-repo, clean-tree, and overwrite guards
-C pack/applyrun against another directory
--chunk / --fps showQR payload size (default 150 ≈ version-8 code; raise for speed, lower for even easier scanning) and first-loop display speed
--retry-fps showslower rate for re-loops of missing chunks once the receiver's progress QR is seen (default 1)
--browser / --colorshowbrowser-page display; experimental 3× density via R/G/B channels
--no-open / --port show/readdon't auto-open the local page / pin its port
-o / --forcereadoutput path / overwrite an existing file

MCP server

GitFerry runs locally over stdio. Your MCP client starts the process, and it works with repositories on that same machine. No GitFerry account, API key, hosted service, or source upload is required. URL-only MCP clients need a separate bridge and cannot connect directly to this local server.

Register with the CLI for your client (requires Codex CLI or Claude Code, respectively):

# Codex

codex mcp add gitferry -- npx --yes --package=gitferry@0.4.2 gitferry-mcp codex mcp get gitferry

Claude Code

claude mcp add --transport stdio gitferry -- npx --yes --package=gitferry@0.4.2 gitferry-mcp claude mcp get gitferry

Choose your client's registration command, reconnect or start a new session, and verify that pack_changes, inspect_bundle, and apply_bundle are available. mcp get confirms the saved configuration; tool discovery in the connected client confirms the server is working. See Codex setup for the TOML alternative and agent-assisted installation to delegate setup.

Use this configuration for the published 0.4.2 package in clients that accept mcpServers JSON. The explicit executable matters because this package supplies both a CLI and an MCP server:

{

"mcpServers": { "gitferry": { "command": "npx", "args": ["--yes", "--package=gitferry@0.4.2", "gitferry-mcp"] } } }

For a source checkout, build with npm ci && npm run bundle and use:

{

"mcpServers": { "gitferry": { "command": "node", "args": ["/absolute/path/to/gitferry/dist/gitferry-mcp.cjs"] } } }

If you installed the package globally, the server command is gitferry-mcp. For a downloaded offline bundle, point node directly at /absolute/path/to/gitferry-mcp.cjs. See client setup for Codex, Claude Code, and VS Code examples and Windows launch instructions.

ToolActionKey arguments
pack_changesWrites a portable bundle from local changescwd, optional output, base, only, portable and include flags
inspect_bundleReads and validates a bundle without changing a repositorybundlePath
apply_bundlePreviews or applies a bundle to a local targetcwd, bundlePath, dryRun, force, includeUntracked

Use absolute paths. Start with: *“Pack the uncommitted changes in /absolute/path/to/repo into /absolute/path/to/transfer.gitferry.”* On the receiving machine: *“Inspect this bundle, then dry

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx