Skip to main content
Glama
tillbooks

tillbooks

Official

portal_quote_accept

Destructive

Accepts a quote through the customer’s portal link, making it binding and spending that link. Requires token and quoteId; idempotency prevents duplicate acceptance.

Instructions

Nimm eine Offerte über das Portal an (US-F02.3): fence-checks the token (the quote must be in scope AND belong to the grant's contact) then DELEGATES to C02's real accept (the A10 sent -> accepted transition) with actor portal:. F02 owns no quote state and hand-rolls no invoice. Idempotent via idempotencyKey: a same-key re-accept returns the original, never a second acceptance (no double-issue). C02's own errors (invalid_transition on a non-sent quote, quote_expired) surface unchanged. A refused accept writes zero rows. Token-authenticated, pre-workspace: no workspaceId. CONSEQUENCE: Accepts the quote through the customer's portal link, which makes it binding and spends that link. An accepted quote cannot be withdrawn or revised; the next step is turning it into an order or invoice.

Input Schema

NameRequiredDescriptionDefault
tokenYes
quoteIdYes
idempotencyKeyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Goes far beyond the destructiveHint annotation: idempotency contract (same-key re-accept returns the original, no double-issue), error passthrough (invalid_transition, quote_expired surface unchanged), and the guarantee that a refused accept writes zero rows. The consequence block states plainly that acceptance is binding and non-reversible — exactly the behavior destructiveHint=True signals.

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 action and the delegation, and nearly every clause carries new information (flags, errors, auth, consequence). It is long and mixes German and English, and the consequence paragraph partly restates the 'spends that link' point already implied, costing some tightness.

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 everything an agent needs to call this safely: auth model, scope constraints, delegation target, error surface, idempotency, and irreversibility. No output schema exists, and the description at least states what a replayed call returns.

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?

With 0% schema coverage the description must carry the parameters, and it does for two of three: token is defined by its fence-check semantics (quote in scope AND belonging to the grant's contact) and idempotencyKey by its replay guarantee. quoteId is only implied ('the quote must be in scope', 'non-sent quote'); its format/identification is not spelled out.

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?

Specific verb + resource (accept a portal quote) with explicit scope: token-authenticated, pre-workspace, portal grant context. It clearly distinguishes itself from the internal accept by naming C02/quotes_accept as the delegate that actually performs the transition.

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

Usage Guidelines4/5

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

The description makes the usage context unmistakable (customer portal link, token required, no workspaceId) and routes state-changing semantics to C02 rather than duplicating them. It does not explicitly state the inverse case — e.g. use quotes_accept for internal/workspace-side acceptance — so it stops short of a full when/when-not statement.

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

Deploy Server

Other Tools