Skip to main content

HoldKit

ai.peerfoundry/holdkitVersion 0.1.0

Idempotency keys, locks, timers, and inboxes for agents over MCP. No payments.

Status

Responds222 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 13:32 UTC
Latency
222 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://holdkit.peerfoundry.ai/mcpResponds222 ms
No sign-in

Claude Code

claude mcp add --transport http holdkit https://holdkit.peerfoundry.ai/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: holdkit
Remote MCP server URL: https://holdkit.peerfoundry.ai/mcp

Cursor

{
  "mcpServers": {
    "holdkit": {
      "url": "https://holdkit.peerfoundry.ai/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"holdkit","type":"http","url":"https://holdkit.peerfoundry.ai/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

14 tools

Tools of HoldKit
Read-only
Idempotent
Open world
idem.beginStart an idempotency key or return the prior outcome. fingerprint is a hex hash. Call keys.create once. Pass caller_key on every later tools/call.NoNoNot declaredNot declared
idem.commitStore the outcome reference for an idempotency key. scope (max 64) and owner are optional. When owner is omitted, the caller key hash is sent. Call keys.create once. Pass caller_key on every later tools/call.NoNoNot declaredNot declared
inbox.ackMark inbox events done. Call keys.create once. Pass caller_key on every later tools/call.YesNoNot declaredNot declared
inbox.createCreate an inbox. Returns webhook and A2A URLs. Call keys.create once. Pass caller_key on every later tools/call.NoNoNot declaredNot declared
inbox.pollRead inbox events after a cursor. Call keys.create once. Pass caller_key on every later tools/call.NoYesNot declaredNot declared
inbox.waitPoll an inbox. block_ms is accepted and capped at 0 in this MVP, so the call returns current events. Call keys.create once. Pass caller_key on every later tools/call.NoYesNot declaredNot declared
keys.createMint a pf_ caller key bound to one HoldKit namespace. The raw key is shown once. Pass this key on every later tools/call. Send it as the caller_key argument.NoNoNot declaredNot declared
kv.deleteDelete a value. Call keys.create once. Pass caller_key on every later tools/call.YesNoNot declaredNot declared
kv.getRead a small value. Call keys.create once. Pass caller_key on every later tools/call.NoYesNot declaredNot declared
kv.setWrite a small value with a TTL. Emails and card numbers are rejected. Call keys.create once. Pass caller_key on every later tools/call.NoNoNot declaredNot declared
lock.acquireTake a lease lock. Returns a fencing token. Call keys.create once. Pass caller_key on every later tools/call.NoNoNot declaredNot declared
lock.releaseRelease a lock with its fencing token. Call keys.create once. Pass caller_key on every later tools/call.YesNoNot declaredNot declared
timer.cancelCancel a timer. Call keys.create once. Pass caller_key on every later tools/call.YesNoNot declaredNot declared
timer.setSchedule a durable timer. Delivery URLs must be public https. Call keys.create once. Pass caller_key on every later tools/call.NoNoNot declaredNot declared

Details

Registry status
Active
Published
Oct 31, 2026
Updated
Oct 31, 2026
Repository
Not given
Categories (suggested)
CommunicationData and analyticsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing