Skip to main content
Glama

Link purchase proofs to X account

claim_purchase_proof
Destructive

Link your own purchases’ on-chain purchase proofs to your X (Twitter) account, so a post of yours can be checked against the chain. Buyer’s X account (self-declared): the buyer linked this purchase to their own X account; GYOTAK has not checked that the account belongs to the buyer. Each stamped purchase comes with the URL of its public verification page. Only works through a personal token URL connector — there is no customerKey argument. Called with no arguments it only lists the purchases that can be linked and links nothing, every time — pass handle to actually link. A link is stamped on chain and cannot be undone, so let the user pick the handle before you pass one. Automatic binding of future purchases is off by default: to turn it on, pass handle with auto_bind "on" — the first such call returns the consent text; show it to the user word for word (the text is in Japanese and English; show both), and only if they agree call again with consent true. Pass auto_bind "off" to stop it (no handle needed); only later purchases stop, anything already recorded stays.

Input Schema

NameRequiredDescriptionDefault
handleNoYour X handle without the leading @ (letters, digits and underscore, 1-15 characters). Required to link: a call without it only lists your purchases and links nothing, even if you linked before. Pass it on every link.
consentNoSet true only when the user has read the consent text returned by an earlier auto_bind "on" call and agreed to it. Never set it on your own.
auto_bindNoTurn automatic binding of future purchases to your X handle on or off. "on" needs handle and consent. "off" needs nothing else. Omit to leave the setting as it is.
purchase_idNoLink only this purchase (e.g. "PB-20260917-a97953d3"). Omit to link every purchase of yours that is not linked yet.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / handle / description
      Previous value: -"Your X handle without the leading @ (letters, digits and underscore, 1-15 characters). Required to claim: a call without it only lists your purchases and claims nothing, even if you claimed before. Pass it on every claim."New value: +"Your X handle without the leading @ (letters, digits and underscore, 1-15 characters). Required to link: a call without it only lists your purchases and links nothing, even if you linked before. Pass it on every link."
    • changedInput schema / properties / purchase_id / description
      Previous value: -"Claim only this purchase (e.g. \"PB-20260917-a97953d3\"). Omit to claim every purchase of yours that is not claimed yet."New value: +"Link only this purchase (e.g. \"PB-20260917-a97953d3\"). Omit to link every purchase of yours that is not linked yet."
  2. Changed2 schema fields changed
    • addedInput schema / properties / auto_bind
      Added value: +{
      +  "description": "Turn automatic binding of future purchases to your X handle on or off. \"on\" needs handle and consent. \"off\" needs nothing else. Omit to leave the setting as it is.",
      +  "enum": [
      +    "on",
      +    "off"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / consent
      Added value: +{
      +  "description": "Set true only when the user has read the consent text returned by an earlier auto_bind \"on\" call and agreed to it. Never set it on your own.",
      +  "type": "boolean"
      +}
  3. Changed2 schema fields changed
    • removedInput schema / properties / auto_bind
      Removed value: -{
      -  "description": "Turn automatic binding of future purchases to your X handle on or off. \"on\" needs handle and consent. \"off\" needs nothing else. Omit to leave the setting as it is.",
      -  "enum": [
      -    "on",
      -    "off"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / consent
      Removed value: -{
      -  "description": "Set true only when the user has read the consent text returned by an earlier auto_bind \"on\" call and agreed to it. Never set it on your own.",
      -  "type": "boolean"
      -}
  4. Changed2 schema fields changed
    • addedInput schema / properties / auto_bind
      Added value: +{
      +  "description": "Turn automatic binding of future purchases to your X handle on or off. \"on\" needs handle and consent. \"off\" needs nothing else. Omit to leave the setting as it is.",
      +  "enum": [
      +    "on",
      +    "off"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / consent
      Added value: +{
      +  "description": "Set true only when the user has read the consent text returned by an earlier auto_bind \"on\" call and agreed to it. Never set it on your own.",
      +  "type": "boolean"
      +}
  5. Changed1 schema field changed
    • changedInput schema / properties / handle / description
      Previous value: -"Your X handle without the leading @ (letters, digits and underscore, 1-15 characters). Required the first time; afterwards the handle from your last claim is reused unless you pass a new one."New value: +"Your X handle without the leading @ (letters, digits and underscore, 1-15 characters). Required to claim: a call without it only lists your purchases and claims nothing, even if you claimed before. Pass it on every claim."
  6. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag destructive and non-idempotent, and the description adds the decisive detail: the link is stamped on chain and cannot be undone. It further discloses the token-URL-connector constraint (no customerKey argument), the opt-in default for auto binding, and the exact consent flow, all far beyond structured fields.

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 critical constraint (no-arg calls link nothing; irreversibility) is front-loaded and no sentence is pure filler, but the prose is dense and runs several clauses together, and some parameter behavior is restated from the schema. Slightly tighter phrasing would improve scanability.

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 a destructive, irreversible write tool with no output schema, the description covers the safety gate (user must choose the handle), the consent round-trip, the returned verification page URL, and the token-connector precondition. An agent has enough to invoke it correctly and in the right sequence.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already carries the syntactic definitions, giving a baseline of 3. The description adds procedural meaning the schema cannot: that auto_bind "on" returns consent text that must be shown verbatim in both Japanese and English, and that "off" stops only future bindings while recorded links persist.

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: linking on-chain purchase proofs to the caller's X account, and clarifies the self-declared nature of the buyer's handle. An agent can distinguish this from verify_purchase or check_reply without opening any schema, especially since the description also spells out the no-argument list-only behavior.

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?

Explicitly says a bare call only lists linkable purchases and links nothing, that handle must be passed on every link, and that the user must pick the handle before it is passed. It also lays out the auto_bind on/off/omit conditions and the consent two-call sequence, so when-to-use versus when-not is fully covered.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources