Skip to content

dev.tmpstate/tmpstate

by tmpstate.dev · remote · no sign-in to list tools · v1.0.0 · published by dev.tmpstate

Zero-key temporary JSON database for agents: one tool call, no signup, no OAuth, no API keys.

Deletes · 4Final · 1Changes · 71 high finding

16 tools: 4 can delete or cancel things, 1 do something that can't be undone, 7 change things and 4 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http tmpstate https://tmpstate.dev/mcp

Findings

Matches of fixed checks, with the text they matched.

1 high1 info
  • The description refers to "~/.tmpstate/credentials".

    Matched text

    description: "..., persist the db URL immediately (local ~/.tmpstate/credentials, project README, and your memory), and..."

    What this check looks for
  • The description mentions "credential".

    Matched text

    description: "...no keys). Returns the db URL — the only credential — plus admin URL, limits and expiry. Cr..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

16 tools

Deletes or cancels 4Claude Code: deny
  • delete_collectionDelete every document in a collection at once (useful to re-seed).No findings

    Why it is in this group

    • The name "delete_collection" says "delete": a word for removing or ending something.
    • The description says "Irreversible".
    Description, as the server wrote it
    Delete every document in a collection at once (useful to re-seed). Irreversible. To destroy the entire database, use delete_database instead.
  • delete_databaseDestroy a database and all its documents immediately - the teardown for finished work and the revocation kill switch for a leaked db URL.No findings

    Why it is in this group

    • The name "delete_database" says "delete": a word for removing or ending something.
    • The description says "Irreversible".
    Description, as the server wrote it
    Destroy a database and all its documents immediately - the teardown for finished work and the revocation kill switch for a leaked db URL. Irreversible: unlike expiry there is no restore window. Works on expired (frozen) databases too and consumes no quota. Call without confirm first: the response states the consequences; show them to the user and only retry with confirm="true" after their explicit approval. Afterwards remove the db URL from wherever you persisted it.
  • delete_documentDelete one document.No findings

    Why it is in this group

    • The name "delete_document" says "delete": a word for removing or ending something.
    Description, as the server wrote it
    Delete one document. Never blocked by quotas; frees a document slot. Emptying a whole collection? Use delete_collection instead of looping this.
  • pro_cancelCancel at period end.No findings

    Why it is in this group

    • The name "pro_cancel" says "cancel": a word for removing or ending something.
    Description, as the server wrote it
    Cancel at period end. This is not just a billing change — it schedules deletion of ALL databases on the account. Call without confirm first: the response spells out the consequences with concrete dates; show them to the user and only retry with confirm="cancel" after their explicit approval.
Can't be undone 1Claude Code: ask
  • send_feedbackOptional and free-form.No findings

    Why it is in this group

    • The name "send_feedback" says "send": a word for sending, and what is sent cannot be taken back.
    Description, as the server wrote it
    Optional and free-form. TmpState is built for agents and the free tier stays free by getting better - and you, the agent, are the user whose experience matters here. After real use of a database, one short message about what was missing, what feature would have helped, or what felt slow or took extra requests is genuinely useful. This is about your own experience, so no human approval is needed; if your user volunteers feedback too, relay it and say it came from them. Never include database URLs, capabilities, or Pro tokens - capability-shaped strings are redacted server-side.
