otskit-mcp
The otskit-mcp server enables AI agents and users to create, manage, verify, and monitor cryptographic Bitcoin timestamps for files and hashes using the OpenTimestamps protocol.
create_timestamp: Stamp a SHA-256 hash on Bitcoin by submitting it to four public OTS calendars (alice.btc, bob.btc, finney, catallaxy), receiving a stamp ID for tracking.stamp_file: Hash a local file and stamp it on Bitcoin in one step — only the hash is sent externally, never the file contents.hash_file: Compute the SHA-256 hash of a local file and return it as a hex string, with no network calls or data stored.upgrade_timestamp: Check whether a pending stamp has been confirmed in Bitcoin by fetching the latest merkle tree from the calendars; safe to call repeatedly.verify_timestamp: Verify a proof against the Bitcoin blockchain via an Esplora API, confirming a hash existed before a specific Bitcoin block height.inspect_timestamp: Read a stored local proof file without any network calls, returning metadata such as attestations and confirmation status.list_pending: Query the local SQLite database for stamps filtered by status (pending, confirmed, failed, timeout), with pagination and age filters.watch: Open a terminal window that continuously monitors pending stamps and attempts upgrades at a configurable interval (minimum 15 minutes).
Enables AI agents to create, upgrade, verify, and inspect Bitcoin timestamps using the OpenTimestamps protocol, providing cryptographic proof of existence for documents at a specific point in time on the Bitcoin blockchain.
@otskit/mcp
OpenTimestamps MCP server - stamp, upgrade, and verify Bitcoin timestamps via AI agents.
Exposes a set of tools to any MCP-compatible agent so it can timestamp documents, monitor confirmation status, and verify proofs against the Bitcoin blockchain - all from a conversation.
Note on confirmation times: After stamping, a proof is
pendinguntil Bitcoin confirms it. Confirmations typically arrive within ~60 minutes, but can take several hours during network congestion. Useots-mcp watchorupgrade_timestampto monitor. A pending proof is not a failed proof.
Install
npm install -g @otskit/mcpRelated MCP server: vtimestamp-mcp
Agent setup
ots-mcp setup claude # Claude Desktop
ots-mcp setup claude-code # Claude Code CLI
ots-mcp setup codex # Codex CLIEach command writes the MCP entry into the agent's config file, makes a .bak backup if the file already exists, and skips if ots-mcp is already configured. Restart the agent afterwards to apply the changes.
CLI commands
Command | Description |
| Start the MCP server (stdio transport) |
| Stamp a SHA-256 hash against Bitcoin calendars |
| Check if a pending stamp has been confirmed |
| Verify a stamp against Bitcoin |
| List stamps ( |
| Monitor pending stamps and attempt due upgrades (default: 30 min, minimum: 15 min) |
| Run one upgrade pass over all pending stamps |
| Manage OS-level scheduler for auto-upgrades |
| Backup the SQLite database |
| Configure MCP for an agent |
MCP tools exposed to agents
Tool | Description |
| Stamp a SHA-256 hash against 4 public OTS calendars |
| Check if a pending stamp has been confirmed in Bitcoin |
| Verify a stamp - proves hash existed before a given Bitcoin block |
| Inspect a stored proof file without network calls |
| List stamps with status, retry count, and filters |
| Open a terminal window monitoring pending stamps and attempting due upgrades |
| Compute the SHA-256 of a local file and return it as a 64-char hex string (no network calls) |
| Compute SHA-256 of a local file and stamp it on Bitcoin in one step |
Data directory
All data is stored in ~/.ots-mcp/:
~/.ots-mcp/
ots-mcp.db # SQLite database (stamps, proof files)
config.json # Optional config overrides
ots-mcp.log # Log fileConfiguration
Create ~/.ots-mcp/config.json to override defaults:
{
"stamp_enabled": true,
"scheduler_interval_minutes": 30,
"retry_max_attempts": 20,
"calendar_timeout_ms": 10000,
"calendars": [
"https://alice.btc.calendar.opentimestamps.org",
"https://bob.btc.calendar.opentimestamps.org",
"https://finney.calendar.eternitywall.com",
"https://btc.calendar.catallaxy.com"
]
}Development
npm run build # production build
npm run dev # watch mode
npm test # run testsDependencies
@otskit/client- OTS calendar client (brings in@otskit/core, the protocol engine)@modelcontextprotocol/sdk- MCP SDKnode-sqlite3-wasm- local database (pure WASM, no native compilation)
Requires Node.js >= 20.
Maintenance
Latest Blog Posts
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/OTSkit/OTSkit-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server