vercy
Two tools for agent memory, in one package with no dependencies.
vercy check- checks a memory store against the Vercy Governance Overlay: the fields a store needs to answer questions about time, authority and disclosure.vercy mcp- a read-only MCP server over the published Vercy model catalogue.
Apache-2.0. No telemetry. The checker makes no network calls. The MCP server only sends GET requests to
one origin, https://ver.cy by default (VERCY_BASE_URL to use a mirror), and refuses any URL or
redirect outside it.
Check a store
uvx vercy check memory.jsonl
Input is a JSON array, or one JSON object per line. Your field names can stay your own:
uvx vercy check graph.jsonl --map record_id=uuid,valid_from=valid_at,valid_to=invalid_at,source=episode
records: 30
level reached: 1 of 3
profile: vercy-governance-overlay 1.0
concept_owner level 2 MUST D-101, D-102, D-103, D-201, D-202, D-301 and 24 more
conflict_policy level 2 MUST no conflict policy anywhere in the store
| Level | Fields | What the fields let a host do, if it uses them |
|---|---|---|
| 1 | record_id, valid_from, valid_to |
Answers about any date; an update can name what it replaces |
| 2 | source, concept_owner, conflict_policy |
Disagreement resolved by rule, change requests routed to an owner |
| 3 | release_to where a record is restricted |
What may cross a boundary, without leaking or over-refusing |
Options: --json for a machine report, --min-level 2 to raise the bar, --policy when the conflict
policy lives outside the records. Exit codes: 0 the store reaches the level, 1 it does not,
2 the input could not be read. That makes it a CI gate.
What a pass means. The overlay fields are present and not empty (valid_to only has to be
present: null means still open). Nothing more. Values are not
validated, and a pass does not mean a host enforces them: a record can carry release_to while another retrieval path ignores it.
Enforcement is a separate, testable claim, defined in ENFORCEMENT-CONTRACT.md.
Use Vercy from an agent
claude mcp add vercy -- uvx vercy mcp
Or in any MCP client configuration:
{ "mcpServers": { "vercy": { "command": "uvx", "args": ["vercy", "mcp"] } } }
| Tool | What it returns |
|---|---|
search_models |
Ranked models for a name or need |
resolve_model |
One model by id, model id, slug or unique alias; with include_spec, the specification and whether its sha256 digest verified |
get_overlay_profile |
The overlay fields, levels, definitions and measured effects |
check_record |
The vercy check report for one record or many, same code path as the CLI |
cite |
Citation text, page URL, specification URL, version and digest |
All tools are read-only. Tool failures come back as {"error": code, "message": ...} with codes an
agent can branch on: unknown_model, not_published, ambiguous_id, upstream_unreachable,
foreign_url. Malformed calls get JSON-RPC errors with the request id kept.
Why these fields
Each field is in the profile because a published benchmark measured what changes without it. On the collaborative-memory benchmark, a bitemporal graph without owner and conflict rule answered 77.4 percent. Adding a governance catalogue to the same graph took it to 93.5 percent (p = 0.039). A team wiki and a Vercy dimension carrying the same facts with the fields scored 96.8 and 95.2 percent. Methods, raw runs and harnesses: ver.cy/benchmarks/collaborative-memory-v1.
Development
python -m unittest discover -s tests
src/vercy/data/profile.json is generated from profile.yaml (the file published at
https://ver.cy/overlay/profile.yaml) by python tools/sync_profile.py.
Metadata
Release files for vercy 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vercy-0.1.0.tar.gz | 30.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vercy-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.8 kB
Release files / vercy-0.1.0.tar.gz
| Download URL | vercy-0.1.0.tar.gz |
|---|---|
| Size | 30.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
453cb5d3be68d1eae27581e5780e8f12cff6aafd753d23bf8380738753cb80ab
|
|
BLAKE2b-256 checksum How to use checksums |
1e585edd221ba1e35b241b62be716e038dcf84619e58ea43fc9f35c0e5a78c69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / vercy-0.1.0-py3-none-any.whl
| Download URL | vercy-0.1.0-py3-none-any.whl |
|---|---|
| Size | 27.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
41199a87d91422c003abd5082eaf6347fdc9a4f99ed39cd023dfc7b50417e5ce
|
|
BLAKE2b-256 checksum How to use checksums |
ecd5873e2dbeda4aa69e8c687f9a99a2432926009dd1cd6e8ff5fde75c592118
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency log