drawcommons-ledger-mcp
Read-only MCP server for a public audit ledger. Zero dependencies (Python standard library only, stdio transport). No accounts, no API keys, no write path.
Beta. The ledger currently holds 4 structural samples with fake IDs, not real records, and the governing protocol is published for comment but not yet in force. Cite these numbers only with that caveat attached.
Run
uvx drawcommons-ledger-mcp # or: pip install drawcommons-ledger-mcp
Client configuration (Claude Desktop / Cursor / Claude Code):
{
"mcpServers": {
"ledger": {
"command": "uvx",
"args": ["drawcommons-ledger-mcp"]
}
}
}
Point it at another deployment with --base https://your-host (or LEDGER_BASE).
Tools
| tool | returns |
|---|---|
ledger_items |
entries (paginated, filterable by type), each with prev_hash / hash |
ledger_verify |
verdict + the server's own claim + recomputation done locally + anchor |
ledger_export |
the exported bytes' sha256 (the anchor), byte count, optionally the raw text |
ledger_verify does not trust the server's ok. It fetches the entries and the export,
recomputes sha256(prev_hash + "\n" + canonical(entry)) for every entry on the calling
machine, checks that each prev_hash links to the previous hash, and recomputes the
anchor from the exported bytes. Verdicts: agree, chain_broken (with the first bad
index), server_disagrees (the server's own numbers contradict the entries it served).
A tool that merely repeats the upstream conclusion turns an upstream error into "verified". That is the one thing this package exists to avoid.
Boundaries
- Read-only, one address. The base URL is fixed at launch; tool arguments cannot change it (otherwise the server becomes an open proxy on the caller's machine).
- Bytes, not facts. A complete hash chain only proves the bytes you fetched match what was chained. Someone can record a false entry honestly, and the chain stays valid.
- Beta. Fields may change with the ledger version, which is why no
outputSchemais declared: declaring one would promise the fields never grow or shrink.
Source, tests and the Chinese-language docs: https://github.com/leigui-888/drawcommons/tree/main/repo/examples/04-mcp-server
License
Apache-2.0 (full text: https://github.com/leigui-888/drawcommons/blob/main/repo/LICENSE). The data the API returns is CC-BY-4.0: attribution required, commercial use allowed.
Metadata
Release files for drawcommons-ledger-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| drawcommons_ledger_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for drawcommons_ledger_mcp-0.1.0-py3-none-any.whl |
Release files / drawcommons_ledger_mcp-0.1.0-py3-none-any.whl
| Download URL | drawcommons_ledger_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0fbc241b0803f81bda2c9de54ae844b2cd44c2cd850f53fdeb73bc2c485109fa
|
|
BLAKE2b-256 checksum How to use checksums |
eb7f894a68c99b7e3c80c7958df871ef19abec321613918f1194754d82ceb9f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for drawcommons-ledger-mcp 0.1.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.