stampthisfile MCP
This hosted MCP server enables AI agents to timestamp file hashes in Bitcoin using the OpenTimestamps protocol. Agents can submit SHA-256 hashes, pay per hash via x402 on Base, retrieve proof status, download .ots proofs, and verify proofs. No account or API key is required; the server is stateless and uses Streamable HTTP.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://stampthisfile.com/mcpWhat you can do with it
- Timestamp file hashes in Bitcoin
- Retrieve stamp status and proofs
- Verify OpenTimestamps proofs
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- stampthisfile 0.1.0
- MCP protocol
- 2025-06-18
- Tools
- 4 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
4 advertised
stamp_hashes — Stamp hashes
Timestamp 1-100 SHA-256 hashes in Bitcoin. Paid per hash with x402: without a payment the tool returns an error whose structuredContent is an x402 PaymentRequired (x402Version 2, exact scheme, USDC on Base). Retry with the same arguments and the signed PaymentPayload in the request's _meta["x402/payment"] (the x402 MCP transport), or, if your client cannot set _meta, in the `payment` argument. The settlement comes back in _meta["x402/payment-response"]. Returns a batch with, per hash, the stamp id, a pending .ots proof (base64: save it now) and its ots_url, plus a receipt signed by us. Invalid input is never charged; retrying with the same payment and arguments returns the same answer without paying twice.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"hashes"
],
"properties": {
"hashes": {
"type": "array",
"items": {
"type": "string",
"description": "SHA-256 of the file, 64 hex characters"
},
"description": "1-100 SHA-256 hashes, each only once (sha256sum file.pdf, shasum -a 256 file.pdf)"
},
"payment": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
],
"description": "Only if your client cannot send _meta[\"x402/payment\"]: the x402 PaymentPayload, as an object or base64"
},
"webhook": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public https URL that gets one POST when the batch completes or fails"
},
"signing_key": {
"type": "string",
"description": "Optional whsec_<base64> for a Standard Webhooks HMAC (v1) signature"
}
},
"description": "Optional webhook; deliveries are always signed with our Ed25519 key (see https://stampthisfile.com/llms.txt)"
}
}
}get_stamp — Get stamp
Status of one stamp: pending, complete (with the Bitcoin block height and time, and a statement of what it proves) or failed (not confirmed within 7 days). Free.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The stamp id (stp_…), as returned by stamp_hashes"
}
}
}{
"readOnlyHint": true
}get_proof — Get proof
The current .ots proof of one stamp, base64. Once get_stamp says complete, fetch it again: the complete proof carries the Bitcoin attestation and can be verified by anyone, without us. Save it next to the file as <file>.ots. Free.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The stamp id (stp_…), as returned by stamp_hashes"
}
}
}{
"readOnlyHint": true
}verify_proof — Verify proof
Check an OpenTimestamps proof (from us or anyone) against the SHA-256 of a file. Returns valid with status complete (Bitcoin block and the time the file existed by), valid with status pending (not in Bitcoin yet), or invalid with a reason. A pending proof whose calendars have since committed it comes back complete with `upgraded: true` and the completed proof in `ots` (base64): save it in place of the pending one. Nothing is stored. Free.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"hash",
"ots"
],
"properties": {
"ots": {
"type": "string",
"description": "The .ots proof, base64"
},
"hash": {
"type": "string",
"description": "SHA-256 of the file, 64 hex characters"
}
}
}{
"readOnlyHint": true
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 232 ms
- 95th percentile latency
- 232 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 232 ms · metadata changed · 4 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http stampthisfile-mcp https://stampthisfile.com/mcpCodex
codex mcp add stampthisfile-mcp --url https://stampthisfile.com/mcpCursor
{
"mcpServers": {
"stampthisfile-mcp": {
"url": "https://stampthisfile.com/mcp"
}
}
}Cline
{
"mcpServers": {
"stampthisfile-mcp": {
"type": "streamableHttp",
"url": "https://stampthisfile.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"stampthisfile-mcp": {
"type": "http",
"url": "https://stampthisfile.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http stampthisfile-mcp https://stampthisfile.com/mcpClaude Desktop
{
"mcpServers": {
"stampthisfile-mcp": {
"url": "https://stampthisfile.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"stampthisfile-mcp": {
"serverUrl": "https://stampthisfile.com/mcp"
}
}
}Let your agent find its tools
Find servers like stampthisfile MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.