lex-provenance-mcp
LexProvenance - lex-provenance-mcp
Verifiable, provenance-first legal corpora for AI systems. A read-only Model Context Protocol connector that lets AI agents search, fetch, and cite neutral, provenance-tracked bodies of law - with a tamper-evident content hash on every citation.
Status: v0.1 - public scaffold. This is a deliberately thin, credible interface layer, not a finished product. See the roadmap and what this is not.
Why this, not a generic legislation feed?
Most legal connectors give an AI the current text of a law and a link. This one gives it a verifiable, point-in-time, regime-curated record - the difference between a citation you can defend and a snippet you have to double-check:
Tamper-evident - every provision carries a SHA-256 content hash you can re-check, not just a URL.
Point-in-time - dated versions let you cite the law as it stood on a given day, not only "current".
Structured & neutral - a strict wall between official text and generated content, plus neutral concept tags and cross-references.
Authentic-language - the official text in its own language is the record; any translation is labelled unofficial, so the binding text is never ambiguous (BBNJ ships all six authentic UN languages).
Curated by regime - the assembled, verified corpus for a specific body of law (an AML or digital-asset regime), not a firehose of every Act.
It's also corpus-agnostic: one interface over any provenance-first corpus that exposes a standard manifest - three public "global-commons" corpora today, any regime tomorrow. The connector is the interface; the corpora are the asset.
What it connects (today)
Corpus | Domain | Canonical home |
| International & national space law | github · Hugging Face dataset |
| Deep seabed mining law (UNCLOS Part XI, ISA, US regime) | github · Hugging Face dataset |
| BBNJ / High Seas Treaty & framework | github · Hugging Face dataset |
This repo ships only sample manifests (a few records each) that point to those canonical sources. It does not contain the full corpora.
Tools (read-only)
Tool | What it does | Tier |
| List available corpora + coverage | Free |
| Keyword search within one corpus | Free |
| Return one document's metadata + provenance | Free |
| Return one provision (article/section) | Free |
| Return a verifiable citation (source, date, SHA-256 hash, version) | Free |
| Relate/compare provisions across corpora | Stub -> premium |
Every tool is read-only. There are no write, edit, ingest, delete, or shell tools - by
design, and enforced by a test (tests/test_read_only.py). See docs/security.md.
How verifiable citations work
get_citation returns the SHA-256 hash and dated version of the exact text it cites - so a
citation points not at "Article 14" in the abstract but at a specific, reproducible, tamper-checkable
state of Article 14. Change one character and the hash changes, so the citation can be re-verified
later. See docs/citation-model.md.
Quickstart
pip install -e ".[dev]" # pure-Python tool logic + tests, no MCP SDK needed
python -m pytest -q # all green
# To actually serve over MCP (stdio):
pip install -e ".[mcp]"
lex-provenance-mcp # or: python -m lex_provenance_mcp.serverTry the tool logic directly (no SDK required):
from lex_provenance_mcp import tools
print(tools.list_corpora())
print(tools.search_corpus("liability", corpus_id="space_law"))
print(tools.get_citation("space_law", document_id="outer-space-treaty", provision="Article VI"))Commercial boundary
This connector is the free razor. The enriched, connected, and hosted layers are a separate
paid offering - see docs/commercial.md. In short:
Free / open: the connector, schemas, sample manifests, docs, in-corpus search/fetch/cite.
Not in this repo (premium): full enriched corpora, cross-corpus reasoning, embeddings, monitoring / treaty-status intelligence, hosted search, private-corpus onboarding.
What this is not
Not the corpus-construction methodology - that is a separate, private toolkit. This repo reveals what you fetch, never how the record is built.
Not legal advice. See
docs/legal-disclaimer.md.
Roadmap
v0.1 (this): read-only connector scaffold, schemas, sample manifests, in-corpus tools, verifiable citations, adapter placeholders. No hosted service, no full corpus, no premium layer.
v0.2: local search over selected public corpora; adapter examples that actually run.
v0.3: richer citation model + corpus manifests consumed directly from canonical repos.
Later (premium, not here): hosted MCP endpoint, cross-corpus intelligence, monitoring, institutional access.
Renaming
The public identity lives in one file - mcp_server/identity.py.
Change BRAND_NAME, REPO_SLUG, TOOL_NAMESPACE, PACKAGE_NAME there (and rename the folder)
to switch to any alternative name; nothing else hard-codes it.
Licence
Code and schemas: Apache-2.0 (LICENSE). Docs: CC BY 4.0 unless stated.
Source legal texts are official public documents and are never relicensed. See NOTICE.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dacheah/lex-provenance-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server