Skip to main content
Glama

Record a claim

well_record_claim
Idempotent

Record a claim: start following a refund the person asked a supplier for, one task per supplier credit note. The task keeps the credit note, the supplier, the amount and the day the refund is expected, shows in the person's task list and turns red when that day passes. It closes by itself when a confirmed payment covers the credit note. It writes only inside Well and sends nothing to anyone.

Call it on the workspace that holds the credit notes, with the credit_note_ids (one to 10 invoice ids of supplier credit notes) and expected_by, the day the refund is expected (YYYY-MM-DD, from today to 180 days ahead). Well copies the amount, the currency and the supplier from each credit note: the call carries none of them.

Call it only after the send call for the same credit notes returned success: true, or returned an approval_url for the person to approve. Never call it for a claim the person declined, for an email shown as text only, for a credit note you could not prove is owed, or on your own guess.

Read claims, one item per credit note, with outcome:

  • recorded: the task is written (claim: the task id, the supplier, the amount, the currency, the day the refund is expected, the status).

  • already_recorded: this credit note already has a live claim (claim); nothing was written.

  • refused: nothing was written. reason says why: credit_note_not_found (no such invoice in this workspace), not_a_credit_note (the document is not a credit note), not_a_supplier_credit_note (the credit note is not proved to be on the company's purchase side: it is a sale, both legs are the company's own, neither is, or the receiver is missing or not proved to be the company), duplicate (the credit note is a folded duplicate; claim the document it was folded into), own_company_unset (no own company of the workspace is established yet, so the side cannot be proved), own_set_incomplete (the workspace's own companies could not all be read, so the side cannot be proved now), supplier_unknown (the credit note names no supplier), amount_unknown (the credit note has no total), already_settled (a confirmed payment already covers it), expected_by_out_of_range (the day is before today or more than 180 days ahead).

A refund watch after a return or a cancellation. When no credit note exists yet, because the person returned an item or cancelled a service on a merchant's site with a browser task, pass refund_watch in place of credit_note_ids and expected_by: the browser task (browser_task_id), the merchant as a company of the workspace (merchant_company_id), the refund the site stated (expected_amount, currency) and the day it is expected (expected_by). One watch per browser task. Call it only after the person said yes to the watch. Read refund_watch: outcome recorded, already_recorded (the live watch is returned) or refused with reason browser_task_not_found, merchant_not_found, amount_invalid or expected_by_out_of_range. The watch itself sends nothing; its scheduled run reads it with well_get_task and changes it with well_update_refund_watch.

When the token authorizes one workspace, call this directly — no workspace call is needed first. When it authorizes several, this read will not guess which one you mean: pass workspace_id on the call.

Input Schema

NameRequiredDescriptionDefault
expected_byNoThe day the refund is expected, YYYY-MM-DD, from today to 180 days ahead.
refund_watchNoA refund watch after a return or a cancellation, in place of credit_note_ids and expected_by.
workspace_idNoTarget workspace. Omit when the token authorizes one workspace. Required when it authorizes several — a write lands in exactly one workspace and this call would not say which.
conversation_idNoThe conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation.
credit_note_idsNoThe supplier credit notes of the claim email, as invoice ids in the workspace of this call.
idempotency_keyNoOptional client-supplied key. A retried write with the same key returns the original result instead of re-applying the operation.
workspace_scopeNoRestrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace.

Output Schema

NameRequiredDescriptionDefault
errorNo
claimsNo
successYes
refund_watchNo
conversation_idNoThe conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation.
newly_connectedNoTools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: "<name> is connected.". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later.
conversation_id_noteNoPresent only when the server opened a fresh lane, stating that no choice recorded earlier was read.
conversation_id_sourceNoWhere the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / claims / items / properties / claim / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "amount": {
      -        "type": "string"
      -      },
      -      "claim_id": {
      -        "type": "string"
      -      },
      -      "credit_note_id": {
      -        "type": "string"
      -      },
      -      "currency": {
      -        "type": "string"
      -      },
      -      "due_by": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "status": {
      -        "type": "string"
      -      },
      -      "supplier_name": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "claim_id",
      -      "credit_note_id",
      -      "supplier_name",
      -      "amount",
      -      "currency",
      -      "due_by",
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "amount": {
      +        "type": "string"
      +      },
      +      "claim_id": {
      +        "type": "string"
      +      },
      +      "credit_note_id": {
      +        "type": "string"
      +      },
      +      "currency": {
      +        "type": "string"
      +      },
      +      "due_by": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "status": {
      +        "type": "string"
      +      },
      +      "supplier_name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "claim_id",
      +      "credit_note_id",
      +      "supplier_name",
      +      "amount",
      +      "currency",
      +      "due_by",
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / refund_watch / properties / watch / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "amount": {
      -        "type": "string"
      -      },
      -      "bank_read": {
      -        "type": "boolean"
      -      },
      -      "browser_task_id": {
      -        "type": "string"
      -      },
      -      "chased_at": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "claim_id": {
      -        "type": "string"
      -      },
      -      "currency": {
      -        "type": "string"
      -      },
      -      "expected_by": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "merchant_company_id": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "merchant_emails": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "merchant_name": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "refund": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "amount": {
      -                "type": "string"
      -              },
      -              "currency": {
      -                "type": "string"
      -              },
      -              "executed_at": {
      -                "type": "string"
      -              },
      -              "transaction_id": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "transaction_id",
      -              "amount",
      -              "currency",
      -              "executed_at"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "refund_mail_at": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "state": {
      -        "enum": [
      -          "watching",
      -          "overdue",
      -          "chased",
      -          "refund_seen",
      -          "closed"
      -        ],
      -        "type": "string"
      -      },
      -      "status": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "claim_id",
      -      "browser_task_id",
      -      "merchant_company_id",
      -      "merchant_name",
      -      "merchant_emails",
      -      "amount",
      -      "currency",
      -      "expected_by",
      -      "status",
      -      "state",
      -      "chased_at",
      -      "refund_mail_at",
      -      "refund",
      -      "bank_read"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "amount": {
      +        "type": "string"
      +      },
      +      "bank_read": {
      +        "type": "boolean"
      +      },
      +      "browser_task_id": {
      +        "type": "string"
      +      },
      +      "chased_at": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "claim_id": {
      +        "type": "string"
      +      },
      +      "currency": {
      +        "type": "string"
      +      },
      +      "expected_by": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "merchant_company_id": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "merchant_emails": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "merchant_name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "refund": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "amount": {
      +                "type": "string"
      +              },
      +              "currency": {
      +                "type": "string"
      +              },
      +              "executed_at": {
      +                "type": "string"
      +              },
      +              "transaction_id": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "transaction_id",
      +              "amount",
      +              "currency",
      +              "executed_at"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "refund_mail_at": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "state": {
      +        "enum": [
      +          "watching",
      +          "overdue",
      +          "chased",
      +          "refund_seen",
      +          "closed"
      +        ],
      +        "type": "string"
      +      },
      +      "status": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "claim_id",
      +      "browser_task_id",
      +      "merchant_company_id",
      +      "merchant_name",
      +      "merchant_emails",
      +      "amount",
      +      "currency",
      +      "expected_by",
      +      "status",
      +      "state",
      +      "chased_at",
      +      "refund_mail_at",
      +      "refund",
      +      "bank_read"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed3 schema fields changed
    • addedInput schema / properties / refund_watch
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "A refund watch after a return or a cancellation, in place of credit_note_ids and expected_by.",
      +  "properties": {
      +    "browser_task_id": {
      +      "description": "The browser task that sent the return or the cancellation.",
      +      "format": "uuid",
      +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +      "type": "string"
      +    },
      +    "currency": {
      +      "description": "The ISO 4217 currency of the refund, for example EUR.",
      +      "enum": [
      +        "USD",
      +        "EUR",
      +        "GBP",
      +        "JPY",
      +        "CHF",
      +        "CAD",
      +        "AUD",
      +        "NZD",
      +        "SEK",
      +        "NOK",
      +        "DKK",
      +        "PLN",
      +        "CZK",
      +        "HUF",
      +        "RON",
      +        "BGN",
      +        "HRK",
      +        "ISK",
      +        "ALL",
      +        "BAM",
      +        "BYN",
      +        "MDL",
      +        "MKD",
      +        "RSD",
      +        "FOK",
      +        "GGP",
      +        "GIP",
      +        "IMP",
      +        "JEP",
      +        "CNY",
      +        "CNH",
      +        "KRW",
      +        "SGD",
      +        "HKD",
      +        "TWD",
      +        "THB",
      +        "MYR",
      +        "IDR",
      +        "PHP",
      +        "VND",
      +        "INR",
      +        "PKR",
      +        "LKR",
      +        "BDT",
      +        "BND",
      +        "BTN",
      +        "KHR",
      +        "LAK",
      +        "MMK",
      +        "MNT",
      +        "MOP",
      +        "MVR",
      +        "NPR",
      +        "KID",
      +        "AED",
      +        "SAR",
      +        "QAR",
      +        "KWD",
      +        "BHD",
      +        "OMR",
      +        "JOD",
      +        "ILS",
      +        "EGP",
      +        "ZAR",
      +        "NGN",
      +        "KES",
      +        "GHS",
      +        "MAD",
      +        "TND",
      +        "DZD",
      +        "CVE",
      +        "GMD",
      +        "GNF",
      +        "LRD",
      +        "MGA",
      +        "MRU",
      +        "SHP",
      +        "SLE",
      +        "SLL",
      +        "SSP",
      +        "STN",
      +        "YER",
      +        "MXN",
      +        "BRL",
      +        "ARS",
      +        "CLP",
      +        "COP",
      +        "PEN",
      +        "UYU",
      +        "VES",
      +        "GTQ",
      +        "HNL",
      +        "NIO",
      +        "CRC",
      +        "PAB",
      +        "DOP",
      +        "JMD",
      +        "TTD",
      +        "BBD",
      +        "XCD",
      +        "ANG",
      +        "AWG",
      +        "BMD",
      +        "BOB",
      +        "BSD",
      +        "BZD",
      +        "CUP",
      +        "GYD",
      +        "HTG",
      +        "KYD",
      +        "PYG",
      +        "SRD",
      +        "XCG",
      +        "FKP",
      +        "FJD",
      +        "PGK",
      +        "SBD",
      +        "TOP",
      +        "TVD",
      +        "VUV",
      +        "WST",
      +        "RUB",
      +        "TRY",
      +        "UAH",
      +        "KZT",
      +        "UZS",
      +        "AZN",
      +        "GEL",
      +        "AMD",
      +        "KGS",
      +        "TJS",
      +        "TMT",
      +        "AFN",
      +        "IRR",
      +        "IQD",
      +        "SYP",
      +        "LBP",
      +        "LYD",
      +        "SDG",
      +        "ETB",
      +        "UGX",
      +        "TZS",
      +        "MWK",
      +        "ZMW",
      +        "BWP",
      +        "SZL",
      +        "LSL",
      +        "NAD",
      +        "MUR",
      +        "SCR",
      +        "KMF",
      +        "DJF",
      +        "ERN",
      +        "SOS",
      +        "AOA",
      +        "MZN",
      +        "ZWL",
      +        "ZWG",
      +        "BIF",
      +        "RWF",
      +        "CDF",
      +        "XAF",
      +        "XOF",
      +        "XPF"
      +      ],
      +      "type": "string"
      +    },
      +    "expected_amount": {
      +      "description": "The refund the merchant stated, in major units, for example 89.90.",
      +      "type": "string"
      +    },
      +    "expected_by": {
      +      "description": "The day the refund is expected, YYYY-MM-DD, from today to 180 days ahead.",
      +      "type": "string"
      +    },
      +    "merchant_company_id": {
      +      "description": "The merchant, as a company of the workspace.",
      +      "format": "uuid",
      +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "browser_task_id",
      +    "merchant_company_id",
      +    "expected_amount",
      +    "currency",
      +    "expected_by"
      +  ],
      +  "type": "object"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "credit_note_ids",
      -  "expected_by"
      -]
    • addedOutput schema / properties / refund_watch
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "outcome": {
      +      "enum": [
      +        "recorded",
      +        "already_recorded",
      +        "refused"
      +      ],
      +      "type": "string"
      +    },
      +    "reason": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "browser_task_not_found",
      +            "merchant_not_found",
      +            "amount_invalid",
      +            "expected_by_out_of_range"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "watch": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "amount": {
      +              "type": "string"
      +            },
      +            "bank_read": {
      +              "type": "boolean"
      +            },
      +            "browser_task_id": {
      +              "type": "string"
      +            },
      +            "chased_at": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "claim_id": {
      +              "type": "string"
      +            },
      +            "currency": {
      +              "type": "string"
      +            },
      +            "expected_by": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "merchant_company_id": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "merchant_emails": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "merchant_name": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "refund": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "amount": {
      +                      "type": "string"
      +                    },
      +                    "currency": {
      +                      "type": "string"
      +                    },
      +                    "executed_at": {
      +                      "type": "string"
      +                    },
      +                    "transaction_id": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "transaction_id",
      +                    "amount",
      +                    "currency",
      +                    "executed_at"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "refund_mail_at": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "state": {
      +              "enum": [
      +                "watching",
      +                "overdue",
      +                "chased",
      +                "refund_seen",
      +                "closed"
      +              ],
      +              "type": "string"
      +            },
      +            "status": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "claim_id",
      +            "browser_task_id",
      +            "merchant_company_id",
      +            "merchant_name",
      +            "merchant_emails",
      +            "amount",
      +            "currency",
      +            "expected_by",
      +            "status",
      +            "state",
      +            "chased_at",
      +            "refund_mail_at",
      +            "refund",
      +            "bank_read"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "outcome",
      +    "reason",
      +    "watch"
      +  ],
      +  "type": "object"
      +}
  3. Changed2 schema fields changed
    • changedOutput schema / properties / claims / items / properties / reason / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "credit_note_not_found",
      -      "not_a_credit_note",
      -      "not_a_supplier_credit_note",
      -      "duplicate",
      -      "own_company_unset",
      -      "supplier_unknown",
      -      "amount_unknown",
      -      "already_settled",
      -      "expected_by_out_of_range"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "credit_note_not_found",
      +      "not_a_credit_note",
      +      "not_a_supplier_credit_note",
      +      "duplicate",
      +      "own_company_unset",
      +      "own_set_incomplete",
      +      "supplier_unknown",
      +      "amount_unknown",
      +      "already_settled",
      +      "expected_by_out_of_range"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / newly_connected / description
      Previous value: -"Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. Start the reply with one line per entry, in the person's language: \"<name> is connected.\". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later."New value: +"Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: \"<name> is connected.\". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later."
  4. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare idempotent, non-open-world, non-destructive write. The description adds what annotations can't: 'It writes only inside Well and sends nothing to anyone', the task turning red past the expected day, and self-closing when a confirmed payment covers the credit note. It also discloses the copied-fields behavior and the scheduled-run interaction.

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