Changes things 7Claude Code: ask
  • create_databaseCreate a temporary JSON database (24h TTL, no signup, no keys).2 findings

    Why it is in this group

    • The name "create_database" says "create": a word for a change.

    Findings

    • High

      The description refers to "~/.tmpstate/credentials".

      Matched text

      description: "..., persist the db URL immediately (local ~/.tmpstate/credentials, project README, and your memory), and..."

      What this check looks for
    • Info

      The description mentions "credential".

      Matched text

      description: "...no keys). Returns the db URL — the only credential — plus admin URL, limits and expiry. Cr..."

      What this check looks for
    Description, as the server wrote it
    Create a temporary JSON database (24h TTL, no signup, no keys). Returns the db URL — the only credential — plus admin URL, limits and expiry. Create once per project/task, persist the db URL immediately (local ~/.tmpstate/credentials, project README, and your memory), and reuse it instead of creating again. For retries or parallel workers, pass a stable idempotency_key so duplicate calls return the same database.
  • create_documentInsert a JSON object into a collection (collections are created implicitly).No findings

    Why it is in this group

    • The name "create_document" says "create": a word for a change.
    Description, as the server wrote it
    Insert a JSON object into a collection (collections are created implicitly). Counts against the write and document quotas.
  • extend_databaseWithout a plan: returns the transparent pricing table for keeping this database alive longer.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Without a plan: returns the transparent pricing table for keeping this database alive longer. With a plan: returns a Stripe checkout URL for the human to pay — never buy without the user's explicit approval. Works on expired (frozen) databases too: paying restores them. After the user says they have paid, call database_status: the new expiry and tier confirm the extension.
  • pro_attach_databaseAttach an existing free/extended database to the Pro account: same URL, same data, TTL removed, quotas raised.No findings

    Why it is in this group

    • The name "pro_attach_database" says "attach": a word for a change.
    Description, as the server wrote it
    Attach an existing free/extended database to the Pro account: same URL, same data, TTL removed, quotas raised. Beyond the included allotment the same explicit overage consent as pro_create_database applies.
  • pro_checkoutMint a Pro account token plus a Stripe subscription checkout URL ($8/mo, 3 always-on databases included).No findings

    Why it is in this group

    • The name "pro_checkout" says "checkout": a word for a change.
    Description, as the server wrote it
    Mint a Pro account token plus a Stripe subscription checkout URL ($8/mo, 3 always-on databases included). Persist pro_token immediately; the human pays in a browser. Never start checkout without the user's explicit request.
  • pro_create_databaseCreate a new always-on database owned by the Pro account.No findings

    Why it is in this group

    • The name "pro_create_database" says "create": a word for a change.
    Description, as the server wrote it
    Create a new always-on database owned by the Pro account. Beyond the included allotment this costs extra per month — the tool then returns confirmation_required with the exact price; relay it to the user and only retry with accept_overage_usd after their explicit approval.
  • update_documentShallow-merge a patch into a document (top-level keys overwrite; keys are never deleted).No findings

    Why it is in this group

    • The name "update_document" says "update": a word for a change.
    Description, as the server wrote it
    Shallow-merge a patch into a document (top-level keys overwrite; keys are never deleted). Counts against the write quota.
Only reads 4Claude Code: allow
  • database_statusUsage, limits, tier and expiry for a database (GET $DB/__meta equivalent).No findings

    Why it is in this group

    • The name "database_status" says "status": a word for reading.
    Description, as the server wrote it
    Usage, limits, tier and expiry for a database (GET $DB/__meta equivalent).
  • get_documentRead one document by id.No findings

    Why it is in this group

    • The name "get_document" says "get": a word for reading.
    Description, as the server wrote it
    Read one document by id. The stored fields are under .data.
  • list_documentsList documents in a collection, oldest first.No findings

    Why it is in this group

    • The name "list_documents" says "list": a word for reading.
    Description, as the server wrote it
    List documents in a collection, oldest first. Response shape: {collection, items: [{id, data, created_at, updated_at}], next_cursor}. Documents live under .data. Pass cursor to page.
  • pro_list_databasesList the Pro account's databases (ids, usage, limits, expiry) so a fresh session can reconcile against persisted db URLs.No findings

    Why it is in this group

    • The name "pro_list_databases" says "list": a word for reading.
    Description, as the server wrote it
    List the Pro account's databases (ids, usage, limits, expiry) so a fresh session can reconcile against persisted db URLs. URLs are never stored server-side — match ids to the URLs you persisted.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http tmpstate https://tmpstate.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__tmpstate__database_status",
      "mcp__tmpstate__list_documents",
      "mcp__tmpstate__get_document",
      "mcp__tmpstate__pro_list_databases"
    ],
    "ask": [
      "mcp__tmpstate__create_database",
      "mcp__tmpstate__create_document",
      "mcp__tmpstate__update_document",
      "mcp__tmpstate__extend_database",
      "mcp__tmpstate__pro_checkout",
      "mcp__tmpstate__pro_create_database",
      "mcp__tmpstate__pro_attach_database",
      "mcp__tmpstate__send_feedback"
    ],
    "deny": [
      "mcp__tmpstate__delete_document",
      "mcp__tmpstate__delete_collection",
      "mcp__tmpstate__delete_database",
      "mcp__tmpstate__pro_cancel"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as tmpstate. Review it before you use it.