MCPサーバー

provenance

io.github.MarkovianProtocol/provenance
セキュリティ 公開・接続可能 MCP 2025-11-25

このMCPでできること

Creates, verifies, and traces tamper-evident provenance stamps in a public witnessed transparency log.

markovian_notarize
Markovian Notarize
Notarize any file or hash into a public transparency log cosigned by 7 witnesses from 6 operators and anchored to Bitcoin. Hash-only: pass a sha256 hex string, or with the local stdio server a file path (hashed on your machine; the file never leaves it) — only 32 bytes reach the log. Returns a receipt with the leaf index, inclusion-proof URL, an offline c2sp.org/tlog-proof bundle URL, and the witness trust policy. Proves the hash existed no later than the covering checkpoint, in a single history everyone sees identically; does NOT prove authorship or that the content is true. Rate-limited (10/hour). Typical use: notarize an output the moment it is produced, keep the file, hand anyone the proof URL.
外部アクセスあり
入力スキーマ
{'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Local stdio server only: file to notarize, hashed on your machine and never uploaded. The hosted server refuses it.'}, 'sha256': {'type': 'string', 'description': "Alternatively, a sha256 hex digest (with or without 'sha256:' prefix)."}}, 'additionalProperties': False}
markovian_stamp
Markovian Provenance Stamp
Commit any data (an AI output, a decision, a record) into a public, witnessed transparency log and get back a verifiable, tamper-evident provenance stamp (canonical markovian-provenance/v1). It proves the data existed and was committed at this time; it does NOT assert the data is correct (provenance, not truth). No wallet, account, or funding is required, the first stamp just works, and only the SHA-256 hash of your data is sent to the public API, the raw data is never stored. The returned merkle_root is the handle: save it, then call markovian_verify(merkle_root) to prove integrity later, or pass prior stamps in derived_from to build a lineage you can walk with markovian_trace. Typical use: stamp an agent output the moment it is produced, so anyone can later confirm it was not altered.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'string', 'description': 'Exact bytes/string to stamp. Hashed server-side; raw data is not stored.'}, 'label': {'type': 'string', 'description': 'Optional human label for the stamp.'}, 'wallet': {'type': 'string', 'description': 'Optional. Omit and the protocol mints an ephemeral committer for you. Provide one to attribute the stamp.'}, 'derived_from': {'type': 'array', 'items': {'type': 'object', 'required': ['merkle_root', 'data_hash'], 'properties': {'data_hash': {'type': 'string'}, 'merkle_root': {'type': 'string'}, 'relationship': {'type': 'string'}}}, 'description': 'Optional lineage. A list of prior stamps this output was derived from, each {merkle_root, data_hash}. Bound inside the committed bytes so the link is tamper-evident; the payload is published so markovian_trace can walk it.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['schema', 'merkle_root', 'data_hash', 'wallet', 'stamped_at', 'verify', 'attestation'], 'properties': {'issuer': {'type': 'string', 'description': 'The committer handle, as named in the transparency-log leaf. Attribution metadata, not a cryptographic identity.'}, 'schema': {'type': 'string'}, 'verify': {'type': 'string'}, 'wallet': {'type': 'string', 'description': 'Compatibility alias for issuer (kept because existing clients require it).'}, 'data_hash': {'type': 'string'}, 'stamped_at': {'type': 'string'}, 'attestation': {'type': 'string'}, 'merkle_root': {'type': 'string'}, 'block_height': {'type': ['integer', 'null'], 'description': 'Legacy field, null for stamps after 2026-07. Historical values are internal sequence heights of a retired chain (never a Bitcoin block).'}, 'zk_commitment': {'type': ['string', 'null'], 'description': 'Legacy field, null for stamps after 2026-07. Historical values are Pedersen points that shipped without an opening, so clients could never check them.'}}}
markovian_trace
Markovian Trace
Walk and verify a stamp's full provenance lineage by merkle_root. Use this when a stamp was created with derived_from links, to map what an output was built from. Returns a MAP of the graph (not a yes/no verdict): each node carries hash_binds and anchored, each edge carries edge_verified, and `valid` is true only if every node and edge checks out. A node whose payload was never published is an unresolved frontier (resolved:false). Read-only. Provenance, not truth.
読み取り専用 外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['merkle_root'], 'properties': {'merkle_root': {'type': 'string', 'description': 'root of the stamp to trace.'}}, 'additionalProperties': False}
markovian_verify
Markovian Verify
Look up a Markovian stamp by its merkle_root against the public verifier, with no key or account. verified:true means the stamp record exists and the response echoes its committed data_hash — recompute your content's SHA-256 and compare it to that data_hash yourself to confirm the content is unaltered. An unknown merkle_root returns verified:false. The trust-nobody path is the stamp's witnessed transparency-log leaf (log_index / inclusion URL from markovian_stamp): its inclusion proof verifies against the witnessed log head with no trust in this endpoint. Read-only; anyone can run it, including a party who does not trust the stamper.
読み取り専用 外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['merkle_root'], 'properties': {'merkle_root': {'type': 'string', 'description': 'merkle_root to verify.'}}, 'additionalProperties': False}
変更
markovian_notarize
2026年9月25日2:52
追加
markovian_trace
2026年9月17日12:43
追加
markovian_verify
2026年9月17日12:43
追加
markovian_stamp
2026年9月17日12:43
追加
markovian_notarize
2026年9月17日12:43