Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

agentsync

de jarmstrong158versión 0.2.0i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.jarmstrong158/agentsync

Instalar

Resumen

Descripción del creador (original en inglés)

Multi-agent coordination MCP: claim work, survey peers, resolve conflicts via a git branch as CAS.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Herramientas para desarrolladores

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

  • Revisiones básicas: 1 de 1 superadas
  • Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
  • Debes completar tú: AGENTSYNC_REPO, AGENTSYNC_AGENT_ID, AGENTSYNC_BRANCH

Necesitas

  • PyPIuv de Python instalado (para el comando uvx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "agentsync": {
      "command": "uvx",
      "args": [
        "agentsync-mcp"
      ],
      "env": {
        "AGENTSYNC_REPO": "your-value",
        "AGENTSYNC_AGENT_ID": "your-value",
        "AGENTSYNC_BRANCH": "your-value"
      }
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add agentsync --env AGENTSYNC_REPO=your-value --env AGENTSYNC_AGENT_ID=your-value --env AGENTSYNC_BRANCH=your-value -- uvx agentsync-mcp

Completa los valores vacíos antes de ejecutarlo.

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "agentsync": {
      "command": "uvx",
      "args": [
        "agentsync-mcp"
      ],
      "env": {
        "AGENTSYNC_REPO": "your-value",
        "AGENTSYNC_AGENT_ID": "your-value",
        "AGENTSYNC_BRANCH": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "agentsync": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "agentsync-mcp"
      ],
      "env": {
        "AGENTSYNC_REPO": "your-value",
        "AGENTSYNC_AGENT_ID": "your-value",
        "AGENTSYNC_BRANCH": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Valores que debes completar

  • AGENTSYNC_REPO env
    Absolute path to the shared project git clone used for coordination.
  • AGENTSYNC_AGENT_ID env
    Your unique agent id, used to key your claims.
  • AGENTSYNC_BRANCH env
    The dedicated coordination branch (default: agentsync).

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub jarmstrong158, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Herramientas para desarrolladoresi

  • Más estrellas que el 0% de los otros 1389 servidores de esta categoría
  • Publicado en el registro más recientemente que el 38% de los otros 1389 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 1389 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro agentsync?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (0.2.0) llegó al registro hace 3 meses.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: GitHub, Desktop Commander, Cloudflare MCP

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

GitHub

de github

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

Computadora o nube★ 34.245MITActualizado hace 3 días
Instalar

Desktop Commander

de wonderwhy-er

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

Se ejecuta en tu computadora★ 10.225MITActualizado hace 15 días
Instalar

Cloudflare MCP

de cloudflare

Cloudflare MCP servers

Se ejecuta en la nube★ 4446Apache-2.0Actualizado hace 14 meses
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

agentsync

An MCP server that lets two (or more) AI agents collaborate on the same git repository without stepping on each other. Each agent declares what it's building before it builds, sees what its partner has claimed, and detects conflicts when work lands — all coordinated through the repo itself, with no lock server and no requirement that both agents be online at once.

How it works (one paragraph)

Coordination state is a single claims.json living on a dedicated agentsync branch (kept out of main, so it never pollutes your code history and isn't blocked by main's branch protection). Each agent's claim declares the work, the files it will touch, what it requires, its branch, and a status. Overlap is plain set intersection. Writes use a read-modify-write loop with git push as a compare-and-swap: if the push is rejected, the server re-fetches the latest claims and re-evaluates, so a colliding peer claim is *observed before* this agent's claim is committed. All git work happens in a private worktree under .git/, so your agent's actual code branch is never disturbed.

See DESIGN.md for the architecture rationale and AGENTS.md for the playbook your agent follows to drive the tools.

Install

pip install -r requirements.txt      # just `mcp`

For anything that talks to GitHub — provisioning a repo (provision), inviting a collaborator (add_collaborator), or opening a PR (finish) — you also need the GitHub CLI, authenticated with repo scope:

gh auth login        # one-time; check with `gh auth status`

Configure

Both collaborators add the server to their MCP client, each with their own agent id and their own local clone. See mcp.config.example.json:

{

"mcpServers": { "agentsync": { "command": "python3", "args": ["/abs/path/to/agentsync_server.py"], "env": { "AGENTSYNC_BOARD_REPO": "/abs/path/to/the/clone/holding/the/board", "AGENTSYNC_AGENT_ID": "jonny" } } } }

env varrequireddefaultmeaning
AGENTSYNC_BOARD_REPOyes\*—path to the clone that holds the board
AGENTSYNC_REPOno—legacy alias for AGENTSYNC_BOARD_REPO
AGENTSYNC_AGENT_IDyes—your unique agent id
AGENTSYNC_REMOTEnoorigingit remote name
AGENTSYNC_BRANCHnoagentsynccoordination branch name
AGENTSYNC_PARTNER_GITHUBno—partner GitHub user(s) to invite (comma/space-separated)
AGENTSYNC_STALE_HOURSno24age after which an in-progress claim is flagged stale
AGENTSYNC_GIT_TIMEOUTno25seconds any single git/gh call may run before it fails fast

The agentsync branch is created automatically on the first survey() or claim() call against an explicitly addressed board — no manual setup.

Where the board lives (board addressing)

\* The board is a shared, long-lived team artifact, not a property of whichever repo you happen to be sitting in. So its address is resolved independently of the session, in this order:

  1. `AGENTSYNC_BOARD_REPO` — the explicit board address. This never follows the Xylem session pointer (~/.xylem/active_project.json).
  2. `AGENTSYNC_REPO` — the legacy explicit pin; identical effect.
  3. The current repo (session pointer, else the cwd's git root) — but *only if that repo actually holds the coordination branch*. The check is a real ref lookup (local head → remote-tracking ref → ls-remote), so this fallback can only ever select a repo that genuinely is a board.
  4. Otherwise a `ConfigError` naming `AGENTSYNC_BOARD_REPO` — never a silent selection of a boardless repo.

survey() reports the board it actually read under board: {repo, source}, so "the team is quiet" and "I am looking at the wrong board" are distinguishable.

Why this order. Previously an unpinned server followed the session pointer blindly. The board therefore changed identity whenever the session changed project, and in any project that had never been provisioned it simply disappeared — reported downstream as "no coordination branch found" and treated as normal. cambium's distill() applies this exact same resolution, so the two halves of the suite can never disagree about where the board is.

Starting from nothing (no repo yet)

If the shared repo doesn't exist on GitHub yet, one person runs provision() once. Point AGENTSYNC_BOARD_REPO at the folder you want the project in (it can be empty or not yet created) and call:

provision(repo="you/our-project", partner_github="their-username")

This creates the GitHub repo (private by default), makes the first commit, seeds the agentsync coordination branch, and invites your partner as a push collaborator. It's idempotent — safe to re-run. Then send your partner the clone_url it returns; once they accept the invite and clone, both of you point the MCP server at your own clones and the normal protocol below takes over.

Tools

`provision(repo="", partner_github="", private=True, description="")` — one-time bootstrap when the shared repo doesn't exist yet. Creates the GitHub repo via gh, makes the first commit, seeds the agentsync branch, and invites the partner as a push collaborator. Idempotent. Returns the clone_url to hand your partner. (Needs the gh CLI authenticated with repo scope.)

`add_collaborator(github_username, permission="push")` — invite one or more people (comma/space-separated) to the existing shared repo so they can push (pull|triage|push|maintain|admin). Use this when the repo already exists and you just want to grant access — this is how you build a team of more than two. They must accept the GitHub invite, then clone. (Needs gh with admin on the repo.)

`survey()` — pull the latest state and report what every *other* agent has claimed: task, files, dependencies, branch, status, timestamp. Works for any number of collaborators. Each partner entry is annotated with age_hours and a stale flag (in-progress and older than AGENTSYNC_STALE_HOURS, default 24h), and a top-level stale_claims list — so you can spot a partner who crashed or walked away still holding files. Run it before planning and after finishing.

`claim(task, touches, requires=None, branch="", force=False)` — stake a unit of work. Refuses with status: "blocked" if your touches hits a partner's active files (you'd get in their way) or your requires hits their in-progress files (you'd build on unstable ground), returning exactly what overlaps and with whom. Overlap is path-aware: exact match, directory containment (src/api vs src/api/routes.py), and globs (src/**, *.py) all collide, and paths are normalized first (./auth.py == auth.py). The overlap is checked against freshly-fetched state immediately before the push. Pass force=True to claim anyway (e.g. same large file, disjoint regions). If your agent id already holds an in-progress claim written by a different server instance — another agent is live under the same id — claim() returns blocked with a shared_agent_id reason naming the task, branch and files that would be erased, because one id holds exactly one claim. Give each agent its own id; force=True overrides it for the legitimate case of a restarted server reclaiming its own slot, and then the result carries a warning listing the files that just lost their protection.

`release(note="")` — abandon your current claim without marking it done, freeing the files for a partner to take over. Use it when you drop a task or step away — otherwise a crashed/abandoned claim blocks those files until someone does manual git surgery. Pushes immediately.

`check_conflicts(against_branch="")` — after building, diff your branch against your partners' branches at two levels:

  • claim_overlap — declared-path intersection (intent, path-aware).
  • merge_conflict — a real git merge-tree dry-run merge (textual). Catches collisions the claims didn't predict.

Defaults to every branch named in an active peer claim; pass against_branch to check one specific branch.

`update_status(status, note="")` — set your own claim's status (planning | in-progress | done) and optionally leave a note for your partner. Pushes immediately. On done, the claim is auto-annotated with changed_files — your branch's diffstat vs the default branch — so your partner reconciles against real data, not just a hand-written summary. It is computed in the board repo, and a claim records a branch *name* with no repo qualifier, so changed_files_repo names the repo the diffstat actually came from: where you coordinate on a dedicated board repo, a same-named branch there will diff cleanly and produce a confidently wrong file list. Check the label before trusting the list. (To drop a claim without finishing it, use release().)

`finish(note="", title="", draft=False)` — close the loop: mark your claim done and open a GitHub pull request from your claimed branch into the default branch. Falls back to your claim's task/note for the PR title/body, and returns the existing PR's URL if one is already open. Your branch must be pushed. (Needs gh.)

`history(limit=20)` — the coordination timeline (who claimed, finished, or released what, and when) read from the git history of claims.json, newest first. Answers "what has my partner been up to?" even when they're offline.

The workflow (what your agent does)

  1. provision(...) — once, only if the repo doesn't exist yet (then both clone)
  2. survey() — what's my partner working on, if anything?
  3. plan a slice that doesn't overlap their active work
  4. claim(...) — if blocked, narrow the slice or wait
  5. build on your branch
  6. survey() again — where are they now?
  7. check_conflicts() — does their landed work collide with mine?
  8. reconcile (rebase/merge or flag) → update_status("done", ...) or finish(...) to also open a PR

The full prompt your agent should run is in AGENTS.md.

More than two agents

Nothing here is limited to two. claims.json is keyed by agent id, claim() checks your plan against *every* peer, and the compare-and-swap only ever edits your own key — so three, four, or more agents coordinate safely. To run a team:

  • Invite everyone: add_collaborator("alice, bob, carol") (or list them in provision(partner_github=...)).
  • Give every agent a unique `AGENTSYNC_AGENT_ID` — every *agent*, not every person. One person running a desktop session, a phone and a remote agent needs three ids, for the same reason three people do: one id holds exactly one claim. claim() blocks rather than overwriting a live claim under your own id, but a unique id per agent avoids the collision entirely.

This guard used to key on a per-process token, which meant it caught a restarted server and waved through a *concurrent session* -- one agentsync process serves every session on a machine, so two sessions shared the token and silently overwrote each other. It now keys on the work: a claim for a different task, while one is in progress under your id, is refused whatever process wrote it. Re-claiming the *same* task stays free, which is how you widen touches mid-unit. release(expect_task=...) covers the other direction, refusing to close a claim that is not the one you think you hold.

  • Contention stays cheap for

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx