Reef
MCPB · REEF-0.4.2-X86_64-UNKNOWN-LINUX-MUSL.MCPB · 4 COMPONENTS
Version control for fleets of coding agents: isolated workspaces, status, diff and history.
Last scanned (3 hours ago)
Scores higher than 82% of MCPB servers
Category Version Control
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 Security0
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to reef-vcs/reef). View diagnostics → Pass
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 0 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability63
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 3216 tokens (~153/item across 21 items; 21 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 Management10
- Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 22 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
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Checks we ran (12)
- Source repository
- Provenance
- License
- Maintenance
- Security disclosure
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Checks we could not complete (4)
These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.
- Malware scan in Supply Chain Security (scores 0 for this)No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
- Known CVEs in Supply Chain Security (scores 0 for this)Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
- Install scripts in Supply Chain Security (scores 0 for this)Install-script risk not yet assessed.
- Dependency health in Supply Chain Security (scores 0 for this)Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
Does not apply to this package (2)
- Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
- Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
The score does not measure everything. What the score does not measure →
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.
- 5 Nov 26 +1
- Stability: 0.07 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- Package version: 0.4.1 → 0.4.2 functional
- 4 Nov 26 +1
- Tool safety: pass → unverified ▼ security
- Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Stability: unverified → 0.07 ▲ functional
- First check of Schema quality: unverified functional
- Package version: 0.3.0 → 0.4.1 functional
- Package version: 0.3.0 → 0.4.0 functional
- 2 Nov 26 49
First indexed and scored.
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 5 Nov 2026 · Analysed mcpb/https://github.com/reef-vcs/reef/releases/download/v0.4.2/reef-0.4.2-x86_64-unknown-linux-musl.mcpb@0.4.2
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | mcpb |
| Reason | Verified |
| Discovered via | GitHub artifact attestations |
| Source repo | reef-vcs/reef |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/reef-vcs/reef/.github/workflows/release.yml@refs/tags/v0.4.2 |
| Rekor log index | 3698745684 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha256:4ef6c251a6732629e3b2d8291f4961b37b4b4507845f38aa594331900e374a97 |
Background: How many MCP packages publish verified provenance →
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 →
abandon_change Abandon change ~111
Abandon a change: its descendants move onto its parents. Returns {abandoned_commit_id, operation, workspace}.
| Name | Type | Req | Description |
|---|---|---|---|
| expected_commit_id | string | – | Refuse unless the revision is still this commit (full id). |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| revision | string | yes | The change: a change or commit id, or a revset naming one commit. |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
create_workspace Create workspace ~178
Create a workspace: a copy-on-write directory on a new change (or an existing one), snapshotted as it is written. Its lease is kept alive while the server runs; release_workspace it when done, or it is reclaimed with a final snapshot about 35 minutes after the server stops. Returns the workspace and its path.
| Name | Type | Req | Description |
|---|---|---|---|
| change | string | – | Edit this existing change (id, bookmark, or a revset naming one commit). |
| missing_stores | string | – | When a declared dependency store is not built [default: fail]. |
| new_on | string | – | Start a new change on this revision [default: the repository's default start]. |
| purpose | string | – | What the workspace is for, shown in list_workspaces. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
describe_change Describe change ~137
Set a change's description (its commit message). Returns {change, operation, workspace}; operation is null when the description was already that.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | The new description; empty clears it. |
| expected_commit_id | string | – | Refuse unless the revision is still this commit (full id). |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| revision | string | – | The change: a change or commit id, bookmark, or revset naming one commit (default: `@`). |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
edit_files Edit files ~221
Write, replace text in, delete, copy or chmod files in a change (revision) or a new change (new_on), as one operation, without a directory; workspaces on the change get the new files. Rename: copy_from the old path, and delete it, in one call. Returns {change, operation, workspace}.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | The change's new description [default: unchanged, or empty for new_on]. |
| edits | array | yes | The edits, 1 to 1000, applied in order. |
| expected_commit_id | string | – | Refuse unless the revision is still this commit (full id). |
| new_on | string | – | Create a new change on this revision with the edits; give this or revision. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| revision | string | – | Rewrite this change (`@` for the workspace's); give this or new_on. |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
get_change Get change ~137
Show one change: its ids, description, parents and state, without its files (get_diff has them). Returns {change, at_operation}.
| Name | Type | Req | Description |
|---|---|---|---|
| at_operation | string | – | Read as of this operation (id or prefix). |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| revision | string | – | A change or commit id, bookmark, or revset naming one commit (default: `@`, the workspace's change). |
| skip_snapshot | boolean | – | Skip the snapshot; read the last one. |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
get_diff Get diff ~294
A change's diff against its parents, or two revisions' diff, a page of files at a time. Returns {from_commit_ids, to_commit_id, files, symbol_summary, next_page_token}.
| Name | Type | Req | Description |
|---|---|---|---|
| at_operation | string | – | Read as of this operation (id or prefix). |
| context_lines | integer | – | Context lines [default: 3]. |
| expand | array | – | Only these symbols' lines. |
| format | string | – | `hunks`, `stat` (line counts), `summary` (paths) or `symbols` (changed symbols, call sites) [default: hunks]. |
| from_revision | string | – | The old side [default: the new side's parents]. |
| max_lines_per_file | integer | – | Hunk lines per file [default: 1000]. |
| page_size | integer | – | Files per page [default: 20, at most 1000]. |
| page_token | string | – | From the last result. |
| paths | array | – | Only these paths, repository-relative or absolute inside the scope. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| skip_snapshot | boolean | – | Skip the snapshot; read the last one. |
| to_revision | string | – | The new side (default: `@`). |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
get_operation Get operation ~54
Show one operation and what it changed (effects). Returns the operation.
| Name | Type | Req | Description |
|---|---|---|---|
| operation_id | string | yes | An operation id or unique prefix. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
get_status Get status ~107
Show what the workspace changes, after a snapshot, and the repository's state. Returns {repository_status, workspace_status}.
| Name | Type | Req | Description |
|---|---|---|---|
| max_files | integer | – | List at most this many changed files [default: 100]. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| skip_snapshot | boolean | – | Report the last snapshot instead of snapshotting the workspace first. |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
get_workspace Get workspace ~84
Show a workspace: its directory, change, lease and recent snapshots. Returns the workspace as `reef ws inspect -o json` prints it.
| Name | Type | Req | Description |
|---|---|---|---|
| disk_usage | boolean | – | Walk the directory for its disk usage. |
| snapshot_first | boolean | – | Snapshot the workspace's files first. |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
list_changes List changes ~164
List changes, newest first, as `reef log` does. Returns {entries, at_operation, next_page_token}.
| Name | Type | Req | Description |
|---|---|---|---|
| at_operation | string | – | Read as of this operation (id or prefix). |
| page_size | integer | – | Entries per page [default: 50, at most 1000]. |
| page_token | string | – | From the last result. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| revset | string | – | A jj revset, such as `trunk()..@` [default: Reef's log set]. |
| skip_snapshot | boolean | – | Skip the snapshot; read the last one. |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
list_files List files ~189
List a directory at any revision. Returns {entries, commit_id, at_operation, next_page_token}.
| Name | Type | Req | Description |
|---|---|---|---|
| at_operation | string | – | Read as of this operation (id or prefix). |
| page_size | integer | – | Entries per page [default: 200, at most 1000]. |
| page_token | string | – | From the last result. |
| path | string | – | The directory, repository-relative or absolute inside the scope [default: the root]. |
| recursive | boolean | – | List everything under the directory, not only its entries. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| revision | string | – | The revision to list at (default: `@`). |
| skip_snapshot | boolean | – | Skip the snapshot; read the last one. |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
list_operations List operations ~172
List the repository's operation log, newest first: every snapshot, describe, edit and workspace change, by whom. Returns {operations, next_page_token}.
| Name | Type | Req | Description |
|---|---|---|---|
| agents | array | – | Only operations by these agents. |
| changes | array | – | Only operations touching these changes (hex or reverse-hex prefixes). |
| include_effects | boolean | – | Include what each operation changed. |
| kinds | array | – | Only operations of these kinds. |
| page_size | integer | – | Operations per page, newest first [default: 50, at most 1000]. |
| page_token | string | – | From the last result. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| workspaces | array | – | Only operations for these workspaces (ids, prefixes, or paths). |
No output schema declared.
No examples provided.
list_repositories List repositories ~62
List the repositories registered with Reef, oldest first. Returns {repositories, next_page_token}.
| Name | Type | Req | Description |
|---|---|---|---|
| page_size | integer | – | Repositories per page [default: 100, at most 1000]. |
| page_token | string | – | From the last result. |
No output schema declared.
No examples provided.
list_workspaces List workspaces ~146
List a repository's workspaces, newest first: each is a directory leased to one agent, editing one change, with how many files it changed. Returns {workspaces, next_page_token}.
| Name | Type | Req | Description |
|---|---|---|---|
| all_repositories | boolean | – | Workspaces of every registered repository instead of one. |
| owner | string | – | Only workspaces with this owner. |
| page_size | integer | – | Workspaces per page [default: 50, at most 1000]. |
| page_token | string | – | From the last result. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| states | array | – | Only these states [default: active]. |
No output schema declared.
No examples provided.
move_workspace Move workspace ~130
Point a workspace at another change, or a new change on a revision, after a final snapshot of the one it leaves; its files are checked out again. Returns the workspace afterwards.
| Name | Type | Req | Description |
|---|---|---|---|
| change | string | – | Edit this existing change (id, bookmark, or a revset naming one commit). |
| missing_stores | string | – | When a declared dependency store is not built [default: fail]. |
| new_on | string | – | Start a new change on this revision [default: the repository's default start]. |
| workspace | string | yes | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
query_changes Query changes ~162
Which changes touched these files or symbols: who wrote them, when, and whether they landed. Newest first. Returns {changes, coverage, next_page_token}.
| Name | Type | Req | Description |
|---|---|---|---|
| agents | array | – | Only changes these agents wrote. |
| outcomes | array | – | Only these outcomes. |
| page_size | integer | – | Changes per page [default: 20, at most 1000]. |
| page_token | string | – | From the last result. |
| paths | array | – | Files or directories, repository-relative. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| since | string | – | Only changes written since (RFC 3339). |
| symbols | array | – | Symbol, `Class#method()` suffix, or name. |
No output schema declared.
No examples provided.
read_file Read file ~212
Read a file at any revision, one range at a time, without a directory; pass the first range's at_operation on to read one version. Returns {path, size, content (text) or content_base64, offset, next_offset}; next_offset is null at the end.
| Name | Type | Req | Description |
|---|---|---|---|
| at_operation | string | – | Read as of this operation (id or prefix). |
| limit | integer | – | At most this many bytes [default: 65536, at most 1048576]. |
| offset | integer | – | The first byte to read [default: 0]. |
| path | string | yes | The file, repository-relative or absolute inside the scope. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| revision | string | – | The revision to read at (default: `@`). |
| skip_snapshot | boolean | – | Skip the snapshot; read the last one. |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
release_workspace Release workspace ~59
Take a final snapshot of a workspace and remove its directory; its change stays in the repository. Returns {id, final_op_id, snapshot_taken, freed_bytes}.
| Name | Type | Req | Description |
|---|---|---|---|
| workspace | string | yes | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
snapshot_workspace Snapshot workspace ~68
Record the workspace's files now, as its change's new commit. Returns {changed, commit_id, operation, workspace}.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | The snapshot operation's description [default: Reef's]. |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
undo_operation Undo operation ~95
Revert what one operation did, as a new operation (list_operations lists them). Returns {operation, snapshot, undone_operation_id, workspace}.
| Name | Type | Req | Description |
|---|---|---|---|
| operation_id | string | yes | The operation to revert (id or unique prefix; list_operations lists them). |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| workspace | string | – | Workspace: id, prefix, or absolute path in it. |
No output schema declared.
No examples provided.
wait_for_operations Wait for operations ~236
Wait until operations matching the filter are recorded (another agent's describe, edit or snapshot) or the timeout passes; over 60 s may hit the client's tool timeout. Returns {operations (oldest first, at most 100), last_operation_id, timed_out}; pass last_operation_id back as after_operation for the next ones.
| Name | Type | Req | Description |
|---|---|---|---|
| after_operation | string | – | Wait for operations after this one (id or prefix), such as the last result's last_operation_id [default: the newest now]. |
| agents | array | – | Only operations by these agents. |
| changes | array | – | Only operations touching these changes (hex or reverse-hex prefixes). |
| include_effects | boolean | – | Include what each operation changed. |
| kinds | array | – | Only operations of these kinds. |
| repo | string | – | Repository: id, prefix, or absolute path in it. |
| timeout_seconds | integer | – | Give up after this many seconds, 0 to check once [default: 30, at most 300]. |
| workspaces | array | – | Only operations for these workspaces (ids, prefixes, or paths). |
No output schema declared.
No examples provided.
How do I install the Reef MCP server?
Reef ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 4ef6c251a6732629e3b2d8291f4961b37b4b4507845f38aa594331900e374a97; the commands to do that are on this page. If it does not match, do not open it.
mcpb · reef-0.4.2-x86_64-unknown-linux-musl.mcpb
Download bundleCheck the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.
SHA-256
4ef6c251a6732629e3b2d8291f4961b37b4b4507845f38aa594331900e374a97
macOS / Linux
echo "4ef6c251a6732629e3b2d8291f4961b37b4b4507845f38aa594331900e374a97 reef-0.4.2-x86_64-unknown-linux-musl.mcpb" | shasum -a 256 -c
Windows (PowerShell)
(Get-FileHash -Algorithm SHA256 .\reef-0.4.2-x86_64-unknown-linux-musl.mcpb).Hash -eq "4ef6c251a6732629e3b2d8291f4961b37b4b4507845f38aa594331900e374a97"
Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.
What is the Reef MCP server?
Reef is an MCP server listed in the public MCP registry as io.github.reef-vcs/reef. Version control for fleets of coding agents: isolated workspaces, status, diff and history. This page covers its MCPB bundle (https://github.com/reef-vcs/reef/releases/download/v0.4.2/reef-0.4.2-x86_64-unknown-linux-musl.mcpb).
Is the Reef MCP server safe to use?
Reef scores 51 out of 100 on VerifyMCP. Its build provenance is signed and verified. 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 Reef MCP server expose?
Reef exposes 21 tools: list_repositories, list_workspaces, get_workspace, get_status, list_changes, and 16 more. Their descriptions and schemas cost roughly 3,018 tokens of context every time the server is loaded.
What licence is the Reef MCP server under?
Reef declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.
What did VerifyMCP test on the Reef MCP server?
VerifyMCP ran 12 checks on Reef, covering Source repository, Provenance, License, Maintenance and 8 more. 4 items could not be completed, a gap on our side rather than a finding about Reef: Malware scan, Known CVEs, Install scripts and Dependency health. One category scores 0 for that reason, because we only credit what we can confirm. Endpoint Security and Transport & Reachability do not apply to an MCPB bundle, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.