Server data from the Official MCP Registry
Prepare and verify TAP/Ordinals payloads for AI agent memories on Bitcoin.
About
Prepare and verify TAP/Ordinals payloads for AI agent memories on Bitcoin.
Security Report
DMT Receipts is a local stdio MCP server that canonicalizes memory JSON, hashes it, and optionally fetches public Ordinals content and Trac index metadata for verification; it does not broadcast transactions or handle credentials. The main concerns are that verify_inscription sends the inscription_id to external public endpoints (ordinals.com and tap.trac.network) and that the server handles no authentication, which is acceptable for a local tool, though users should avoid placing secrets in memory content since it is publicly inscribed. Permissions (outbound HTTP, WebSocket to Trac, optional env var read) match the stated purpose and the Developer Tools baseline. Supply chain analysis found 5 known vulnerabilities in dependencies (0 critical, 3 high severity).
4 files analyzed · 8 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-colchora-dmt-receipts": {
"args": [
"-y",
"dmt-receipts-mcp"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
DMT Receipts
Portable, Bitcoin-permanent agent memories via the TAP Protocol / Ordinals.
DMT Receipts is a local stdio MCP server (prepare_memory, verify_inscription) and a browser demo. It turns a five-field dmt-memory/v1 JSON object into an inscription-ready payload. Permanence means those memory bytes are committed on Bitcoin L1 as Ordinals inscription content under TAP ("p":"tap"). Keep the memory and inscription id / txid in storage you control. After prepare_memory, status is prepared. A wallet or Ordinals tool inscribes the bytes and pays the Bitcoin fee.
Live site · Protocol recipe · Repo show-and-tell · Full specification · TAP specs
Maintainer: github.com/Colchora
Start here
The live site prepares and verifies a memory in the browser. Nothing is uploaded; receipts stay in localStorage until you export them. This package is the same protocol as a local MCP server. It is not published to the npm registry, so install it from a clone (below) or use the site.
| What you want | Where |
|---|---|
| Prepare a memory, no install | Live app → Anchor |
| Verify an inscription | Live app → Verify |
| Receipts saved in this browser | Live app → Receipts |
| Prove the local tools | npm ci then node examples/run-demo.mjs |
| Agent index (tools, run, demo) | llms.txt in this repo |
| Canonical byte rules | live llms.txt |
| Full protocol | spec.md |
| Machine-readable manifest | agent.json |
| MCP registry id | io.github.Colchora/dmt-receipts (server.json, glama.json) |
Optional honor-system funding is separate from inscription fees: Support and Buyback.
What a receipt does—and does not—establish
| A receipt can establish | A receipt cannot establish |
|---|---|
These exact canonical bytes were inscribed as Ordinals content in a Bitcoin transaction (when inscription_id / content match). | Who created or owns those bytes; authorship needs a separate signature scheme. |
Local verify_inscription can recompute the digest and optionally fetch public inscription content for comparison. | Truth, accuracy, originality, intent, or exclusive ownership of the memory. |
| TAP indexers / Ordinals explorers can show the inscription independently of this repo. | A free hash-only calendar proof. Inscription fees are real Bitcoin fees. |
This MCP server does not broadcast transactions or pay fees. Status after prepare_memory is prepared, not inscribed.
Show and tell
Node.js 18+. npm ci installs dependencies and builds dist/index.js. The server speaks MCP on stdin and stays open until a client connects.
git clone https://github.com/Colchora/dmt-receipts.git
cd dmt-receipts
npm ci
node examples/run-demo.mjs
The script calls prepare_memory on examples/demo-memory.json, then verify_inscription with no inscription id. A passing run prints:
| Check | Value |
|---|---|
sha256 | 76f3f9ff531cecbfe46e676e932f9b0d9d02b3d7c04e5a558924a8092cb0294b |
byte_length | 170 |
status | prepared |
matches_expected_sha256 | true |
ok | false until the bytes are inscribed |
ok stays false while the memory is only prepared. Inscription content that matches the canonical bytes is what makes a later verify succeed. The same numbers are in examples/expected-digest.json.
Cursor loads .cursor/mcp.json after the build. ${workspaceFolder} is the directory that contains that file:
{
"mcpServers": {
"dmt-receipts": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/dist/index.js"]
}
}
}
Claude Desktop and other clients use an absolute path to the built file:
{
"mcpServers": {
"dmt-receipts": {
"command": "node",
"args": ["/absolute/path/to/dmt-receipts/dist/index.js"]
}
}
}
Call prepare_memory with the five fields in examples/demo-memory.json (agent_id, key, content, tags, created_at). Pass the returned memory and sha256 to verify_inscription with fetch_content: false and include_trac: false until you have an inscription_id.
Tools:
prepare_memory— canonicalize a memory, hash it, and return an Ordinals/TAP inscription recipe (content UTF-8 + optionaldtapointer).verify_inscription— recompute the digest; optionally fetch inscription content and compare; return explorer links.
Walkthrough: examples/README.md. Agent index: llms.txt. Protocol bytes: live llms.txt.
Checks
npm run typecheck
npm run build
npm test
npm run typecheck runs tsc --noEmit. The compiler uses strict, noUncheckedIndexedAccess, and exactOptionalPropertyTypes. npm test rebuilds dist/, runs the unit tests, and runs examples/run-demo.mjs.
Prepare, inscribe, verify
- Call
prepare_memorywithagent_id,key, andcontent. - Inscribe
inscription_recipe.content_utf8as Ordinals content (application/jsonortext/plain) with TAP Wallet or any Ordinals/TAP tool. Optional TAPdta(≤512 bytes) may carrysha256:<hex>on token-deploy flows. - Store the memory with
inscription_id/txid. - Call
verify_inscriptionwith the memory andinscription_id.
The same prepare and verify steps work in the browser with no install: Anchor, then Verify.
Canonical memory format
Compact UTF-8 JSON, no trailing newline, keys sorted by Unicode code point, literal non-ASCII:
{"agent_id":"demo-agent","content":"Remember this exact state.","created_at":"2026-11-05T17:00:00Z","key":"notes/hello","tags":["demo"]}
| Field | Type | Notes |
|---|---|---|
agent_id | string | Stable identifier for the agent. |
key | string | Memory key, slug, or path. |
content | string, object, array, number, or boolean | Nested values must be JSON-compatible. |
tags | array of strings | Use [] when there are no tags. |
created_at | string | ISO-8601 UTC ending in Z, whole-second precision. |
| (extensions) | any JSON value | Optional. Extra fields are sorted with everything else and included in the hash. prepare_memory keeps additional tool arguments. |
Protocol and privacy
Inscription content is public on Bitcoin. Do not inscribe secrets. This tool never uploads memory bytes to a backend of its own; if you fetch content during verify, you contact a public explorer.
License
MIT
Support & Tap buyback
Optional honor-system funding lives on the live site:
- Support plans — Free prepare, Support, Tap buyback
- Buyback hub — all contribution proceeds are directed here (USDC address + local payment-reference log)
Prepare/inscribe memory tooling stays free aside from Bitcoin network inscription fees paid to miners/inscribers. This repository does not process card payments.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
