GYOTAK Fish Market
Server Details
Sashimi-grade flash-frozen fish from Thailand. Catalog, ordering, and on-chain traceability.
- Status
- Healthy
- Uptime
- 100.0% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 24 tools
Each tool targets a distinct action/resource combination, with clear boundaries between database queries (get_catch_reports, get_komon_records) and their blockchain verification counterparts (verify_catch, verify_komon). Test/QA payment tools are clearly separated from customer-facing operations.
The vast majority follow verb_noun naming (get_catalog, place_order, verify_temp), but 'my_referrals' breaks the pattern by using a possessive pronoun instead of a verb, and 'ask_gyotak' is a verb+proper noun rather than a clean noun. Overall consistent with minor deviations.
24 tools is at the upper end of the 'heavy' range (16-25), though the complexity of the domain—covering catalog, ordering, payments, referrals, and blockchain verification—partially justifies the count. Some redundancy exists with three test/QA-only payment tools that could be consolidated.
The surface covers most essential workflows: browsing, ordering, payment guidance, customer registration, referrals, and blockchain-based verification. Notable gaps include no direct way for retail customers to check order status after placing (beyond the confirmation email) and no cancel/update order capability, but these are minor given the domain.
Available Tools
24 toolsapply_referrerAInspect
Look up your GYOTAK referral MCP URL. The URL is issued automatically when the payment for your first chat order is confirmed and is included in the payment confirmation email; call this to see it again. If you have a paid order but no URL yet, one is issued now. Referrers earn 5% of the product subtotal on paid orders placed through their URL. If you are connected through a personal token URL, omit customerKey.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Referrer display name — optional, defaults to your registered name | |
| contact | No | Contact (email, LINE ID, etc.) — optional | |
| customerKey | No | Your customerKey (gyotak_cus_...). Omit when connected through a personal token URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to rely on, the description carries the behavioral disclosure burden. It explains that the URL is automatically issued after first payment confirmation, that calling the tool can issue a missing URL, and that referrers earn 5% on paid orders. It does not explicitly state what happens when the user has no paid order, but the conditional side effect is clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary purpose and each sentence adds useful context around issuance, commission, and parameter behavior. The phrase 'call this to see it again' is slightly redundant with 'look up,' but overall the description is efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main outcome, conditional issuance, commission, and a parameter caveat, but it leaves one important gap: it never explicitly states that a paid order is a prerequisite or what happens if the caller has never had one. Since there is no output schema, and the annotations provide no safety/side-effect context, this missing eligibility detail keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three optional parameters in full, including the customerKey omission rule and the default for name. The description's mention of omitting customerKey repeats schema guidance rather than adding new parameter-level meaning, so the high schema coverage keeps this at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Look up your GYOTAK referral MCP URL.' It clearly distinguishes the tool's purpose from sibling payment, order, and catalog tools, making its function immediately identifiable without restating the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to call the tool: to re-view an already issued URL or to have one issued if a paid order exists but no URL is present. It also provides a conditional usage rule (omit customerKey for personal token URLs), though it does not explicitly name alternative sibling tools or say when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_gyotakAInspect
Search GYOTAK FAQ for answers about shipping, payment, products, defrosting, traceability, B2B registration, etc. Returns top matching FAQ entries. If no match, suggest using contact_gyotak to escalate.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | Question text (any language) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does well by disclosing that it returns top matching FAQ entries and suggests contact_gyotak on no match. The read-only nature is implied by 'Search' but not made explicit; still, the success and fallback behaviors are clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no wasted words: the main action is front-loaded, followed by return behavior and the fallback instruction. Every sentence contributes to the agent's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter FAQ lookup with full schema coverage, the description covers the core invocation, return type ('top matching FAQ entries'), and the no-match path. The lack of an output schema is partially mitigated by the return description, though exact formatting or count of matches is left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes 'question' as 'Question text (any language)', so the baseline applies. The description's topic list adds context about content areas but not about the parameter's format or constraints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Search GYOTAK FAQ') and lists concrete topic areas, making the tool's purpose immediately clear. It also explicitly contrasts with contact_gyotak by funneling no-match cases to that sibling, which sharpens differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool for FAQ lookup on the listed topics. It explicitly names contact_gyotak as the escalation alternative when no match is found. However, it does not distinguish from other search-oriented siblings like search_fish, leaving some when-to-use guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_payment_statusAInspect
Test / QA only — do not use for customer orders. Returns the Cardano preprod payment session of an order placed by a GYOTAK test customer (status, amount, deadline, TX hash if paid). For any other order_id it returns PromptPay guidance and nothing about the order. Customers pay via the PromptPay QR attached to the order confirmation email and receive an email once the payment is confirmed.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order ID (e.g. "BB-42") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses exactly what the tool returns (status, amount, deadline, TX hash if paid), what happens for other order_ids (returns PromptPay guidance and nothing about the order), and the payment/confirmation flow. This is a transparent read-only description with no hidden side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each essential: a warning, the return payload, and the fallback behavior/payment context. No fluff or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with no output schema and no annotations, the description is complete: it tells what it returns, when to use it, when not to, and the payment context. Nothing an agent needs for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for order_id, so the baseline is 3, but the description adds significant meaning: it specifies that only orders from GYOTAK test customers are valid, and that any other order_id yields PromptPay guidance instead of order data. This clarifies the parameter's domain and edge-case behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and resource ('Cardano preprod payment session'), and restricts it to orders placed by a GYOTAK test customer. It also clarifies the tool's scope is test/QA only, distinguishing it from sibling payment tools like confirm_payment or create_payment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly forbids use for customer orders ('Test / QA only — do not use for customer orders'), giving a clear when-not condition. It also describes behavior for any other order_id, which implicitly tells agents that the tool is only meaningful for test customer orders.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_replyAInspect
Check if GYOTAK staff has replied to a previously submitted inquiry.
| Name | Required | Description | Default |
|---|---|---|---|
| inquiryId | Yes | Inquiry ID (e.g. "INQ-042") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of signaling side effects. The verb 'Check' implies a read-only, non-destructive operation, which is useful. However, it does not disclose the return shape, idempotency, or any authentication/rate-limit implications, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, direct sentence with no filler. The action and target are front-loaded, making it immediately scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one fully documented parameter and no output schema, the description covers the invocation trigger (previously submitted inquiry) but does not clarify the tool's return value (e.g., boolean vs. reply content). This is the main completeness gap, though the tool is simple enough that an agent can still infer basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents inquiryId with type and example, so schema coverage is 100%. The description adds only the context that the inquiry was previously submitted; no additional parameter semantics are necessary or provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action ('Check') and a concrete resource ('GYOTAK staff reply to a previously submitted inquiry'). It clearly distinguishes this tool from siblings like ask_gyotak (submission) and check_payment_status (payment), even without naming alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description situates the tool in a clear workflow: after an inquiry has been submitted, check whether staff has replied. It does not explicitly name alternatives or exclusions, but the 'previously submitted inquiry' context is unambiguous and provides enough guidance for an agent to know when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_purchase_proofAInspect
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. 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 claimed and claims nothing, every time — pass handle to actually claim. A claim is stamped on chain and cannot be undone, so let the user pick the handle before you pass one. The handle is what you tell us: GYOTAK 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.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | No | 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. | |
| consent | No | 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. | |
| auto_bind | No | 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. | |
| purchase_id | No | Claim only this purchase (e.g. "PB-20260917-a97953d3"). Omit to claim every purchase of yours that is not claimed yet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly: claims are irreversible, GYOTAK does not verify handle ownership, no-arg calls claim nothing, auto_bind defaults to off, turning it off only affects future purchases, and consent text must be shown verbatim in both languages. There is no contradiction with annotations since none are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but dense and front-loaded, with the core purpose in the first sentence. Every clause covers a distinct behavioral rule or parameter interaction, and the consent/auto_bind flow justifies the length. It is not as compact as it could be, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateful tool with no annotations and no output schema, this description covers the full call surface: list mode, claim mode, irreversibility, consent flow, auto_bind semantics, verification-page URLs, and the connector requirement. Nothing an agent needs to call it correctly or brief the user is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds crucial semantic context beyond the schema: handle is semantically required for claiming even though the schema marks it optional, consent must only be true after showing returned text, auto_bind 'on' requires handle and consent while 'off' requires neither, and purchase_id selects one claim vs all. This materially improves correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Claim the on-chain purchase proofs for your own purchases and attach your X (Twitter) handle to them.' It clearly distinguishes this from verification-style siblings by focusing on claiming and stamping, and it explains the list-vs-claim duality. An agent can tell exactly what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives strong context: only works through a personal token URL connector, no customerKey argument, no-arg calls list only, handle required to actually claim, auto_bind consent flow, and off behavior. It does not explicitly name sibling alternatives or say 'use X instead,' so it stops just short of full when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_paymentAInspect
Test / QA only — do not use for customer orders: customers pay via the PromptPay QR attached to the order confirmation email. Executes the Cardano preprod A→B→A settlement for an order placed by a GYOTAK test customer. Requires that test customer's customerKey, a pending payment session from create_payment, and a monthly auto-settle allowance. For any other order_id it returns PromptPay guidance and changes nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order ID (e.g. "BB-123") | |
| customer_key | Yes | customerKey of the test customer that placed the order |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses that it executes a settlement (a mutating action) and that for non-test orders it returns guidance without changing anything. It also mentions prerequisites that may affect behavior (pending payment session, allowance). This goes beyond simply stating the action and provides useful context about side effects and network (preprod). However, it doesn't explicitly state whether the settlement is reversible or what exactly happens to the order after settlement, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with the most critical information ('Test / QA only — do not use for customer orders') front-loaded. Every sentence adds necessary context: the exclusion, the alternative payment method, the specific action, prerequisites, and the fallback behavior. No redundant words or fluff, making it efficient for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and lack of output schema, the description covers the essential aspects: what it does, when to use it, prerequisites, and behavior for non-matching inputs. It does not explicitly describe the return value or output format, which might be important for an agent to know (e.g., success/failure status). However, for a test/QA tool, this might be less critical, and the description still provides sufficient context to decide whether to call it and what to expect in terms of side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (order_id with example format, customer_key as the test customer's key). The description adds the requirement that customer_key must belong to a test customer, but this is already in the schema. It also mentions that the payment session must be pending, which relates to the order_id indirectly. With 100% schema coverage, the description adds marginal value beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it executes a Cardano preprod A→B→A settlement for a test customer's order. It explicitly identifies itself as test/QA only and distinguishes itself from customer payment flows (PromptPay QR) and from sibling tools like check_payment_status or create_payment by specifying its exact action and scope. The verb 'Executes' and the resource 'Cardano preprod A→B→A settlement' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: only for test/QA, not for customer orders, and only when certain prerequisites are met (test customer's customerKey, pending payment session from create_payment, monthly auto-settle allowance). It also states the behavior for non-matching order_ids (returns PromptPay guidance and changes nothing), effectively saying when not to use it. While it doesn't name a specific alternative tool, it clearly indicates the condition for use and provides a fallback behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contact_gyotakAInspect
Submit a question to GYOTAK staff when FAQ does not have the answer. Staff will reply via Discord. Use check_reply to retrieve the response later.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Your name (optional) | |
| question | Yes | Question to ask GYOTAK staff |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description is the only source of behavioral context. It discloses the asynchronous workflow ('Staff will reply via Discord' and 'Use check_reply to retrieve the response later') but does not mention side effects, whether the submission is stored, or any rate/format constraints. That is partial disclosure, not full.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, with the action and condition front-loaded and the essential follow-up instruction immediately after. Every word contributes; there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter submission tool with no output schema, the description is largely complete: it gives the trigger, the action, and the retrieval path. It does not describe what the call returns or how to distinguish this from ask_gyotak, but these are minor gaps for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% and each parameter already has a description. The tool description only reinforces 'question' implicitly and adds no new semantic detail about either parameter, so the schema carries the burden and the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Submit a question'), a target ('GYOTAK staff'), and a triggering condition ('when FAQ does not have the answer'). However, it does not differentiate from the sibling ask_gyotak, whose name suggests a similar action, so the agent is left to infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly directs when to use the tool ('when FAQ does not have the answer') and points to the follow-up tool ('Use check_reply to retrieve the response later'). It stops short of naming ask_gyotak as an alternative or stating when not to use this tool, so a small guidance gap remains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_paymentAInspect
Test / QA only — do not use for customer orders, and do not call it after placing a customer order: customers pay via the PromptPay QR attached to the order confirmation email. Works only for orders of GYOTAK test customers; for any other order_id it returns PromptPay guidance and creates nothing. For a test order it computes the THB→tADA conversion, creates a Cardano preprod payment session with a 30-minute expiry, and returns the payment details (GYOTAK A→B→A round-trip).
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order ID (e.g. "BB-42") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so thoroughly: it only works for test customers, computes THB→tADA conversion, creates a preprod session with a 30-minute expiry, and creates nothing for unsupported order IDs. The side-effect boundary is clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical warning is front-loaded, and the two sentences pack in scope, exclusions, parameter constraints, behavior, and a time-bound expiry. Nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for selection and invocation, but with no output schema it only vaguely says 'returns the payment details' and does not specify the returned fields or how they connect to siblings such as check_payment_status. Minor gap in an otherwise strong definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents order_id and provides an example, the description adds crucial parameter-level meaning: the ID must belong to a GYOTAK test customer, and any other value causes a non-creating fallback. That materially changes how an agent should treat the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states an exact scope: a test/QA-only helper that creates a Cardano preprod payment session and returns payment details. It distinguishes itself from a production payment path by explicitly saying it is not for customer orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use ('Test / QA only'), when-not-to-use ('do not use for customer orders', 'do not call it after placing a customer order'), and what happens with invalid input ('returns PromptPay guidance and creates nothing'). This leaves no ambiguity about whether the agent should select it for a real order.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_catalogAInspect
Get GYOTAK's full fish catalog with real-time availability, retail prices (THB/kg), freshness tiers, and traceability records. Retail prices are always included. For registered chat customers, pass customerKey (gyotak_cus_...) to show wholesale pricing and enable one-tap checkout. For LINE VIP customers, pass lineUserId. Delivery is available within Thailand only. International addresses are not accepted.
| Name | Required | Description | Default |
|---|---|---|---|
| lineUserId | No | LINE user ID for VIP pricing (optional) | |
| customerKey | No | GYOTAK customerKey (gyotak_cus_...) for registered chat customers — enables identification, wholesale pricing, and one-tap checkout (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that retail prices are always included, that customerKey enables wholesale pricing and one-tap checkout, and that delivery is Thailand-only. These are meaningful behavioral details beyond the tool's name and schema, though it stops short of discussing output format or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loads the primary purpose, and then adds only the essential conditional logic and delivery constraint. Every sentence contributes actionable information with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description covers the essential returns, optional parameter behavior, and a critical geographic restriction. It does not explicitly compare against search_fish or other sibling tools, but it is sufficiently complete for a read-only catalog retrieval tool with two optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds semantic value by clarifying which type of user should pass each optional parameter and what behavior changes when they do. This goes beyond the schema's per-parameter descriptions by linking them to customer types and checkout behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb and resource: 'Get GYOTAK's full fish catalog.' It enumerates the key returned data (real-time availability, retail prices, freshness tiers, traceability records), making the tool's purpose unambiguous. The word 'full' also helps distinguish it from sibling search-oriented tools like search_fish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to pass customerKey vs lineUserId, and it clearly states that international delivery is not accepted. It does not explicitly name alternative sibling tools or state when to prefer search_fish, but the contextual usage instructions are clear enough for an agent to invoke the tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_catch_reportsAInspect
Get catch records by date or freshness tier. Returns GPS coordinates, photo timestamp, and blog URL for traceability verification. In-stock products reference these records; consumers can access records via blog URL on package label even after sold out. Planned integration: Each catch record will be registered on Midnight blockchain as an immutable on-chain transaction, making GPS coordinates, timestamps, and photo hashes tamper-proof and permanently verifiable.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD format. Returns records for that specific date. | |
| tier | No | Freshness tier: fresh=last 30 days, tier1=31-60 days, tier2=61-90 days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the returned fields and the post-sale access via blog URL, but it does not explicitly state that the operation is read-only or describe any side effects, permissions, or error behavior. The planned blockchain integration is future behavior, not current tool behavior, and adds little to invocation safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are crisp and front-loaded, and the consumer-access context is relevant. However, the final planned-integration sentence describes a future state that does not affect current invocation, making the description somewhat padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the key return fields and provides useful business context, but both parameters are optional in the schema and the description does not clarify behavior when neither is supplied or whether date and tier can be combined. There is also no output schema, so the response format is only partially specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both date and tier are already documented with format and meaning. The description only restates that filtering is by date or tier, so it contributes no semantic value beyond the schema, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get catch records by date or freshness tier.' It further distinguishes this from sibling tools by naming the traceability payload (GPS coordinates, photo timestamp, blog URL), so an agent can separate get_catch_reports from verification and order tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for traceability verification and explains that in-stock products reference these records, but it never states explicit when-to-use or when-not-to-use conditions or names alternatives. An agent must infer when this tool is the right choice among the sibling verification tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contact_infoAInspect
Get the two ways to buy from GYOTAK, with the contact details for each: retail (order here through place_order, or browse the web shop) and B2B wholesale for restaurants and businesses (LINE @284ezjvm, tier pricing, application required). Call this when the user asks how to buy, how to open a wholesale account, or how to reach GYOTAK. Takes no arguments and returns static text — for product availability or prices use get_catalog, and for other questions use ask_gyotak.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden, and it succeeds. It discloses that the tool takes no arguments, returns static text, and summarizes the actual content (retail vs. B2B wholesale, LINE contact, tier pricing, application required). This makes the behavior fully transparent for a simple static-info tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every part earns its place: purpose, key details, call triggers, argument behavior, and sibling routing. It is front-loaded with the core purpose and does not waste words on generic filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument tool returning static text, the description is complete. It covers what the tool returns, when to invoke it, what not to use it for, and which alternatives to choose. No output schema is needed because the description already tells the agent the response is static text with known content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, which sets a baseline of 4. The description reinforces this by explicitly saying 'Takes no arguments,' matching the empty input schema. There is no additional parameter meaning to add because there are no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: returns the two ways to buy from GYOTAK with contact details. It is specific about both retail and B2B wholesale paths, which differentiates it from the listed siblings such as get_catalog, place_order, and ask_gyotak.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to call it: when the user asks how to buy, how to open a wholesale account, or how to reach GYOTAK. It also gives clear alternatives: use get_catalog for availability/prices and ask_gyotak for other questions, so an agent knows exactly when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_komon_recordsBInspect
Get GYOTAK KOMON physical authentication records from the database. Each record represents a PUF (physically unclonable function) registration with minutiae extraction and on-chain commitment. Shielded records do not expose GPS.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status (default: all non-test) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does reveal meaningful context: records represent PUF registrations with minutiae extraction, on-chain commitment, and shielded records do not expose GPS. However, it does not explicitly state that the operation is read-only, describe auth requirements, or clarify response behavior beyond the data model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with the first sentence clearly stating the action and resource and the second adding necessary context. There is no filler, tautology, or redundant repetition. It is appropriately front-loaded and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description could do more to explain the return structure, pagination, or whether all records are returned by default. It does cover the core semantics of the records and notes GPS shielding, which is helpful. Missing usage guidance and explicit behavioral expectations keep it below a 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the only parameter ('status') with 100% description coverage and an enum. The tool description does not add parameter-specific meaning beyond the schema, which is acceptable under the baseline when schema coverage is high. It provides helpful background about what a 'record' is, but not about the status filter itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), a clear resource ('GYOTAK KOMON physical authentication records'), and a source ('the database'). It also adds useful domain context about PUF registration and on-chain commitment, making the tool's purpose understandable. It does not explicitly distinguish itself from sibling tools like get_catch_reports or verify_komon, but the resource is specific enough to avoid major ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it state exclusions or prerequisites. With many sibling tools such as verify_komon and get_catch_reports, the agent is left to infer the appropriate selection without explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_historyAInspect
Get B2B order history (last 20 orders). Requires lineUserId of a registered VIP customer.
| Name | Required | Description | Default |
|---|---|---|---|
| lineUserId | Yes | LINE user ID of the VIP customer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It discloses the result limit ('last 20 orders') and eligibility ('registered VIP customer'), but it does not describe return format, error behavior, or what happens when the user is not found or not eligible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence with the core action front-loaded and the eligibility requirement stated immediately after. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read operation with no output schema, the description covers the essential context: what is returned, the limit, and who is eligible. It omits details like return shape or failure modes, but these are less critical given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes lineUserId with 100% coverage, providing a baseline of 3. The description adds extra semantic value by clarifying that the user must be a registered VIP customer and linking the parameter to B2B order history.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get B2B order history' with a concrete constraint of 'last 20 orders'. This clearly distinguishes it from sibling tools like place_order or create_payment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear prerequisite: the caller must have a lineUserId of a registered VIP customer. This provides enough context for when the tool is applicable, though it does not explicitly mention when not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_referralsAInspect
Show your referral summary as a GYOTAK referrer: your referral URL, number of referred orders (paid / unpaid), this month's estimated commission, unpaid balance, payout destination status, and the last 5 paid referred orders (order number, date, subtotal, commission — no buyer details). Only works for the customer of this connection; if you are connected through a personal token URL, omit customerKey.
| Name | Required | Description | Default |
|---|---|---|---|
| customerKey | No | Your customerKey (gyotak_cus_...). Omit when connected through a personal token URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It states that the tool is read-only in nature ('Show'), explicitly scopes it to the current connection, and discloses output limitations such as 'no buyer details' and 'last 5 paid referred orders.' This gives the agent a solid understanding of what the tool will and will not do, though it does not cover error or authentication failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then lists the exact components of the summary in a compact enumeration. Each clause adds specific, useful detail without filler or repetition. It is appropriately sized for the amount of information being conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description does the necessary work of specifying what the response contains: referral URL, order counts, commission, unpaid balance, payout destination status, and last 5 paid orders. It also covers the single parameter's usage condition, making the tool fully actionable for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the customerKey parameter and explicitly says to omit it when connected through a personal token URL, so the description largely repeats that guidance. The added phrase 'Only works for the customer of this connection' provides slight extra context, but the description does not meaningfully expand beyond the schema's 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource — 'Show your referral summary as a GYOTAK referrer' — and then enumerates exactly what the tool returns (referral URL, paid/unpaid orders, commission, payout status, last 5 orders). This clearly distinguishes it from siblings like get_order_history or check_payment_status by focusing on the referrer summary rather than general orders or payments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when the tool is applicable: 'Only works for the customer of this connection.' It also provides a concrete parameter condition: if connected through a personal token URL, omit customerKey. It does not explicitly name alternatives or say when not to use this tool versus siblings, but the context is sufficiently clear for a self-contained summary tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_orderAInspect
Place an order. Two modes: (A) VIP wholesale: provide lineUserId of a registered VIP customer. (B) Guest retail: provide customerName, phone, items array, and a delivery address — shippingAddress, shippingProvince and email are all required, and an order missing any of them is rejected. Guest orders are priced at tier-linked retail rates (server-calculated) and the total is final at this point; a confirmation email with a PromptPay QR follows. Without customerKey or a personal token URL connection, every order creates a new customer with a new customerKey, even when the email was used before (orders are never linked to an existing customer by email); the new key is returned in the response and the confirmation email — tell the user to save it. Inventory is NOT deducted — orders go to the pick queue for staff fulfillment. Delivery is available within Thailand only, so the province must be a Thai one. International addresses are not accepted.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | (Guest mode, optional) Language of the confirmation email. Defaults to en. | |
| memo | No | (Optional) Order notes | |
| No | (Guest mode) Email address for the order confirmation — required for guest orders | ||
| items | No | (Guest mode) Order items | |
| phone | No | (Guest mode) Contact phone number | |
| fishName | No | (VIP mode) Fish name (romaji) | |
| totalThb | No | (VIP mode) Total amount in THB | |
| lineUserId | No | LINE user ID of VIP customer (VIP mode). Omit for guest mode. | |
| referrerId | No | (Optional) Referrer ID for tracking | |
| customerKey | No | (Guest mode) Registered customer key (from register_customer). Resolves name/phone/shipping automatically. If you are connected through a personal token URL the customer is already resolved: send items[] alone and omit this, customerName, phone and lineUserId. | |
| requestedKg | No | (VIP mode) Requested weight in kg | |
| customerName | No | (Guest mode) Customer name | |
| shippingAddress | No | (Guest mode) Street address and building name — required for guest orders | |
| shippingDistrict | No | (Guest mode) Hua Hin / Pranburi 等の地元配達判定に必須。住所に含まれていれば自動判定するが、明示推奨 / District name. Required to detect local (free) delivery for Hua Hin / Pranburi. Auto-detected from shippingAddress when present, but explicit value recommended. | |
| shippingProvince | No | (Guest mode) Thai province name, used for shipping cost — required for guest orders. Thailand only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses that guest orders are priced at retail rates, the total is final, a confirmation email with a PromptPay QR follows, a new customer is created when no customerKey or token URL connection exists, inventory is not deducted, and delivery is Thailand-only. These are exactly the behavioral traits an agent needs to know before invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence contributes necessary operational detail. It is front-loaded with the two modes and required fields, then expands into behavioral caveats. A slightly more structured layout (e.g., separating modes) would improve scannability, but there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 15-parameter tool with no annotations and no output schema, the description covers a remarkable amount: modes, required fields, pricing, customer creation, inventory handling, delivery constraints, and confirmation behavior. It falls just short of full completeness by not describing the response structure beyond the returned customerKey and not covering error cases beyond missing required fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema by explaining mode-specific requirements, the customerKey resolution behavior, and the personal token URL shortcut. This elevates it above the baseline without needing to restate every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Place an order' and immediately distinguishes two concrete modes (VIP wholesale and guest retail), each with its own required inputs. This makes the tool's function unmistakable and separates it from sibling tools like create_payment or check_payment_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use each mode, including required fields and the condition for omitting customerKey when connected via a personal token URL. It does not explicitly name alternative tools or state when not to use this tool, but the mode-based guidance is strong enough for an agent to decide correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recover_customer_keyAInspect
Explains where a lost customerKey can be found: a key issued with an order is written in the order confirmation email sent to the 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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number used at registration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden, and it clearly discloses that the tool has no lookup, verification, or send side effects. However, it does not explain how the required phone parameter is used or whether it influences the guidance, which is a transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences carry the core behavior, the fallback, and the boundary with no filler. The first sentence is a bit dense with the parenthetical, but the overall structure is coherent and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main behavior and limitation, but there is no output schema or annotations and the role of the mandatory phone input is unexplained. An agent can select and call the tool, but it may not know what the tool does with its only input or exactly what response to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes 'phone' as the phone number used at registration (100% coverage), so the description adds little parameter meaning. It does not connect the phone to the order confirmation email or say whether the phone shapes the explanation, which keeps this at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: it 'explains where a lost customerKey can be found.' It also defines what the tool is not ('does not look up, verify or send anything') and names contact_gyotak as the fallback, making its role distinct from look-up and verification siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the condition for use (a lost customerKey) and gives the exact recovery path: check the order confirmation email, and if it cannot be found there, contact_gyotak. The explicit non-action statement also tells the agent not to expect verification or sending from this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_customerAInspect
Register as a GYOTAK customer. Collect name, phone, address, email, and customer type (Retail or Wholesale) via conversation BEFORE calling this tool. Returns a customerKey for future orders. Save the key in your AI memory.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full name (English) | |
| No | Email address (optional) | ||
| phone | Yes | Contact phone number | |
| address | Yes | Shipping address | |
| customerType | Yes | Customer type: Retail (consumer) or Wholesale (business) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It reveals that the tool returns a customerKey and instructs saving it in AI memory, which is key for future orders. It does not mention potential failure modes or duplicate registration behavior, but covers the essential workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The purpose, prerequisite, and return-value handling are each stated once, efficiently and in logical order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what to collect, what will be returned, and how to handle the result, which is sufficient for a registration tool with no output schema. It does not cover edge cases like validation errors or duplicate registrations, but those are not critical for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description doesn't need to explain parameter meanings. The description lists the same fields as the schema and adds no new semantics beyond the conversational collection requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Register as a GYOTAK customer.' It identifies the resource (customer) and differentiates itself from siblings like place_order and recover_customer_key by focusing on customer creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to collect all required information via conversation BEFORE calling, which gives a clear prerequisite. It does not mention alternatives like recover_customer_key for already-registered customers, so some usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_payoutAInspect
Email the GYOTAK referrer a link to the form where they register where their commission should be sent: a Thai PromptPay QR (read inside the form, the image is never uploaded) or a stablecoin address (USDC on Base, or USDM on Cardano). Call this when the user wants to register, see, or change their payout destination. Returns the destination currently on file, masked, and the masked address the link was sent to. For security the form URL is never shown in the chat — the link goes only to the email address on file, so tell the user to open it from their email. Never ask the user to type the number or the wallet address into the chat.
| Name | Required | Description | Default |
|---|---|---|---|
| customerKey | No | Your customerKey (gyotak_cus_...). Omit when connected through a personal token URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does so well: it discloses the return value (masked destination on file plus the masked address the link was sent to), the security constraint (form URL never shown in chat, link goes only to the email on file), and an explicit behavioral instruction (never ask the user to type the number or wallet address). This is unusually rich disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The action and usage trigger are front-loaded, and nearly every sentence carries operational value (destination types, return shape, security behavior). It is long and slightly over-explained in places, but no sentence is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description explicitly states what is returned (the masked destination and the masked email address), and it covers the security constraints and user-facing instructions an agent needs. Nothing material for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single customerKey parameter is already documented in the schema, including the 'omit when connected through a personal token URL' guidance. The description adds no parameter-level detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it emails a link to the payout-registration form for a GYOTAK referrer's commission destination. It even enumerates the two supported destination types (Thai PromptPay QR, USDC on Base / USDM on Cardano), so an agent knows exactly what this tool accomplishes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger: 'Call this when the user wants to register, see, or change their payout destination.' That covers the main invocation paths clearly. It does not name when-not-to-use or a competing sibling, but no sibling overlaps this payout-registration purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_fishBInspect
Search fish by name (Japanese, Thai, or English). Provide lineUserId to include VIP tier pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Fish name to search for | |
| lineUserId | No | LINE user ID for VIP pricing (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does disclose the conditional behavior that providing lineUserId includes VIP tier pricing, which is useful. However, it says nothing about read-only nature, return format, error handling, or rate limits, so transparency is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence covering the core action, then a second sentence addressing the optional parameter. Every word earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with two parameters and no output schema, the description covers the basics. However, it omits what the search returns, does not differentiate from get_catalog, and does not state whether any authentication or prerequisites apply, leaving moderate gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful parameter context by specifying accepted language values for 'query' and explaining that 'lineUserId' modifies pricing to include VIP tiers, going beyond the schema's minimal descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Search fish by name') and specifies supported languages (Japanese, Thai, English), making the tool's purpose concrete. However, it does not explicitly differentiate from sibling tools like get_catalog, which may also relate to fish data, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over alternatives such as get_catalog or other fish-related tools. It implies its use by stating what it does, but lacks exclusions or comparisons, leaving an agent to infer usage context on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_catchAInspect
Verify a GYOTAK catch record DIRECTLY from the Midnight blockchain. Reads on-chain state and returns the raw hex plus decoded fields for independent verification. Unlike get_catch_reports (which returns GYOTAK's own database), this lets you verify without trusting GYOTAK. GPS coordinates are cryptographically hidden (hiding commitment with secret nonce); only the region is provable. Supports both preprod and mainnet. batchId also accepts several IDs separated by commas: they are all checked against a single fetch of the contract state, and the response lists found/not-found per ID.
| Name | Required | Description | Default |
|---|---|---|---|
| batchId | No | Filter to a specific catch record by batchId (e.g. "CR-TESTV3-INSIDE-02"). Omit to return all records in the contract. | |
| network | No | Midnight network (default: preprod) | |
| contractAddress | Yes | Midnight contract address (64-char hex). Example: 2e519c349331a6aaee82a7ed31aa5e39d6a3995f6cf85ec2256c97cda9a8c302 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It states the read-only nature ('Reads on-chain state'), the return shape ('raw hex plus decoded fields'), and a notable limitation ('GPS coordinates cryptographically hidden... only the region is provable'). It also covers network support and multi-ID batch behavior without contradicting any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and each sentence adds a distinct piece of information: purpose, comparison, cryptographic limitation, network support, and batchId behavior. No redundancy, and the primary purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description partially covers return values by mentioning 'returns raw hex plus decoded fields' and 'response lists found/not-found per ID' for batch calls. It omits explicit error conditions or exact response format, but for a read-only verification tool with only three parameters and one required, it provides enough operational detail for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (3 params), so baseline is 3. The description adds meaningful semantics beyond the schema: batchId 'also accepts several IDs separated by commas' with a per-ID found/not-found outcome, and explicitly ties parameters to a direct blockchain read rather than a database query. This exceeds the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Verify a GYOTAK catch record DIRECTLY from the Midnight blockchain.' It clearly differentiates itself from get_catch_reports by stating that this reads on-chain state instead of GYOTAK's database, making the tool's purpose unambiguous even among sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit comparison: 'Unlike get_catch_reports (which returns GYOTAK's own database), this lets you verify without trusting GYOTAK.' This directly tells the agent when to choose this tool over the named alternative, improving selection accuracy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_komonAInspect
Verify a GYOTAK KOMON record directly from the Midnight blockchain. Reads on-chain state and returns the raw hex plus decoded fields for independent verification. Unlike get_komon_records (which returns GYOTAK's database), this reads directly from the chain. Shielded records prove region membership without exposing GPS. Currently preprod only.
| Name | Required | Description | Default |
|---|---|---|---|
| komonId | No | Filter to a specific komon record by ID. Omit to return all records. | |
| network | No | Midnight network (default: preprod) | |
| contractAddress | No | Midnight komon contract address (64-char hex) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well by disclosing that it reads on-chain state, returns raw hex and decoded fields, and preserves GPS privacy via shielded records. However, the statement 'Currently preprod only' conflicts with the network parameter enum that includes mainnet, creating ambiguity about whether mainnet is usable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and resource. Every sentence adds useful context: what it does, what it returns, how it differs from the sibling, its privacy property, and its current environment.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description adequately explains return content, source of truth, and usage distinction. The main gap is the unresolved contradiction between 'preprod only' and the network enum exposing mainnet, which prevents it from being fully unambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the baseline is 3. The description adds no additional parameter-level detail beyond what the schema already provides, and the 'preprod only' note slightly muddies the network parameter's documented mainnet option.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Verify), a specific resource (GYOTAK KOMON record), and a specific source (Midnight blockchain). It also distinguishes itself from get_komon_records by clarifying that it reads on-chain state rather than GYOTAK's database, and it states the output (raw hex plus decoded fields).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly contrasts with get_komon_records, telling the agent that this tool is for independent verification directly from the chain. It also adds a clear environmental constraint, 'Currently preprod only,' which helps the agent decide when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_tempAInspect
Verify GYOTAK cold-chain storage temperatures DIRECTLY from the Midnight blockchain. Reads on-chain state and returns decoded hourly temperature records per freezer for independent verification. Unlike the dashboard (which reads from GYOTAK's D1 database), this lets you verify without trusting GYOTAK. Each value is the HOURLY AVERAGE committed on-chain; it does not prove the temperature stayed within any limit at every moment in that hour. Supports both preprod and mainnet.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Midnight network (default: mainnet) | |
| freezerId | No | Filter to a specific freezer by ID. Omit to return all freezers. | |
| hourStartUtc | No | Filter to a specific hour (e.g. "2026-07-09 11:00:00"). Omit to return all hours. | |
| contractAddress | No | Midnight temp-log contract address (64-char hex). Default: mainnet production contract. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It clearly states this is a read-only operation ('Reads on-chain state'), explains what the data represents (hourly averages committed on-chain), and explicitly discloses the limitation that it does not prove temperatures stayed within limits at every moment. It also notes network support (preprod and mainnet). It doesn't specify output format or error behavior, but the key behavioral caveat about hourly averages is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core function ('Verify ... DIRECTLY from the Midnight blockchain'), followed by the key trust differentiator, the critical limitation, and network support. Every sentence earns its place: the first sentence states the purpose, the second explains why this tool exists (vs the dashboard), the third warns about what the data doesn't prove, and the fourth notes supported networks. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 optional parameters, no required parameters, no output schema), the description covers the essential context: what it verifies, why it's different from the dashboard, the hourly-average limitation, and supported networks. It doesn't describe the return format or error cases, but for a read-only verification tool with heavily documented parameters, the described context is largely sufficient. The trust/verification framing is particularly valuable for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already described in the input schema. The tool description adds context about what the parameters filter (network, freezerId, hourStartUtc, contractAddress) by explaining the purpose of verification, but it doesn't add new parameter-level semantics beyond the schema. The baseline of 3 is appropriate because the schema does the heavy lifting and the description reinforces the verification context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Verify'), a specific resource (GYOTAK cold-chain storage temperatures from the Midnight blockchain), and immediately distinguishes itself from the dashboard reading from GYOTAK's D1 database. It clearly explains the independent verification purpose and the hourly-average limitation, which differentiates it from sibling tools like verify_catch or verify_komon. The scope is precise: reads on-chain state and returns decoded hourly temperature records per freezer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance: use this when you need independent verification without trusting GYOTAK, unlike the dashboard. It also clarifies the limitation that hourly averages do not prove continuous compliance, which is a key usage consideration. It names the alternative context (the dashboard) and explains the trust difference, giving clear when-to-use reasoning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
confirm_payment1 field changed- changed
Input schema / properties / customer_key / descriptionPrevious value: -"Your customer key (from register_customer)"New value: +"customerKey of the test customer that placed the order"
1 tool update
- Changed
claim_purchase_proof2 fields changed- added
Input schema / properties / auto_bindAdded 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" +} - added
Input schema / properties / consentAdded 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" +}
1 tool update
- Changed
claim_purchase_proof2 fields changed- removed
Input schema / properties / auto_bindRemoved 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" -} - removed
Input schema / properties / consentRemoved 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" -}
1 tool update
- Changed
claim_purchase_proof2 fields changed- added
Input schema / properties / auto_bindAdded 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" +} - added
Input schema / properties / consentAdded 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" +}
1 tool update
- Changed
claim_purchase_proof1 field changed- changed
Input schema / properties / handle / descriptionPrevious 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."
1 tool update
- Added
claim_purchase_proof
1 tool update
- Changed
place_order1 field changed- added
Input schema / properties / items / items / properties / statusAdded value: +{ + "description": "Cut / preparation of the fish (e.g. \"sashimi fillet\"). Pass the status shown for this fish in get_catalog, verbatim. Optional: when omitted the server fills it in from stock, and asks which one if more than one cut is available.", + "type": "string" +}
1 tool update
- Added
register_payout
2 tool updates
- Changed
get_share_kit1 field changed- added
Input schema / properties / includePhotosAdded value: +{ + "description": "Set true only if the user wants to attach a photo they take themselves with a blockchain capture record. Returns photo_capture_url and the list of recorded photos.", + "type": "boolean" +}
- Removed
set_share_draft
1 tool update
- Added
set_share_draft
1 tool update
- Added
report_share
2 tool updates
- Added
get_share_kit - Changed
place_order1 field changed- changed
Input schema / properties / shippingDistrict / descriptionPrevious value: -"(Guest mode, optional) District name"New value: +"(Guest mode) Hua Hin / Pranburi 等の地元配達判定に必須。住所に含まれていれば自動判定するが、明示推奨 / District name. Required to detect local (free) delivery for Hua Hin / Pranburi. Auto-detected from shippingAddress when present, but explicit value recommended."
Related MCP Connectors
AI-readable directory + commerce layer: 3,500+ SEA businesses, plus products from verified stores.
Free read-only crypto whale-tracking & market-data MCP tools across 14 chains. No auth.
AI-powered organic supply chain verification: certification, OFAC, FDA import checks.
Multi-venue VWAP, bid/ask, crypto FX, metals and equities with provenance receipts for AI agents
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceSemantic product search and price-intelligence API over Singapore e-commerce data. Computes auditable value-scores from Shannon entropy across vendor price distributions, with pay-per-call pricing via x402 (USDC) alongside Stripe.-
- AlicenseNot gradedqualityDmaintenanceMethodology-transparent BTC + ETH whale forensics. 30 tools, anonymous OAuth 2.1 Free tier.MIT
- AlicenseAqualityBmaintenanceReal-time crypto whale intelligence MCP server with 55 tools across 14 blockchains. Free, no auth required.561MIT
- AlicenseNot gradedqualityCmaintenanceEnables sovereign, offline-capable dental practice management with Ed25519-signed transactions, running on your own infrastructure.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.