Back to Directory/Developer Tools

io.github.AlexAlves87/otskit-mcp

Stamp, upgrade, and verify Bitcoin timestamps via AI agents. No API keys required.

Developer ToolsTypeScriptv0.2.1

@otskit/mcp

CI npm version npm downloads TypeScript Node Coverage Quality Gate License smithery badge

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.

This is an independent implementation of the OpenTimestamps protocol. It is not affiliated with, endorsed by, or maintained by the OpenTimestamps project.

Note on confirmation times: After stamping, a proof is pending until Bitcoin confirms it. Confirmations typically arrive within ~60 minutes, but can take several hours during network congestion. Use ots-mcp watch or upgrade_timestamp to monitor. A pending proof is not a failed proof.

Install

npm install -g @otskit/mcp

Agent setup

ots-mcp setup claude        # Claude Desktop
ots-mcp setup claude-code   # Claude Code CLI
ots-mcp setup codex         # Codex CLI

Each 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

CommandDescription
ots-mcp serveStart the MCP server (stdio transport)
ots-mcp stamp <sha256>Stamp a SHA-256 hash against Bitcoin calendars
ots-mcp upgrade <id>Check if a pending stamp has been confirmed
ots-mcp verify <id>Verify a stamp against Bitcoin
ots-mcp list [status]List stamps (pending / confirmed / failed)
ots-mcp watch [minutes]Monitor pending stamps and attempt due upgrades (default: 30 min, minimum: 15 min)
ots-mcp check-pendingRun one upgrade pass over all pending stamps
ots-mcp scheduler install|remove|statusManage OS-level scheduler for auto-upgrades
ots-mcp backup [dest]Backup the SQLite database
ots-mcp setup <claude|claude-code|codex>Configure MCP for an agent

MCP tools exposed to agents

ToolDescription
create_timestampStamp a SHA-256 hash against 4 public OTS calendars
upgrade_timestampCheck if a pending stamp has been confirmed in Bitcoin
verify_timestampVerify a stamp - proves hash existed before a given Bitcoin block
verify_external_proofVerify a whitelisted local file against its external .ots proof, without changing the local stamp store
inspect_timestampInspect a stored proof file without network calls
list_pendingList stamps with status, retry count, and filters
watchOpen a terminal window monitoring pending stamps and attempting due upgrades
hash_fileCompute the SHA-256 of a local file and return it as a 64-char hex string (no network calls)
stamp_fileCompute 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 file

Configuration

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 tests

Dependencies

Requires Node.js >= 20.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @otskit/mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-alexalves87-otskit-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@otskit/mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@otskit/mcpnpm

Compatible MCP Clients

io.github.AlexAlves87/otskit-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More