Skip to main content
Glama
@proof-holdings/mcp-server

@proof-holdings/mcp-server

Official

export_data

Export account data for GDPR Articles 15 and 20, or check an existing export's status; the file is prepared in the background and delivered by email with a signed-in download link.

Instructions

Export a complete copy of your account's data (GDPR Articles 15 and 20), or check on one. Owner only: sign in with start_login first (a connection with only an API key is refused user_session_required). The first call starts the export; it is prepared in the background, and the account owner is told by email (or on their login channel) with a link that downloads it only while they are signed in — this tool never returns the data itself. Call again to see whether it is ready: an export already preparing or ready is reported instead of starting another. One new export per 24 hours (no limit while the account is scheduled for deletion); the file is kept for 7 days. Pass export_id to read one export's status.

ACCESS: needs a Proof account. Set PROOF_API_KEY and restart this server, or sign in with start_login — a session opens this tool — then call this tool again.

Input Schema

NameRequiredDescriptionDefault
export_idNoRead this export's status instead of the latest one

Output Schema

NameRequiredDescriptionDefault
idNo
errorNo`too_large` — more than one download can carry (no partial file is ever produced; contact support); `internal` — a failure on our side (start a new export at once, the daily limit was given back)
countsNoRows per section of the file
latestNo
statusNo`preparing` while the job runs; `ready` once the file can be downloaded; `failed` with `error`
ready_atNo
receiptsNoReceipts of the account's downloads, newest first (the latest 20)
expires_atNoThe export and its file are deleted at this time — 7 days after the request
size_bytesNoSize of the compressed file as stored
requested_atNo
download_pathNoPath of the download route while `ready`, else null
downloaded_atNoThe first download, if any

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.7.2
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "counts": {
      +      "description": "Rows per section of the file"
      +    },
      +    "download_path": {
      +      "description": "Path of the download route while `ready`, else null"
      +    },
      +    "downloaded_at": {
      +      "description": "The first download, if any"
      +    },
      +    "error": {
      +      "description": "`too_large` — more than one download can carry (no partial file is ever produced; contact support); `internal` — a failure on our side (start a new export at once, the daily limit was given back)"
      +    },
      +    "expires_at": {
      +      "description": "The export and its file are deleted at this time — 7 days after the request"
      +    },
      +    "id": {},
      +    "latest": {},
      +    "ready_at": {},
      +    "receipts": {
      +      "description": "Receipts of the account's downloads, newest first (the latest 20)"
      +    },
      +    "requested_at": {},
      +    "size_bytes": {
      +      "description": "Size of the compressed file as stored"
      +    },
      +    "status": {
      +      "description": "`preparing` while the job runs; `ready` once the file can be downloaded; `failed` with `error`"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed2 schema fields changedv1.6.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / export_id
      Added value: +{
      +  "description": "Read this export's status instead of the latest one",
      +  "pattern": "^[a-f0-9]{24}$",
      +  "type": "string"
      +}
  3. First observedv1.1.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false): the tool never returns the data itself, delivery is by email/login-channel link, results require an active session, an in-flight export is reported instead of a duplicate, and quotas (one per 24h, 7-day retention, no limit during deletion) are spelled out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behavior is front-loaded and the sentences mostly earn their place, but the trailing ACCESS paragraph restates the earlier 'sign in with start_login first' requirement, adding redundancy to an already long description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an asynchronous, auth-gated, quota-limited export job, everything needed to invoke it correctly is present: prerequisites, polling pattern, rate limits, retention, and the fact that no data is returned inline (an output schema also exists).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the export_id description ('Read this export's status instead of the latest one') already carries nearly all the meaning. The description's 'Pass export_id to read one export's status' largely restates the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Export a complete copy of your account's data') and immediately covers the dual mode ('or check on one'), which separates it from the many verification/export_authorizations siblings. An agent can tell exactly what this tool produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use and how: first call starts the export, call again to check readiness, pass export_id to read a specific one. It also names the required prerequisite (owner must sign in via start_login) and the alternative path (API key alone is refused with user_session_required).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools