Servidor MCP

tmpstate

dev.tmpstate/tmpstate

Qué hace este MCP

Provides temporary JSON databases with document CRUD, collection management, status tracking, expiration, and optional paid persistence.

create_database
Create a temporary database
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.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Stable retry key. Reusing it from the same client returns the same database.'}}, 'additionalProperties': False}
create_document
Create a document
Insert a JSON object into a collection (collections are created implicitly). Counts against the write and document quotas.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['db', 'collection', 'data'], 'properties': {'db': {'type': 'string', 'description': 'The database URL returned at creation (or its bare s-... capability).'}, 'data': {'type': 'object', 'description': 'The document: a JSON object.', 'additionalProperties': {}}, 'collection': {'type': 'string', 'description': 'Collection name (created implicitly on first write).'}}, 'additionalProperties': False}
database_status
Database status
Usage, limits, tier and expiry for a database (GET $DB/__meta equivalent).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['db'], 'properties': {'db': {'type': 'string', 'description': 'The database URL returned at creation (or its bare s-... capability).'}}, 'additionalProperties': False}
delete_collection
Delete a collection
Delete every document in a collection at once (useful to re-seed). Irreversible. To destroy the entire database, use delete_database instead.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['db', 'collection'], 'properties': {'db': {'type': 'string', 'description': 'The database URL returned at creation (or its bare s-... capability).'}, 'collection': {'type': 'string', 'description': 'Collection name (created implicitly on first write).'}}, 'additionalProperties': False}
delete_database
Delete the whole database
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.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['db'], 'properties': {'db': {'type': 'string', 'description': 'The database URL returned at creation (or its bare s-... capability).'}, 'confirm': {'type': 'string', 'const': 'true', 'description': 'Pass "true" only after the user has seen that deletion is immediate and irreversible and approved.'}}, 'additionalProperties': False}
delete_document
Delete a document
Delete one document. Never blocked by quotas; frees a document slot. Emptying a whole collection? Use delete_collection instead of looping this.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['db', 'collection', 'id'], 'properties': {'db': {'type': 'string', 'description': 'The database URL returned at creation (or its bare s-... capability).'}, 'id': {'type': 'string', 'description': 'Document id (doc_...).'}, 'collection': {'type': 'string', 'description': 'Collection name (created implicitly on first write).'}}, 'additionalProperties': False}
extend_database
Extend a database (one-time payment)
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.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['db'], 'properties': {'db': {'type': 'string', 'description': 'The database URL returned at creation (or its bare s-... capability).'}, 'plan': {'enum': ['week', 'month', 'quarter'], 'type': 'string'}}, 'additionalProperties': False}
get_document
Get a document
Read one document by id. The stored fields are under .data.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['db', 'collection', 'id'], 'properties': {'db': {'type': 'string', 'description': 'The database URL returned at creation (or its bare s-... capability).'}, 'id': {'type': 'string', 'description': 'Document id (doc_...).'}, 'collection': {'type': 'string', 'description': 'Collection name (created implicitly on first write).'}}, 'additionalProperties': False}
list_documents
List documents
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.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['db', 'collection'], 'properties': {'db': {'type': 'string', 'description': 'The database URL returned at creation (or its bare s-... capability).'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous page.'}, 'collection': {'type': 'string', 'description': 'Collection name (created implicitly on first write).'}}, 'additionalProperties': False}
pro_attach_database
Upgrade a database to Pro (in place)
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.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['db'], 'properties': {'db': {'type': 'string', 'description': 'The database URL returned at creation (or its bare s-... capability).'}, 'pro_token': {'type': 'string', 'description': 'Pro account token (pt_...). Optional if the MCP connection already sends Authorization: Bearer pt_...'}, 'accept_overage_usd': {'type': 'string'}}, 'additionalProperties': False}
pro_cancel
Cancel the Pro subscription
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.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'confirm': {'type': 'string', 'const': 'cancel', 'description': 'Pass "cancel" only after the user has seen the consequences and approved.'}, 'pro_token': {'type': 'string', 'description': 'Pro account token (pt_...). Optional if the MCP connection already sends Authorization: Bearer pt_...'}}, 'additionalProperties': False}
pro_checkout
Start a Pro subscription
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.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
pro_create_database
Create a Pro database
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.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'pro_token': {'type': 'string', 'description': 'Pro account token (pt_...). Optional if the MCP connection already sends Authorization: Bearer pt_...'}, 'accept_overage_usd': {'type': 'string', 'description': 'Explicit overage consent, e.g. "1.50", only after the user approved.'}}, 'additionalProperties': False}
pro_list_databases
List Pro databases
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.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'pro_token': {'type': 'string', 'description': 'Pro account token (pt_...). Optional if the MCP connection already sends Authorization: Bearer pt_...'}}, 'additionalProperties': False}
send_feedback
Send feedback to the TmpState team
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.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message'], 'properties': {'message': {'type': 'string', 'maxLength': 4000, 'minLength': 1, 'description': 'What was missing, confusing, or slow - or what worked well. Plain text, one short message.'}, 'category': {'enum': ['missing_feature', 'friction', 'docs', 'performance', 'bug', 'praise', 'other'], 'type': 'string', 'description': 'Optional bucket for triage.'}}, 'additionalProperties': False}
update_document
Update a document
Shallow-merge a patch into a document (top-level keys overwrite; keys are never deleted). Counts against the write quota.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['db', 'collection', 'id', 'patch'], 'properties': {'db': {'type': 'string', 'description': 'The database URL returned at creation (or its bare s-... capability).'}, 'id': {'type': 'string', 'description': 'Document id (doc_...).'}, 'patch': {'type': 'object', 'description': 'Top-level fields to merge.', 'additionalProperties': {}}, 'collection': {'type': 'string', 'description': 'Collection name (created implicitly on first write).'}}, 'additionalProperties': False}
Añadido
send_feedback
17 de September de 2026 a las 12:39
Añadido
pro_cancel
17 de September de 2026 a las 12:39
Añadido
pro_attach_database
17 de September de 2026 a las 12:39
Añadido
pro_create_database
17 de September de 2026 a las 12:39
Añadido
pro_list_databases
17 de September de 2026 a las 12:39
Añadido
pro_checkout
17 de September de 2026 a las 12:39
Añadido
extend_database
17 de September de 2026 a las 12:39
Añadido
delete_database
17 de September de 2026 a las 12:39
Añadido
delete_collection
17 de September de 2026 a las 12:39
Añadido
delete_document
17 de September de 2026 a las 12:39
Añadido
update_document
17 de September de 2026 a las 12:39
Añadido
create_document
17 de September de 2026 a las 12:39
Añadido
get_document
17 de September de 2026 a las 12:39
Añadido
list_documents
17 de September de 2026 a las 12:39
Añadido
database_status
17 de September de 2026 a las 12:39
Añadido
create_database
17 de September de 2026 a las 12:39