agentsync
PYPI · AGENTSYNC-MCP · SCANNED SEP 20
Multi-agent coordination MCP: claim work, survey peers, resolve conflicts via a git branch as CAS.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 1 of 29 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 48 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability70
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1780 tokens (~197/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
- Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the agentsync MCP server?
agentsync runs locally as a PyPI package, launched with uvx agentsync-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · agentsync-mcp
claude mcp add jarmstrong158-agentsync -- uvx agentsync-mcp
{
"mcpServers": {
"jarmstrong158-agentsync": {
"command": "uvx",
"args": [
"agentsync-mcp"
]
}
}
} {
"servers": {
"jarmstrong158-agentsync": {
"command": "uvx",
"args": [
"agentsync-mcp"
]
}
}
} codex mcp add jarmstrong158-agentsync -- uvx agentsync-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jarmstrong158-agentsync": {
"type": "local",
"command": [
"uvx",
"agentsync-mcp"
],
"enabled": true
}
}
} openclaw mcp add jarmstrong158-agentsync --command uvx --arg agentsync-mcp
mcp_servers:
jarmstrong158-agentsync:
command: "uvx"
args: ["agentsync-mcp"] {
"McpServers": {
"jarmstrong158-agentsync": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"agentsync-mcp"
]
}
}
} assistant mcp add jarmstrong158-agentsync -t stdio -c uvx -a agentsync-mcp
{
"mcpServers": {
"jarmstrong158-agentsync": {
"command": "uvx",
"args": [
"agentsync-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Sept 26 −3
- Stability: pass → 0.80 functional
- 18 Sept 26 +1
- Stability: 0.97 → pass security
- 16 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 −3
- Security disclosure: unverified → fail ▼ functional
- Stability: pass → 0.80 functional
- 11 Sept 26 +1
- Stability: 0.97 → pass security
- Security disclosure: fail → unverified ▼ functional
- 9 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 7 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed pypi/agentsync-mcp@0.2.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 29 packages
| Packages resolved | 29 |
|---|---|
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_collaborator ~182
Invite one or more people as collaborators on the shared repo so they can push to it. Use this when the repo already exists and you just want to grant partners access (provision() does this too, but only as part of first-time setup). This is how you build a team of more than two. github_username : one or more GitHub users, comma- or space-separated (e.g. "jarmstrong158" or "alice, bob, carol"). permission : pull | triage | push | maintain | admin (default push). Each invited user must accept the GitHub invitation before they can push. Requires the `gh` CLI authenticated with admin on the repo. Returns the clone URL to hand the new collaborators.
| Name | Type | Req | Description |
|---|---|---|---|
| github_username | string | yes | – |
| permission | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
check_conflicts ~159
Detect conflicts between your branch and your partners' branches. Reports two levels: claim_overlap : set intersection of touched files (intent level) merge_conflict : a real dry-run merge via `git merge-tree` (textual) against_branch lets you check one specific branch; default checks every branch named in a peer's active claim. Your own branch is taken from your current claim. claim_overlap is intent-level, so it only exists where intent was declared. If against_branch names a branch no active claim mentions, claim_overlap is reported as an explicit {"status": "unknown"} object naming the reason — never as an empty list, which would read as a verified all-clear.
| Name | Type | Req | Description |
|---|---|---|---|
| against_branch | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
claim ~426
Stake a claim on a unit of work, so a partner cannot start the same files underneath you. When to use this instead of the alternatives: claim : you are about to START work. Call it BEFORE editing, not after — a claim taken afterwards cannot prevent the collision it was meant to catch. survey : just look at who holds what, changing nothing. check_conflicts : you already hold a claim and want to know whether your branch now collides with a peer's. update_status : you already hold this claim and only the status or note has changed. Re-claiming to edit a claim replaces it. task : what you are building, in a few words. This is what a partner reads in survey() to decide whether your work blocks theirs, so "migrate the auth middleware" beats "fixes". touches : files/modules you will modify — the "get in the way" check. Overlap is set intersection against peers' touches, so name the real paths you will edit; a directory only matches a peer who named that same directory, not files inside it. requires : files/modules you depend on but will NOT edit (omit if none) — the "rely on their build" check. branch : the branch your work will live on force : claim even if an overlap with an active peer claim is detected. Use it only after talking to the peer; it does not resolve the collision, it just proceeds despite it. Refuses (status="blocked") if your plan collides with a peer's active claim, returning exactly what overlaps and with whom, unless force=True. The overlap is evaluated against freshly fetched state immediately before the push, so a peer who claimed first will be seen here.
| Name | Type | Req | Description |
|---|---|---|---|
| branch | string | – | – |
| force | boolean | – | – |
| requires | – | – | – |
| task | string | yes | – |
| touches | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
finish ~152
Close the loop: mark your claim done AND open a GitHub pull request from your claimed branch into the default branch, so your work lands in review. note : PR body (falls back to your claim's existing note). title : PR title (falls back to your claim's task). draft : open the PR as a draft. Your branch must already be pushed. If a PR for the branch already exists, its URL is returned instead of erroring. Requires the `gh` CLI. The claim is marked done (with auto-captured `changed_files`) after the PR is opened.
| Name | Type | Req | Description |
|---|---|---|---|
| draft | boolean | – | – |
| note | string | – | – |
| title | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
history ~71
The coordination timeline: who claimed, finished, or released what, and when — read from the git history of claims.json. Newest first. `limit` caps how many events are returned. Useful for 'what has my partner been doing?' without needing them online.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
provision ~355
Create the shared GitHub repository if it doesn't exist yet, then leave both collaborators ready to use the claim protocol. Run this ONCE, by one person, before anyone calls survey()/claim(). It is idempotent — safe to re-run; each step is skipped if already done. What it does, in order: 1. Ensure AGENTSYNC_REPO is a local git repo with at least one commit (creates the directory + a starter README if empty). 2. Create the repo on GitHub via `gh` (private unless private=False) and wire up the 'origin' remote, or reuse an existing remote/repo. 3. Push the default branch. 4. Seed the coordination branch (agentsync) with an empty claims.json. 5. Invite the partner(s) as push collaborators, if any usernames are given here or via AGENTSYNC_PARTNER_GITHUB. repo : 'owner/name', bare 'name' (owner = you), or '' to use the AGENTSYNC_REPO folder name. partner_github : one or more GitHub usernames to invite, comma- or space-separated (overrides env). Supports a whole team. private : create the repo private (default) or public. description : optional GitHub repo description. Requires the `gh` CLI, authenticated (`gh auth login`) with 'repo' scope. Returns a summary of what was created plus the clone URL to send your partners.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | – |
| partner_github | string | – | – |
| private | boolean | – | – |
| repo | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
release ~215
Abandon your current claim WITHOUT marking it done, freeing the files you were holding so a partner can take them over. Use this when you're dropping the task or stepping away — otherwise a crashed or abandoned claim blocks those files indefinitely (the only other exits are 'done' or manual git surgery). Pushes immediately. note : optional free text recording WHY you are dropping the claim, e.g. "blocked on the API rewrite, not started" or "handing over to Sam". It replaces the claim's existing note and is what a partner reads in history() when deciding whether to pick the work up, so a released claim with no note leaves them guessing whether anything was done. Only your OWN claim can be released; you cannot release a partner's. The release is recorded in history rather than erased, so the attempt is still visible afterwards. Returns JSON with the released claim, or an error if you hold no active claim.
| Name | Type | Req | Description |
|---|---|---|---|
| note | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
survey ~114
Pull the latest coordination state and report what every *other* agent has claimed: task, files touched, dependencies, branch, status, timestamp. Works for any number of collaborators, not just one. Each partner entry is annotated with `age_hours` and a `stale` flag (an in-progress claim older than AGENTSYNC_STALE_HOURS, default 24h) so you can spot a partner who may have crashed or wandered off still holding files. Call this before planning and again after finishing work.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
update_status ~106
Update your own claim's status (e.g. 'in-progress' -> 'done') and optionally attach 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). To drop a claim without finishing it, use release(); to finish AND open a PR, use finish().
| Name | Type | Req | Description |
|---|---|---|---|
| note | string | – | – |
| status | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
What is the agentsync MCP server?
agentsync is an MCP server listed in the public MCP registry as io.github.jarmstrong158/agentsync. Multi-agent coordination MCP: claim work, survey peers, resolve conflicts via a git branch as CAS. This page covers its PyPI package (agentsync-mcp).
Is the agentsync MCP server safe to use?
agentsync scores 76 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the agentsync MCP server expose?
agentsync exposes 9 tools: add_collaborator, provision, survey, claim, check_conflicts, and 4 more. Their descriptions and schemas cost roughly 1,780 tokens of context every time the server is loaded.
Is the agentsync MCP server still maintained?
agentsync is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.