Conciseness4/5

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

Front-loaded with the two modes and called-out conditions. It is long, and the refund refusal-reason list plus the repeated expected_by range ('YYYY-MM-DD, from today to 180 days ahead') restate facts already in the schema/output schema, but for a dual-mode tool this scope is largely earned.

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

Completeness5/5

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

Covers both invocation paths, prerequisites, workspace resolution, idempotency context, and the full refusal vocabulary with meaning behind each reason code. An agent has everything needed to select the mode and interpret the outcome correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description goes beyond it by explaining that amount, currency and supplier are copied from each credit note ('the call carries none of them'), which prevents an agent from trying to supply them, and by clarifying refund_watch's fields versus the credit_note_ids path. Repetition of the expected_by range rather than new semantics keeps it from a 5.

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

Purpose5/5

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

The first sentence gives a concrete verb and resource ('Record a claim: start following a refund...one task per supplier credit note') and the bolded section explicitly distinguishes the second mode ('A refund watch after a return or a cancellation'). An agent can tell this apart from a browser-run or task-creation sibling without opening the schema.

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

Usage Guidelines5/5

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

Explicit conditions: 'Call it only after the send call...returned success: true, or returned an approval_url', 'Never call it for a claim the person declined, for an email shown as text only...'. The refund_watch path has its own gate ('Call it only after the person said yes') and workspace guidance ('pass workspace_id when the token authorizes several').

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources