protogrid

Search / io.github.neubuot/doichain

Doichain

R0· no sign-in

Proof of existence, names and chain data of the Doichain blockchain for AI agents

v1.5.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality96strong
Trust97of 100
Uptime, 30 days100%
Latency p50829 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "doichain": {
      "type": "http",
      "url": "https://doi-api.sendlabs.de/mcp"
    }
  }
}
claude mcp add --transport http doichain https://doi-api.sendlabs.de/mcp
[mcp_servers.doichain]
url = "https://doi-api.sendlabs.de/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "doichain": {
      "type": "remote",
      "url": "https://doi-api.sendlabs.de/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "doichain": {
      "type": "http",
      "url": "https://doi-api.sendlabs.de/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=doichain&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZG9pLWFwaS5zZW5kbGFicy5kZS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "doichain": {
      "type": "http",
      "url": "https://doi-api.sendlabs.de/mcp"
    }
  }
}
{
  "mcpServers": {
    "doichain": {
      "httpUrl": "https://doi-api.sendlabs.de/mcp"
    }
  }
}
extensions:
  "doichain":
    enabled: true
    name: "doichain"
    type: streamable_http
    uri: "https://doi-api.sendlabs.de/mcp"
    timeout: 300

Quality 96 / 100strong

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations13 of 13 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 2,636 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes3 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

13 tools, about 2,636 tokens to load them all · tool set 3788f4c13ee6 · tools last changed 2026-09-27 · checked 2026-10-20 09:31 UTC

Tool changes

  • search_nameschangeddescription, input schema
    before

    List active names that start with a prefix, in the node's order (shorter names first, then byte order). Page through large results with next_after until exhausted is true. Names and values are chosen by arbitrary users (name_untrusted, value_untrusted).

    after · 73% of words in common

    List names that start with a prefix, in the node's order (shorter names first, then byte order). Lists only active names unless include_expired is true. Expired names (for example old poe/ proofs) stay in the chain history and are listed with include_expired. Page through large results with next_after until exhausted is true. Names and values are chosen by arbitrary users (name_untrusted, value_untrusted).

  • anchor_proofchangeddescription, input schema
    before

    Anchor a SHA-256 hash on the Doichain as proof that the document exists now (name poe/<sha256>). Free for users, limited per IP address and day (see get_anchoring_quota). Confirms with the next block, usually within 10 minutes, then check_proof returns block height and time. If the hash is already anchored or pending, the existing proof is returned instead of creating a second one. Only the hash and the optional note and file name become public, never the document itself.

    after · 67% of words in common

    Anchor a SHA-256 hash on the Doichain as a tamper-evident timestamp (proof of existence, name poe/<sha256>). Free for users, limited per IP address and day (see get_anchoring_quota). Confirms with the next block, usually within 10 minutes, then check_proof returns block height and time. If the hash is already anchored or pending, the existing proof is returned instead of creating a second one. If an earlier proof of the hash has expired, it stays valid and is returned with expired true. Nothing is registered unless reanchor_expired is true. Only the hash and the optional note and file name become public, never the document itself. The operator of this server pays for the name and holds it. The proof shows that a document with this hash existed no later than the block time, not who submitted it.

  • check_proofchangeddescription
    before

    Check whether a SHA-256 hash is anchored on the Doichain (name poe/<sha256>) and since when. Returns status (confirmed, pending, expired, unknown), block height, block time of the first anchoring, transaction and links. A confirmed or expired proof shows that a document with exactly this hash existed no later than the block time.

    after · 59% of words in common

    Check whether a SHA-256 hash is anchored on the Doichain (name poe/<sha256>) and since when. Returns status (confirmed, pending, expired, unknown) and at the top level block height, block time, transaction and links of the first anchoring, which is the proof time. If the name was updated later or registered again after it expired (possibly by someone else), that registration is reported separately in latest_registration with its own holder and record, which are not part of the original proof. A confirmed or expired proof shows that a document with exactly this hash existed no later than the block time, not who submitted it.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-23d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://doi-api.sendlabs.de/mcp streamable-httpnoneyes100%829 ms2026-07-282026-10-20

Tools (13)

anchor_proofAnchor a SHA-256 hash on the Doichain as a tamper-evident timestamp (proof of existence, name poe/<sha256>). Free for users, limited per IP address and day (see get_anchoring_quota). Confirms with the next block, usually within 10 minutes, then check_proof returns block height and time. If the hash is already anchored or pending, the existing proof is returned instead of creating a second one. If an earlier proof of the hash has expired, it stays valid and is returned with expired true. Nothing is registered unless reanchor_expired is true. Only the hash and the optional note and file name become public, never the document itself. The operator of this server pays for the name and holds it. The proof shows that a document with this hash existed no later than the block time, not who submitted it.
check_name_expiryread-onlyCheck up to 25 names at once: status (active, expiring_soon, expired, not_registered), blocks left, an estimated expiry date for active names (from the measured block interval) and the real expiry date for expired names. Names expire 36,000 blocks after their last update and are renewed by updating them from the owning wallet.
check_proofread-onlyCheck whether a SHA-256 hash is anchored on the Doichain (name poe/<sha256>) and since when. Returns status (confirmed, pending, expired, unknown) and at the top level block height, block time, transaction and links of the first anchoring, which is the proof time. If the name was updated later or registered again after it expired (possibly by someone else), that registration is reported separately in latest_registration with its own holder and record, which are not part of the original proof. A confirmed or expired proof shows that a document with exactly this hash existed no later than the block time, not who submitted it.
get_addressread-onlyConfirmed and unconfirmed balance of a Doichain address in DOI, optionally with its most recent transactions. Invalid addresses return an error with the reason.
get_anchoring_quotaread-onlyHow many proofs can still be anchored today (UTC day) within the free public quota for the caller's IP address. Hosted chat apps connect from their own servers, so their users share one quota. Callers that send their own API key in the X-API-Key header have no quota.
get_blockread-onlyHeader data of a block by height or hash: time, confirmations, number of transactions and the first 50 transaction IDs.
get_chain_statusread-onlyCurrent state of the Doichain network as seen by the node behind this server: block height, sync state, time of the last block, fork check, node version, peers, mempool size and whether public anchoring is available.
get_name_historyread-onlyAll registrations and updates of a name, newest first: block height, transaction, owner address and the value at that time. Shows who held a name when, and every value it ever had.
get_transactionread-onlyA transaction with confirmations, block time, outputs (amount in DOI and address) and any name operation (name_doi, name_update, ...) it contains.
hash_textread-onlyCompute the SHA-256 digest of a short text (UTF-8) on the server, for example to anchor a statement or a message with anchor_proof. The text is sent to the server but not stored or logged. For files and for confidential texts compute the hash locally instead (sha256sum file, or Get-FileHash -Algorithm SHA256).
lookup_nameread-onlyRead the current value, owner address and expiry of a Doichain name. Unregistered names come back with exists false and status not_registered (the name is free). Expired names have status expired and the real expiry date.
search_namesread-onlyList names that start with a prefix, in the node's order (shorter names first, then byte order). Lists only active names unless include_expired is true. Expired names (for example old poe/ proofs) stay in the chain history and are listed with include_expired. Page through large results with next_after until exhausted is true. Names and values are chosen by arbitrary users (name_untrusted, value_untrusted).
verify_messageread-onlyCheck whether a message was signed with the private key of a Doichain address (signmessage format). Only legacy addresses (M... or N...) can sign messages, bech32 addresses (dc1q...) are not supported. Useful to confirm that a statement really comes from the holder of an address.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.neubuot/doichain",
  "icons": [
    {
      "src": "https://doi-api.sendlabs.de/mcp-site/icon.svg",
      "mimeType": "image/svg+xml"
    }
  ],
  "title": "Doichain",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://doi-api.sendlabs.de/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.5.0",
  "repository": {
    "url": "https://github.com/neubuot/doichain-mcp",
    "source": "github"
  },
  "websiteUrl": "https://doi-api.sendlabs.de/mcp",
  "description": "Proof of existence, names and chain data of the Doichain blockchain for AI agents"
}