Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "my_orders"
⟨93 unchanged words⟩ in the catalog widget (Orders tab).NotChat-registered customers cannot list orders here; the Receipt button in their widget calls this tool with document=receipt and ref=<order id> to get a 15-minute receipt link forchat-registeredacustomerspaidororder. Not for guests.
Added "my_orders" (25 tools before, 26 now)
Order history of a LINE VIP customer connected through their personal token URL (gyk_…). No arguments needed — the customer is the owner of this connection. Lists each order (and each invoice not tied to an order) with its date, status (paid / unpaid / overdue / cancelled / awaiting picking / awaiting invoice), the invoice total and due date when an invoice exists, and the items with requested kg → actual kg from the invoice. Invoices and receipts are not linked in the text: the user opens them from the buttons in the catalog widget (Orders tab). Chat-registered customers cannot list orders h…
Added "my_orders" (25 tools before, 26 now)
Order history of a LINE VIP customer connected through their personal token URL (gyk_…). No arguments needed — the customer is the owner of this connection. Lists each order (and each invoice not tied to an order) with its date, status (paid / unpaid / overdue / cancelled / awaiting picking / awaiting invoice), the invoice total and due date when an invoice exists, and the items with requested kg → actual kg from the invoice. Invoices and receipts are not linked in the text: the user opens them from the buttons in the catalog widget (Orders tab). Not for chat-registered customers or guests.
Changed the definition of "place_order"
⟨149 unchanged words⟩ a Thai one. International addresses are not accepted. (C) LINE VIP customer connected through a personal token URL (get_catalog says ordering is available in this chat): send vipItems only — one entry per item, with fishName, status and tier exactly as get_catalog shows them and the quantity in the form get_catalog gives for that item (bands, packs or kg). The server calculates prices, shipping and the total; the total is an estimate, billing is by invoice after picking, and no payment is taken now. Call with dryRun: true first, show the user the lines and the estimate, and place the order only after the user confirms.
⟨44 unchanged words⟩ Customer name","type":"string"},"dryRun":{"description":"(LINE VIP mode only) true = return the lines and the estimated total without placing the order","type":"boolean"},"email":{"description":"(Guest mode) Email ⟨255 unchanged words⟩ Total amount in THB","type":"number"},"vipItems":{"description":"(LINE VIP mode only) Order lines for a LINE VIP customer connected through a personal token URL. Ignored in other modes.","items":{"properties":{"bands":{"additionalProperties":{"type":"number"},"description":"Packs per weight band, e.g. {\"140-180g\": 3} — only for items get_catalog marks as ordered by bands","type":"object"},"fishName":{"type":"string"},"kg":{"description":"Kilograms in steps of 0.5, or exactly the stock shown — only for items ordered by kg","type":"number"},"packs":{"description":"Total packs — only for items ordered by packs","type":"number"},"status":{"description":"As shown in get_catalog for this item","type":"string"},"tier":{"description":"As shown in get_catalog (All for cooking, prepared and whole cooking items)","enum":["Fresh","Tier1","Tier2","All"],"type":"string"}},"required":["fishName","status","tier"],"type":"object"},"type":"array
Changed the definition of "place_order"
⟨149 unchanged words⟩ a Thai one. International addresses are not accepted. (C) LINE VIP customer connected through a personal token URL (get_catalog says ordering is available in this chat): send vipItems only — one entry per item, with fishName, status and tier exactly as get_catalog shows them and the quantity in the form get_catalog gives for that item (bands, packs or kg). The server calculates prices, shipping and the total; the total is an estimate, billing is by invoice after picking, and no payment is taken now. Call with dryRun: true first, show the user the lines and the estimate, and place the order only after the user confirms.
⟨44 unchanged words⟩ Customer name","type":"string"},"dryRun":{"description":"(LINE VIP mode only) true = return the lines and the estimated total without placing the order","type":"boolean"},"email":{"description":"(Guest mode) Email ⟨255 unchanged words⟩ Total amount in THB","type":"number"},"vipItems":{"description":"(LINE VIP mode only) Order lines for a LINE VIP customer connected through a personal token URL. Ignored in other modes.","items":{"properties":{"bands":{"additionalProperties":{"type":"number"},"description":"Packs per weight band, e.g. {\"140-180g\": 3} — only for items get_catalog marks as ordered by bands","type":"object"},"fishName":{"type":"string"},"kg":{"description":"Kilograms in steps of 0.5, or exactly the stock shown — only for items ordered by kg","type":"number"},"packs":{"description":"Total packs — only for items ordered by packs","type":"number"},"status":{"description":"As shown in get_catalog for this item","type":"string"},"tier":{"description":"As shown in get_catalog (All for cooking, prepared and whole cooking items)","enum":["Fresh","Tier1","Tier2","All"],"type":"string"}},"required":["fishName","status","tier"],"type":"object"},"type":"array
Added "verify_purchase" (24 tools before, 25 now)
Show a purchase proof and trace it: purchase → catch → storage temperature. Use this when the customer asks to see what they bought, where it was caught or how it was stored. Pass the customerKey from this conversation, or a purchase ID (PB-…). Read-only; returns only stamped (on-chain) proofs, with the arguments for verify_catch and verify_temp.
Added "verify_purchase" (24 tools before, 25 now)
Show a purchase proof and trace it: purchase → catch → storage temperature. Use this when the customer asks to see what they bought, where it was caught or how it was stored. Pass the customerKey from this conversation, or a purchase ID (PB-…). Read-only; returns only stamped (on-chain) proofs, with the arguments for verify_catch and verify_temp.
Certificate recorded, valid to 2027-01-02
Authorization not required
First tool surface recorded: 24 tools (server version 1.0.0)
https://mcp.gyotakuprotocol.com/mcp (mcp_streamable_http) — from mcp_registry
Changed the definition of "claim_purchase_proof"
ClaimLinktheyour own purchases’ on-chain purchase proofsfor your own purchases and attachto your X (Twitter)handle to themaccount, 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 ⟨22 unchanged words⟩ it only lists the purchases that can beclaimedlinked andclaimslinks nothing, every time — pass handle to actuallyclaim.
Changed the definition of "get_catch_reports" and "verify_catch"
⟨38 unchanged words⟩ are never returned: on v3 records theGPSexact position iskeptnotasonantheon-chainchainhiding(only a commitmentandtoonlyit); the record carries a zero-knowledge proof that the position lies within a range, and the
Changed the definition of "get_catch_reports" and "verify_catch"
Get catch records by date or freshness tier. ReturnsGPSthecoordinatescatch date,photothetimestampregion (district name),andthe blog post URL when published and, fortraceabilityrecordsverification.registeredIn-stockon
Changed the definition of "check_payment_status", "confirm_payment" and "create_payment"
CheckTestthe/paymentQAstatusonlyof—adoguestnotorder.use for customer orders. Returns the Cardano preprod payment sessiondetails
Changed the definition of "place_order" and "recover_customer_key"
⟨61 unchanged words⟩ a confirmation email with a PromptPay QR follows.IfWithout customerKeyisoromitted,aonepersonalistokenissuedURLautomaticallyconnection,(reusingeveryanorderexisting
Changed the definition of "claim_purchase_proof" and "get_share_kit"
⟨20 unchanged words⟩ of yours can be checked against the chain. Each stamped purchase comes with the URL of its public verification page. Only works through a personal token URL connector ⟨139 unchanged words⟩
⟨17 unchanged words⟩ URL: order facts, fish photo URLs, verification page URLs of the caller's stamped purchase proofs, allowed and forbidden claims, and the required referral ⟨28 unchanged words⟩
Changed the definition of "claim_purchase_proof"
⟨95 unchanged words⟩ does not verify that you own the account. 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.
{"properties":{"auto_bind":{"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"},"consent":{"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"},"handle":{"description":"Your X handle without ⟨63 unchanged words⟩
Certificate changed, valid to 2026-12-21
Changed the definition of "claim_purchase_proof"
⟨34 unchanged words⟩ URL connector — there is no customerKey argument.CallCalled with no argumentsfirstittoonlyseelistswhichthe purchases that can beclaimed;claimed and claims nothing, every time — pass handle to actually claim. A claimthem.is stamped on chain and cannot be undone, so let the user pick the handle before you pass one.
Added "claim_purchase_proof" (23 tools before, 24 now)
Claim the on-chain purchase proofs for your own purchases and attach your X (Twitter) handle to them, so a post of yours can be checked against the chain. Only works through a personal token URL connector — there is no customerKey argument. Call with no arguments first to see which purchases can be claimed; pass handle to claim them. The handle is what you tell us: GYOTAK does not verify that you own the account.
Certificate recorded, valid to 2026-10-23
Authorization not required
First tool surface recorded: 23 tools (server version 1.0.0)
Showing the latest 24 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨84 unchanged words⟩ and underscore, 1-15 characters). Required toclaimlink: a call without it only lists your purchases andclaimslinks nothing, even if youclaimedlinked before. Pass it on everyclaim.link.","type":"string"},"purchase_id":{"description":"ClaimLink only this purchase (e.g. \"PB-20260917-a97953d3\"). Omit toclaimlink every purchase of yours that is notclaimedlinked yet.","type":"string"}},"required ⟨2 unchanged words⟩
⟨38 unchanged words⟩ , this lets you verify without trusting GYOTAK.GPSThecoordinatesexactarepositioncryptographicallyishiddennot on the chain (hidingonlycommitmentawithcommitmentsecrettononceit);.onlyThe record carries a zero-knowledge proof that the position lies within a range. The region name isprovable.a label set by GYOTAK; the range used in the proof is not part of the record. Supports both preprod and mainnet. batchId also accepts ⟨24 unchanged words⟩
⟨19 unchanged words⟩ decoded fields for independent verification. Unlike get_catch_reports (which returnsGYOTAK's owndatabaselist of records: date, district and verify links, never GPS), this lets you verify without trusting GYOTAK. ⟨48 unchanged words⟩
ExecuteTestpayment/ QA only — do not use foracustomerguestorders: customers pay via the PromptPay QR attached to the order(confirmation email. Executes the Cardano preprodonly).A→B→ARequiressettlementyourforcustomerKeyanandorder placed by apendingGYOTAKpaymenttestsession.customer.TriggersRequiresA→B→Athatround-triptestsettlementcustomer'soncustomerKey,Cardanoapreprod.pendingSubjectpaymenttosession from create_payment, and a monthly auto-settle allowance. For any other order_id it returns PromptPay guidance and changes nothing.
{"properties":{"customer_key":{"description":"YourcustomerKey of the test customerkeythat(fromplacedregister_customer)the order","type":"string"},"order_id":{ ⟨13 unchanged words⟩
CreateTesta/CardanoQAtADAonlypayment—sessiondo not use foracustomerpendingorders,guestandorder.doComputesnotTHB→tADAcallconversion,itgeneratesafter placing apaymentcustomersessionorder:withcustomers30-minutepayexpiry,viaandthe PromptPay QR attached to the order confirmation email. Works only for orders of GYOTAK test customers; for any other order_id it returnspaymentPromptPaydetails.guidanceCallandthiscreatesafternothing.placingFor aguesttest ordertoitinitiatecomputespayment.theTheTHB→tADA conversion, creates a Cardano preprod paymentissessionexecutedwithserver-sideausing30-minute expiry, and returns the payment details (GYOTAK A→B→A round-tripmechanism.).
RecoverExplains where a lostcustomerKey.customerKeyForcansecurity,beautomaticfound:recoverya key issued with an order isnotwrittenavailablein—thethisordertoolconfirmationguidesemailyousent tocontactthestaff.registered address (each order placed without a key has its own key). For keys that cannot be found there, it points to contact_gyotak. This tool does not look up, verify or send anything.
⟨11 unchanged words⟩ digits and underscore, 1-15 characters). Requiredthetofirstclaim:time;aafterwardscallthewithouthandleitfromonly lists yourlastpurchasesclaimandisclaimsreusednothing,unlesseven if youpassclaimedabefore.newPassone.it on every claim.","type":"string"},"purchase_id":{ ⟨26 unchanged words⟩