rs-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@rs-mcpshow taxpayer info for TIN 123456789"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
rs-mcp
MCP server + CLI for Georgia's Revenue Service (rs.ge). Exposes WayBill, Invoice, and TaxPayer SOAP APIs as AI-callable tools. Ships two interfaces from the same codebase:
MCP server — 85 tools over stdio, works with any MCP-compatible client (Cursor, Claude Desktop, Windsurf, Continue, etc.)
CLI (
rs-cli) — same 85 operations as subcommands, JSON output, for scripts and AI agentsClaude Skill —
skills/rs-ge/folder, upload to Claude.ai or Claude Code to teach Claude how to use the tools
Services covered:
Service | Endpoint | Tools |
WayBill |
| 24 |
Invoice (NTOS) |
| 40 |
TaxPayer |
| 20 |
Confirmation (HITL) | (internal) | 3 |
Key features:
Read-only queries for waybills, invoices, taxpayer info, reference data
Full CRUD for waybills and invoices (create, send, confirm, reject, close, delete)
Human-in-the-Loop (HITL) safety for all destructive MCP operations
CLI with interactive
[y/N]confirmation for destructive commands (--yesto skip)Automatic SOAP envelope construction and XML response parsing
Prerequisites
Node.js >= 18 (uses native
fetch)npm
An MCP-compatible client -- Cursor, Claude Desktop, Windsurf, Continue, or any agent/IDE that supports MCP
rs.ge service user account (sub-user created through the rs.ge e-declaration portal)
Related MCP server: ezPay E-Invoice MCP Server
Quick Start
1. Clone and install
git clone <your-repo-url> rs-mcp
cd rs-mcp
npm install2. Configure environment
Copy the example file and fill in your credentials:
cp .env.example .envEdit .env:
RS_SU=your_username:your_tin
RS_SP=your_password
RS_BASE_URL=https://services.rs.ge/WayBillService/WayBillService.asmx
RS_INVOICE_URL=https://www.revenue.mof.ge/ntosservice/ntosservice.asmx
RS_USER_ID=0
RS_TAX_URL=https://services.rs.ge/taxservice/taxpayerservice.asmxSee Environment Variables for details on each variable.
3. Build
npm run buildThis compiles TypeScript from src/ into dist/.
4. Connect to your MCP client
The server uses stdio transport -- your MCP client spawns the process and communicates over stdin/stdout. Configuration varies by client:
Cursor -- create .cursor/mcp.json in the project root:
{
"mcpServers": {
"rs-mcp": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/absolute/path/to/rs-mcp"
}
}
}Claude Desktop -- edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"rs-mcp": {
"command": "node",
"args": ["/absolute/path/to/rs-mcp/dist/index.js"]
}
}
}Other clients -- consult your client's MCP documentation. The server entry point is node dist/index.js with the working directory set to the project root.
Important: Do NOT run
npm startmanually during normal use. Your MCP client spawns the server process itself. After making changes, rebuild withnpm run buildand restart the MCP server from your client's settings.
CLI Quick Start
After building, use the rs-cli binary directly:
# Reference data (no auth needed for most)
node dist/cli.js reference waybill-types
node dist/cli.js reference units
# Waybill queries
node dist/cli.js waybill get 12345
node dist/cli.js waybill list --from 2025-01-01 --to 2025-03-31
node dist/cli.js waybill list --buyer-tin 123456789 --statuses 1
# Waybill actions (prompts [y/N] before executing)
node dist/cli.js waybill send 12345
node dist/cli.js waybill send 12345 --yes # skip prompt
# Invoice
node dist/cli.js invoice seller-list --un-id 999 --from 2025-01-01 --to 2025-03-31
node dist/cli.js invoice get 456
# Taxpayer
node dist/cli.js taxpayer info 123456789
node dist/cli.js taxpayer dashboard
# Pretty-print JSON
node dist/cli.js waybill get 12345 --prettyOr install globally and use rs-cli directly:
npm install -g .
rs-cli reference waybill-typesAll commands output JSON. Use --pretty to force formatted output (auto-enabled on TTY).
Global flags:
Flag | Short | Description |
|
| Skip |
| — | Force pretty-printed JSON |
For a full command reference, see skills/rs-ge/references/.
Claude Skill
The skills/rs-ge/ folder is a proper Claude Agent Skill. Upload it to teach Claude how to use both the MCP tools and CLI.
Install in Claude.ai:
Zip the
skills/rs-ge/folderGo to Settings → Capabilities → Skills → Upload skill
Install in Claude Code:
Place the skills/rs-ge/ folder in your Claude Code skills directory.
Environment Variables
Variable | Required | Description | Example |
| Yes | Service username in |
|
| Yes | Service password |
|
| No | WayBill SOAP endpoint (has default) |
|
| No | Invoice/NTOS SOAP endpoint (has default) |
|
| Yes | Your e-declaration user ID (for invoice tools). Use |
|
| No | TaxPayer SOAP endpoint (has default) |
|
RS_SU and RS_SP are shared across all three services. The WayBill and Invoice services auto-inject them as su/sp. The TaxPayer service passes them explicitly per method (credential parameter names vary by method).
Project Structure
rs-mcp/
├── .env # Credentials (git-ignored)
├── .env.example # Template for .env
├── package.json # bin: { "rs-cli": "./dist/cli.js" }
├── tsconfig.json
├── skills/
│ └── rs-ge/ # Claude Agent Skill (upload to Claude.ai / Claude Code)
│ ├── SKILL.md # Skill definition with YAML frontmatter
│ └── references/ # Detailed command docs (loaded by Claude on demand)
│ ├── waybill.md
│ ├── invoice.md
│ └── taxpayer.md
└── src/
├── index.ts # MCP entry point -- creates server, registers all tools
├── cli.ts # CLI entry point -- parseArgs router (rs-cli binary)
├── config.ts # Loads environment variables
├── confirm.ts # HITL pending-action store and execution logic
├── mcp-confirm.ts # MCP wrapper: wraps queueAction with MCP content format
├── output.ts # CLI JSON printer (pretty on TTY, compact when piped)
├── prompt.ts # CLI readline [y/N] confirmation prompt
├── soap/
│ ├── client.ts # SOAP client for WayBill & Invoice (tempuri.org namespace)
│ └── tax-client.ts # SOAP client for TaxPayer (services.rs.ge namespace)
├── xml/
│ ├── parser.ts # XML-to-JSON parser (fast-xml-parser)
│ └── waybill-builder.ts # Structured JSON to Waybill XML converter
├── commands/ # CLI command handlers (one file per domain)
│ ├── waybill.ts
│ ├── invoice.ts
│ ├── taxpayer.ts
│ ├── reference.ts
│ ├── helpers.ts
│ └── confirm.ts
├── tools/ # MCP tool registrations (one file per domain)
│ ├── reference.ts
│ ├── waybill.ts
│ ├── waybill-write.ts
│ ├── helpers.ts
│ ├── invoice.ts
│ ├── invoice-query.ts
│ ├── invoice-desc.ts
│ ├── invoice-helpers.ts
│ ├── taxpayer.ts
│ ├── taxpayer-reports.ts
│ ├── taxpayer-auth.ts
│ └── confirm.ts
└── types/
├── reference.ts
├── waybill.ts
├── invoice.ts
└── taxpayer.tsArchitecture
flowchart LR
Client["MCP Client\n(Cursor, Claude Desktop, etc.)"] -->|stdio| McpServer["MCP Server\n(index.ts)"]
Terminal["Terminal / Script"] -->|argv| CLI["CLI\n(cli.ts → rs-cli)"]
McpServer --> Tools["MCP Tools\n(tools/)"]
CLI --> Commands["CLI Commands\n(commands/)"]
subgraph soap_layer [Shared SOAP Layer]
SoapClient["callSoap / callSoapXml\n(tempuri.org)"]
TaxClient["callTaxSoap\n(services.rs.ge)"]
end
subgraph hitl_mcp [MCP HITL]
Queue["queueAction → preview"]
Execute["confirm_action → execute"]
end
Tools -->|read-only| SoapClient
Tools -->|destructive| Queue
Queue --> Execute
Execute --> SoapClient
Commands -->|read-only| SoapClient
Commands -->|destructive: prompt y/N| SoapClient
Tools -->|read-only| TaxClient
Commands --> TaxClient
SoapClient --> RS_WB["rs.ge\nWayBill API"]
SoapClient --> RS_INV["rs.ge\nInvoice API"]
TaxClient --> RS_TAX["rs.ge\nTaxPayer API"]Data flow — MCP:
MCP client sends a tool call via stdio
Read-only tools call SOAP directly and return JSON
Destructive tools queue the action (HITL), return a preview, wait for
confirm_action
Data flow — CLI:
User runs
rs-cli <domain> <action> [flags]Read-only commands call SOAP and print JSON
Destructive commands prompt
[y/N](or skip with--yes), then call SOAP directly
Human-in-the-Loop (HITL) Safety System
All 32 destructive tools (create, update, delete, send, confirm, reject) use a two-phase confirmation system to prevent accidental data changes.
How it works
sequenceDiagram
participant User
participant AI as AI Assistant
participant Tool as Destructive Tool
participant Store as Pending Store
participant Confirm as confirm_action
participant SOAP as rs.ge API
User->>AI: "Delete waybill #12345"
AI->>Tool: del_waybill(waybill_id=12345)
Tool->>Store: queueAction(...)
Store-->>Tool: action_id + preview
Tool-->>AI: Preview with action_id
AI-->>User: "This will delete waybill #12345. Confirm?"
User->>AI: "Yes, confirm"
AI->>Confirm: confirm_action(action_id, "CONFIRM")
Confirm->>Store: executeAction(action_id)
Store->>SOAP: Actual SOAP call
SOAP-->>Store: Result
Store-->>Confirm: Result
Confirm-->>AI: Result JSON
AI-->>User: "Waybill #12345 deleted successfully"Key rules
Pending actions expire after 5 minutes
The AI must show the preview to the user and wait for explicit approval
confirm_actionrequiresconfirmation_text: "CONFIRM"-- the AI cannot auto-confirmUse
reject_actionto cancel a queued actionUse
list_pending_actionsto see all actions awaiting confirmation
HITL tools
Tool | Description |
| Execute a queued destructive action (requires explicit user approval) |
| Cancel a queued destructive action |
| List all pending actions with remaining time |
Tool Reference
WayBill Reference (5 tools)
Fetch reference/lookup data for waybill fields. All read-only, no parameters required.
Tool | Description |
| List all waybill types |
| List all measurement units |
| List all transport types |
| List all excise/akciz codes |
| List all wood types |
WayBill Read (6 tools)
Query and filter waybills. All read-only.
Tool | Description | Key Parameters |
| Get a single waybill by ID |
|
| List seller waybills with filters |
|
| List buyer waybills with filters |
|
| List waybills by last-update date range (max 3-day span) |
|
| Seller waybills with confirmation filter | Same as |
| Buyer waybills with confirmation filter | Same as |
Waybill statuses: 0=saved, 1=active, 2=closed, 8=sent to transporter, -1=deleted, -2=cancelled
WayBill Write (9 tools)
Create, activate, close, and manage waybills. All destructive (HITL-protected).
Tool | Description | Key Parameters |
| Create or update a waybill |
|
| Activate a saved waybill |
|
| Activate with a specific begin date |
|
| Buyer confirms receipt of goods |
|
| Buyer rejects a waybill |
|
| Close/complete a waybill |
|
| Close with a specific delivery date |
|
| Delete a saved (not yet activated) waybill |
|
| Cancel an active waybill |
|
Waybill types: 1=inner, 2=transportation, 3=without transport, 4=distribution, 5=return, 6=sub-waybill
Goods list item fields: w_name, unit_id, quantity, price, and optionally unit_txt, bar_code, a_id, vat_type, quantity_ext
WayBill Helpers (4 tools)
Utility tools for waybill-related lookups. All read-only.
Tool | Description | Key Parameters |
| Look up a taxpayer name by TIN |
|
| List all waybill error codes | (none) |
| Verify service user credentials | (none) |
| List all service users for the account | (none) |
Invoice CRUD & Status (12 tools)
Create, manage, and control invoice lifecycle. 8 destructive + 4 read-only.
Tool | Type | Description | Key Parameters |
| Write | Save/create a tax invoice |
|
| Write | Save/create with comment | Same + |
| Write | Save/create advance/compensation invoice | Same as |
| Read | Get a single invoice by ID |
|
| Write | Change invoice status |
|
| Write | Accept/confirm an invoice |
|
| Write | Reject an invoice with reason |
|
| Write | Create a correction invoice |
|
| Read | Get correction invoice ID |
|
| Write | Attach invoice to VAT declaration |
|
| Read | Get declaration numbers by period |
|
| Read | Get declaration date |
|
Invoice statuses: -1=deleted, 0=saved, 1=sent, 2=confirmed, 3=corrected-primary, 4=correction, 5=correction-sent, 6=cancelled-sent, 7=cancellation-confirmed, 8=correction-confirmed
Correction types (k_type): 1=cancel operation, 2=change operation type, 3=price/compensation change, 4=goods return
Invoice Query (9 tools)
Search and list invoices. All read-only.
Tool | Description | Key Parameters |
| List seller-side invoices |
|
| List buyer-side invoices | Same as above |
| List by last-update date (max 3-day span) |
|
| Seller invoices needing reaction |
|
| Buyer invoices needing reaction |
|
| Autocomplete invoice numbers |
|
| Autocomplete buyer/seller TINs |
|
| Autocomplete declaration numbers |
|
| Get invoice data for printing |
|
Invoice Goods & Links (6 tools)
Manage goods line items and waybill links on invoices. 4 destructive + 2 read-only.
Tool | Type | Description | Key Parameters |
| Write | Save a goods/service line item |
|
| Read | Get all line items for an invoice |
|
| Write | Delete a line item |
|
| Read | Get waybills linked to an invoice |
|
| Write | Link a waybill to an invoice |
|
| Write | Unlink a waybill from an invoice |
|
VAT amount (drg_amount): positive = normal VAT, 0 = zero-rate, -1 = non-taxable
Invoice Helpers (13 tools)
Lookups, excise codes, service users, and invoice requests. 3 destructive + 10 read-only.
Tool | Type | Description | Key Parameters |
| Read | Get unique ID from TIN |
|
| Read | Get TIN from unique ID |
|
| Read | Get org name from unique ID |
|
| Read | Get unique ID from e-declaration user ID | (none) |
| Read | Search excise/akciz codes |
|
| Read | Verify NTOS service credentials | (none) |
| Read | List NTOS service users |
|
| Write | Create invoice issuance reminder |
|
| Write | Delete an invoice reminder |
|
| Read | Get reminder details |
|
| Write | Forward invoice request to seller |
|
| Read | List requests received by seller |
|
| Read | List requests sent by buyer |
|
TaxPayer Info (8 tools)
Query taxpayer information and lookups. All read-only.
Tool | Description | Key Parameters |
| Public taxpayer info (name, legal form, status, VAT, address) |
|
| Taxpayer contact info (phone, email) |
|
| Comprehensive payer info (status, declarations, waybills, cash box) |
|
| Legal entity details (name, form, address, responsible persons) |
|
| Person income data (yearly/monthly amounts) |
|
| NACE activity codes for a taxpayer |
|
| Joint/total income amount for a year |
|
| GITA payer info with financial data |
|
Note: Some TaxPayer methods may require additional service activation or 2-step SMS verification on your sub-user account. Methods that return "authorization error" likely need activation through the rs.ge portal.
TaxPayer Reports (8 tools)
Financial reports and customs data. 7 read-only + 1 destructive.
Tool | Type | Description | Key Parameters |
| Read | Z-report cash register totals |
|
| Read | Z-report per-device details |
|
| Read | Monthly waybill amounts |
|
| Read | Financial dashboard overview | (none) |
| Read | Comparison act (old format) |
|
| Read | Comparison act (new format) |
|
| Read | Cargo 200 customs information |
|
| Write | Register customs warehouse exit |
|
TaxPayer Auth (4 tools)
SMS-based 2-step authentication for sensitive TaxPayer operations. 2 read-only + 2 destructive.
Tool | Type | Description | Key Parameters |
| Read | Verify SMS code for payer info auth |
|
| Read | Verify SMS code for GITA payer info auth |
|
| Write | Activate/deactivate payer info access |
|
| Write | Activate GITA payer info access |
|
SOAP Services Reference
The server communicates with three rs.ge SOAP endpoints:
WayBill Service
Endpoint:
https://services.rs.ge/WayBillService/WayBillService.asmxNamespace:
http://tempuri.org/Auth:
su(username:TIN) andsp(password) auto-injected into every requestClient:
src/soap/client.ts--callSoap()andcallSoapXml()
Invoice Service (NTOS)
Endpoint:
https://www.revenue.mof.ge/ntosservice/ntosservice.asmxNamespace:
http://tempuri.org/Auth: Same
su/spcredentials, plususer_idinjected for most methodsClient: Same
callSoap()with custombaseUrl
TaxPayer Service
Endpoint:
https://services.rs.ge/taxservice/taxpayerservice.asmxNamespace:
services.rs.geAuth: Credentials passed explicitly per method (parameter names vary:
UserName,userName,inUserName,user)Client:
src/soap/tax-client.ts--callTaxSoap()
Development
Build
npm run build # Compiles TypeScript to dist/Run
# MCP server (normally spawned by your MCP client, not run manually)
npm start # node dist/index.js
# CLI
node dist/cli.js # show usage
node dist/cli.js reference waybill-types
node dist/cli.js waybill list --from 2025-01-01 --to 2025-03-31Tech stack
TypeScript — strict mode, ES2022 target, Node16 modules
ES Modules (
"type": "module")@modelcontextprotocol/sdk — MCP server framework
zod — MCP input schema validation
fast-xml-parser — XML response parsing
dotenv — environment variable loading
node:util parseArgs — CLI argument parsing (no external framework)
Adding a new MCP tool
Add to an existing file in
src/tools/(or create a new one)Use
server.tool(name, description, schema, annotations, handler)Annotations:
const READONLY = { readOnlyHint: true, destructiveHint: false } as const; const DESTRUCTIVE = { readOnlyHint: false, destructiveHint: true } as const;Destructive tools: use
mcpQueueAction()from../mcp-confirm.jsinstead of calling SOAP directlyExport
register*Tools(server: McpServer)and call it insrc/index.ts
Adding a new CLI command
Add to the matching file in
src/commands/Read-only: call SOAP directly and
output(result)Destructive: prompt with
confirm()from../prompt.js, or checkflags.yesRegister any new
--flagnames in theparseArgsoptions block insrc/cli.ts
Adding a new SOAP service
Add endpoint to
src/config.tsand.env.exampleCreate SOAP client in
src/soap/if namespace differsAdd type interfaces in
src/types/Add MCP tools in
src/tools/and CLI commands insrc/commands/
License
ISC
Available Tools
87 toolsacsept_invoice_request_statusBDestructive
Send/forward an invoice request to seller (შეხსენების გადაგზავნა)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice request unique ID | |
| seller_un_id | Yes | Seller taxpayer unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so description's mention of sending/forwarding aligns with mutation. No additional behavioral info provided (e.g., idempotency, irreversible effects). Description does not contradict 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?
Single sentence is concise, but the inclusion of Georgian text may reduce clarity for non-Georgian users. The structure is otherwise efficient.
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?
No output schema and missing information about return values, error handling, or constraints. For a mutation tool with destructive hint, more context is needed for safe invocation. Schema coverage is high but description fails to compensate for missing output details.
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 covers both parameters (id, seller_un_id) with descriptions, achieving 100% schema coverage. Description adds no further meaning beyond the schema, so baseline score of 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?
Description clearly states the action ('Send/forward an invoice request to seller') and the resource ('invoice request'). The Georgian text adds context but may be unclear to non-Georgian speakers. The name 'acsept_invoice_request_status' slightly mismatches the action described, causing minor confusion.
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?
No explicit guidance on when to use this tool versus alternatives like save_invoice_request or del_invoice_request. No prerequisites or conditions mentioned, leaving the agent to infer usage context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
acsept_invoice_statusBDestructive
Accept/confirm an invoice (ანგარიშ-ფაქტურის დადასტურება)
| Name | Required | Description | Default |
|---|---|---|---|
| inv_id | Yes | Invoice unique ID | |
| status | Yes | Status to confirm |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, indicating mutation. The description adds 'accept/confirm' which is consistent but does not provide additional behavioral details (e.g., irreversibility, 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?
The description is short and front-loaded, with no unnecessary words. The inclusion of a Georgian translation adds minor length but is potentially helpful.
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?
Despite a clear description and annotations, the tool lacks context about valid status values, response format, or consequences of the operation. For a destructive tool, more completeness is warranted.
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 both parameters are described adequately in the schema. The description does not add any extra meaning 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 clearly states the action (accept/confirm an invoice) and identifies the resource (invoice). However, it does not differentiate from sibling tools like 'change_invoice_status' or 'confirm_action'.
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?
No guidance is provided on when to use this tool versus alternatives. The description only states what it does without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_inv_to_declBDestructive
Attach an invoice to a VAT declaration (დეკლარაციაზე მიბმა)
| Name | Required | Description | Default |
|---|---|---|---|
| inv_id | Yes | Invoice unique ID | |
| seq_num | Yes | Declaration number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, which aligns with the description's 'attach' action. The description adds no additional behavioral context beyond the annotations, such as reversibility or authorization requirements.
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 extremely concise (one sentence). It is front-loaded and contains no extraneous information.
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 functionally correct but minimal. Given the tool is destructive and has no output schema, more context about the effect on the declaration or error states would be beneficial.
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%, with both parameters ('inv_id' and 'seq_num') having clear descriptions. The description adds no further meaning beyond what the schema already 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 clearly states the action: 'Attach an invoice to a VAT declaration'. This is a specific verb-resource pair, but it does not differentiate from sibling tools. No similar sibling tool exists, so minimal confusion.
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. There is no mention of prerequisites, exclusions, or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
change_invoice_statusBDestructive
Change invoice status (სტატუსის ცვლილება). Statuses: -1=deleted, 0=saved, 1=sent, 2=confirmed, 3=corrected-primary, 4=correction, 5=correction-sent, 6=cancelled-sent, 7=cancellation-confirmed, 8=correction-confirmed
| Name | Required | Description | Default |
|---|---|---|---|
| inv_id | Yes | Invoice unique ID | |
| status | Yes | New status code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so mutation is expected. The description adds status code meanings but doesn't disclose side effects, constraints, or error conditions, providing only moderate behavioral context beyond 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 short and front-loaded with the purpose. Inclusion of Georgian text adds minor clutter but does not severely impact conciseness. Each sentence serves a purpose.
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 mutation tool with no output schema and two required params, the description explains the status codes adequately but omits what the tool returns (e.g., success confirmation, error details). This leaves the agent guessing about invocation feedback.
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 covers both parameters with basic descriptions. The description adds significant value by mapping numeric status codes to human-readable meanings, which is essential for correct usage since no enums are defined in 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 clearly states the tool changes invoice status and provides a mapping of status codes, which is specific and helpful. It distinguishes from read-only reference tools like ref_invoice_status, though it could be more explicit about not being a creation or deletion tool.
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?
No guidance on when to use this tool versus alternatives like save_invoice or delete_invoice_desc. The description only lists statuses without explaining usage context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chek_service_userARead-only
Verify service user credentials and get user info (სერვისის მომხმარებლის შემოწმება)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is read-only and non-destructive, so the baseline transparency is covered. The description adds no extra behavioral context such as auth requirements or side effects, which is acceptable given the annotation coverage but does not exceed it.
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?
Single sentence with no extraneous text. The inclusion of a Georgian translation is concise and does not detract. Every word serves a purpose.
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 simplicity (no parameters, no output schema, simple purpose), the description is complete. It sufficiently conveys what the tool does without missing critical context.
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 no parameters, so the description does not need to add parameter-level detail. A score of 4 is appropriate as the baseline for zero-parameter tools.
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?
Description clearly states 'verify service user credentials and get user info', which is a specific verb+resource combination. However, it does not explicitly differentiate itself from sibling tools like 'get_service_users' that may also retrieve user info, so it loses a point.
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?
No guidance on when to use this tool versus other tools. The description does not mention any prerequisites, exclusions, or contexts where this tool is preferred over alternatives like 'ntos_get_ser_users'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_waybillBDestructive
Close/complete a waybill — marks delivery as done (ზედნადების დახურვა)
| Name | Required | Description | Default |
|---|---|---|---|
| waybill_id | Yes | Waybill ID to close |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. Description adds 'marks delivery as done,' which aligns but doesn't disclose additional behavior like irreversibility, required permissions, or side effects beyond the annotation.
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?
Extremely concise (one sentence plus a parenthetical in Georgian). No wasted words, though could be slightly more structured (e.g., front-loading the key verb).
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-param close action with annotations, the description is adequate but omits details on return values, success/failure behavior, or state changes. Lacks completeness for a function with no output schema.
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% with the waybill_id parameter having a clear description. The tool description adds no further meaning or format details 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?
Clearly states the action (close/complete) and the resource (waybill) with the specific meaning 'marks delivery as done'. This distinguishes it from other waybill-related siblings like save, send, confirm, reject, etc., though explicit sibling differentiation is missing.
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?
No guidance on when to use this tool versus alternatives (e.g., close_waybill_vd, confirm_waybill). No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_waybill_vdADestructive
Close/complete a waybill with a specific delivery date (ზედნადების დახურვა მიწოდების თარიღით)
| Name | Required | Description | Default |
|---|---|---|---|
| waybill_id | Yes | Waybill ID to close | |
| delivery_date | Yes | Delivery date (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description's 'close/complete' aligns well. However, the description adds no additional behavioral context beyond the annotations (e.g., irreversibility, authorization needs). Given the annotations, a score of 3 is appropriate.
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, efficient sentence with no wasted words. It conveys the core purpose quickly but could be slightly more structured to improve readability.
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 minimal for a destructive action with two required parameters. It lacks information on prerequisites (e.g., waybill state), what happens on close, or return values. Given the absence of output schema, more context would be beneficial.
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?
Both parameters are fully described in the input schema (100% coverage). The description merely restates the delivery date parameter without adding new semantics or clarifying format/consequences. Baseline 3 is correct.
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 action ('close/complete') and the resource ('waybill'), and specifies the required delivery date. It distinguishes itself from sibling tools like 'close_waybill' (likely without delivery date) by explicitly including 'with a specific delivery date'.
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 when a delivery date is available but does not explicitly state when to use this tool versus alternatives like 'close_waybill' or 'confirm_waybill'. No exclusion criteria or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_actionADestructive
Execute a previously queued destructive action. IMPORTANT: You MUST show the pending action details to the user and wait for their explicit approval BEFORE calling this tool. Never auto-confirm. (მოქმედების დადასტურება - მომხმარებლის ნებართვის გარეშე არ გამოიძახოთ)
| Name | Required | Description | Default |
|---|---|---|---|
| action_id | Yes | The action_id returned by the queued action | |
| confirmation_text | Yes | Must be exactly 'CONFIRM' — only pass this after the user explicitly approves |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, and the description adds that the action is queued and requires user approval. It could elaborate on irreversibility or side effects, but the current context is sufficient.
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 an important warning in bold. It is front-loaded and contains no wasteful 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 destructive action with no output schema, the description covers purpose, usage rules, and parameter semantics. It lacks potential error handling info, but the core usage is adequately addressed.
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%, but the description adds crucial context: explanation that confirmation_text must be exactly 'CONFIRM' and only after user approval. This goes beyond the schema's constraint description.
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 executes a previously queued destructive action, with a specific verb ('execute') and resource ('queued destructive action'). It distinguishes itself from siblings like 'list_pending_actions' and 'reject_action' by being the confirmation step.
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 instructs to show pending action details to the user and wait for explicit approval before calling, with a strong 'Never auto-confirm' directive. This provides clear when-to-use and 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_waybillADestructive
Buyer confirms receipt of goods from a waybill (ზედნადების დადასტურება მყიდველის მიერ)
| Name | Required | Description | Default |
|---|---|---|---|
| waybill_id | Yes | Waybill ID to confirm |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description need not reiterate mutation. However, the description adds no behavioral context beyond 'confirms receipt'—e.g., whether the action is irreversible or how it affects waybill state.
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, clear sentence with a Georgian translation in parentheses. It is efficient and front-loaded, though the translation may be unnecessary for some agents.
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 tool with one parameter and annotations present, the description is minimally adequate. It lacks context about the waybill lifecycle (e.g., when confirmation is appropriate) but is otherwise sufficient for basic invocation.
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 the single parameter waybill_id. The description adds no meaning beyond what the schema provides, so a baseline score 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 action: 'Buyer confirms receipt of goods from a waybill'. It uses a specific verb ('confirms') and resource ('waybill'), and distinguishes from sibling tools like 'reject_waybill' or 'close_waybill' which perform different operations.
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 confirming receipt, but provides no explicit guidance on when to use this tool versus alternatives (e.g., reject_waybill, close_waybill). No when-to-use or when-not-to-use context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_invoice_descADestructive
Delete a goods/service line item from an invoice (საქონლის ჩანაწერის წაშლა)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Goods line item unique ID | |
| inv_id | Yes | Invoice unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The 'destructiveHint' annotation already indicates this is a destructive action, and the description confirms deletion. However, it does not add additional behavioral details like irreversibility, side effects on dependencies, or error conditions, which would be valuable beyond the annotation.
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, consisting of a single sentence with a parenthetical translation. While efficient, it lacks a structured format such as bullet points or explicit grouping, but it is front-loaded with the core action and resource.
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 delete operation with two well-documented parameters, the description is largely adequate. However, it does not mention the return value or confirmation behavior, which is relevant since no output schema is provided.
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% coverage with descriptions for both parameters ('Goods line item unique ID' and 'Invoice unique ID'). The description does not add additional semantic information beyond what the schema already provides, resulting in a baseline score.
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 action (Delete), the resource (goods/service line item from an invoice), and includes a Georgian translation for context. It distinguishes itself from sibling tools like 'save_invoice_desc' (add/edit) and 'get_invoice_desc' (retrieve).
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 lacks guidance on when to use this tool versus alternatives such as 'del_invoice_request' or other delete operations. No explicit conditions, prerequisites, or exclusions are provided, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_ntos_invoices_inv_nosBDestructive
Unlink a waybill from an invoice (ზედნადების მოხსნა ანგარიშ-ფაქტურიდან)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Waybill link record ID | |
| inv_id | Yes | Invoice unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, but the description adds no additional context such as side effects, reversibility, or required permissions. For a destructive tool, this is insufficient even with annotations present.
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 short sentence, front-loading the essential action. It is concise with no wasted words, though the inclusion of Georgian text in parentheses slightly adds redundancy for an English interface.
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 is destructive and has no output schema, the description should provide more context about post-operation state, reversibility, or constraints. It currently lacks completeness for safe agent 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% with both parameters documented in the schema. The description does not add any extra meaning or syntax details beyond what the schema provides, so a baseline score 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 action ('Unlink a waybill from an invoice') and the resource (waybill-invoice link). It distinguishes from sibling tools like 'save_ntos_invoices_inv_nos' (create link) and 'delete_invoice_desc' (delete description), making the purpose 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 provides no guidance on when to use this tool versus alternatives, no prerequisites, and no conditions under which unlinking is appropriate. It lacks any when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
del_invoice_requestADestructive
Delete an invoice issuance reminder (შეხსენების წაშლა)
| Name | Required | Description | Default |
|---|---|---|---|
| inv_id | Yes | Invoice request unique ID | |
| bayer_un_id | Yes | Buyer taxpayer unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the agent knows it deletes data. The description confirms this but adds no further behavioral context (e.g., irreversibility, required permissions).
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 very short and to the point, but includes a redundant Georgian translation. Still, it is efficient 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?
For a simple delete operation with well-described parameters and annotations, the description is adequate. It could mention return behavior but is sufficient given no output schema.
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 description does not add any additional meaning beyond the parameter names and descriptions already present in 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 clearly states 'Delete an invoice issuance reminder' with a specific verb and resource. It distinguishes from sibling tools like 'save_invoice_request' and 'get_invoice_request', which are for creation and reading.
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 any prerequisites or exclusions. It only states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
del_waybillADestructive
Delete a saved (not yet activated) waybill (ზედნადების წაშლა)
| Name | Required | Description | Default |
|---|---|---|---|
| waybill_id | Yes | Waybill ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint=true), description adds the critical condition 'not yet activated', clarifying the scope of the delete operation. No other behavioral details provided, but relevant context is present.
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?
One sentence plus translation, front-loaded with key English description, no unnecessary words. Highly efficient.
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?
Covers the main constraint (activation state) for a simple delete tool with one parameter and no output schema. Could mention return status or expected output, but acceptable given tool simplicity.
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?
With 100% schema coverage, the description adds no additional meaning beyond the schema's 'Waybill ID to delete'. Baseline score of 3 applies as description does not provide extra parameter 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?
Description explicitly states action ('Delete') and resource ('saved (not yet activated) waybill'), including local language translation, clearly distinguishing from siblings like close_waybill or reject_waybill.
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?
Implicitly indicates usage when a waybill is saved but not activated, but does not explicitly name alternatives or state when not to use, leaving some ambiguity among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_akciz_codesARead-only
List all excise/akciz codes (აქციზური კოდები)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint true and destructiveHint false, so the description does not need to disclose safety. However, it adds no behavioral context beyond the obvious read operation (no mention of data freshness, rate limits, or scope). It adequately supplements annotations without contradiction.
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, efficient sentence that conveys the tool's purpose without extraneous words. It earns its place as a concise directive.
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 tool has no output schema, and the description does not explain the return format (e.g., list of strings or objects). For a tool that outputs data, this is a gap. However, given its simplicity as a list of codes, the brevity is acceptable but not 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 tool has no parameters, so schema coverage is 100%. The description does not need to explain parameters. Following the rule '0 params = baseline 4', this score reflects that no additional param info is required.
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 'List all excise/akciz codes', specifying the verb (list) and resource (codes). It distinguishes this tool from siblings focused on invoices, waybills, and user data, as it uniquely handles reference codes.
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?
No usage guidelines are provided. The description does not specify when to use this tool over alternatives, nor does it mention any prerequisites or exclusions. The user must infer that it is for obtaining reference codes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buyer_invoicesBRead-only
List buyer-side invoices with filters (მყიდველის ანგარიშ-ფაქტურები)
| Name | Required | Description | Default |
|---|---|---|---|
| desc | No | Seller name | |
| e_dt | No | Registration date to (YYYY-MM-DDTHH:mm:ss) | |
| s_dt | No | Registration date from (YYYY-MM-DDTHH:mm:ss) | |
| un_id | Yes | Taxpayer unique ID | |
| op_e_dt | No | Operation date to (YYYY-MM-DDTHH:mm:ss) | |
| op_s_dt | No | Operation date from (YYYY-MM-DDTHH:mm:ss) | |
| invoice_no | No | Invoice number | |
| doc_mos_nom | No | Declaration number | |
| sa_ident_no | No | Seller identification number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint true and destructiveHint false. The description adds no behavioral context beyond that, such as pagination, rate limits, or response structure. With annotations covering safety, a score of 3 is appropriate.
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 very concise: one sentence plus a localized parenthetical. It is front-loaded and has no wasted words, but it may be too minimal for a tool with many parameters.
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 incomplete for a tool with 9 parameters and no output schema. It does not explain what information is returned, how filters combine, or that un_id is required. The agent lacks sufficient context to use the tool effectively.
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 baseline is 3. The description does not add meaning beyond the parameter names and descriptions in the schema; it merely says 'with filters' without explaining parameter interactions or usage.
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 lists buyer-side invoices with filters. It specifies the action (List) and resource (buyer-side invoices), but does not explicitly differentiate it from sibling tools like get_buyer_invoices_r or get_seller_invoices.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or comparison to other invoice-listing tools, which are abundant in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buyer_invoices_rBRead-only
List buyer-side invoices needing reaction (რეაგირების მოთხოვნა - მყიდველი)
| Name | Required | Description | Default |
|---|---|---|---|
| un_id | Yes | Taxpayer unique ID | |
| status | Yes | Status bitmask filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's claim of listing invoices is consistent. However, it adds minimal behavioral context beyond the annotation, such as what 'needing reaction' implies.
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?
Very short and to the point; the single sentence conveys the core purpose without unnecessary words, though it could be slightly more informative.
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?
No output schema and the description does not indicate return format or details about the bitmask status filter. Given the complexity of a bitmask parameter, additional context is needed for completeness.
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% with descriptions for both un_id and status. The description does not add further meaning to these parameters, so it meets the baseline but does not enhance understanding.
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 'List buyer-side invoices needing reaction' clearly states the action (list) and the resource (buyer-side invoices) with a specific filter (needing reaction), distinguishing it from tools like get_buyer_invoices which likely list all invoices.
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?
No guidance on when to use this tool versus alternatives like get_buyer_invoices or list_pending_actions. The description does not mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buyer_waybillsCRead-only
List buyer waybills with filters (მყიდველის ზედნადებები)
| Name | Required | Description | Default |
|---|---|---|---|
| types | No | Waybill types, comma-separated | |
| comment | No | Comment filter | |
| statuses | No | Statuses, comma-separated (0=saved, 1=active, 2=closed, 8=sent to transporter, -1=deleted, -2=cancelled) | |
| car_number | No | Car number | |
| driver_tin | No | Driver TIN | |
| s_user_ids | No | Service user IDs, comma-separated | |
| seller_tin | No | Seller TIN | |
| full_amount | No | Full amount | |
| begin_date_e | No | Transport start date to (YYYY-MM-DD) | |
| begin_date_s | No | Transport start date from (YYYY-MM-DD) | |
| close_date_e | No | Close date to (YYYY-MM-DD) | |
| close_date_s | No | Close date from (YYYY-MM-DD) | |
| create_date_e | No | Create date to (YYYY-MM-DD) | |
| create_date_s | No | Create date from (YYYY-MM-DD) | |
| waybill_number | No | Waybill number | |
| delivery_date_e | No | Delivery date to (YYYY-MM-DD) | |
| delivery_date_s | No | Delivery date from (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds no additional behavioral context (e.g., pagination, rate limits, response format) beyond that.
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 extremely concise (one sentence, 6 words). While it front-loads the purpose, it is so brief that it sacrifices useful context, making it less helpful than it could be.
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 17 optional parameters, no output schema, and many sibling tools, the description is vastly incomplete. It does not explain what 'buyer waybills' are, how the tool differs from similar ones, or what the response structure looks like.
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%, with each parameter having a description in the input schema. The tool description adds no parameter-specific meaning beyond the schema, which is sufficient for baseline scoring.
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 'List buyer waybills with filters' clearly states the action (list) and resource (buyer waybills). However, it does not differentiate from sibling tools like 'get_buyer_waybills_ex' or 'get_waybills', which likely serve similar purposes.
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. There is no mention of prerequisites, when-not-to-use, or comparison to siblings such as 'get_buyer_waybills_ex' or 'get_waybills'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buyer_waybills_exCRead-only
List buyer waybills with confirmation filter (მყიდველის ზედნადებები დადასტურების ფილტრით)
| Name | Required | Description | Default |
|---|---|---|---|
| types | No | Waybill types, comma-separated | |
| comment | No | Comment filter | |
| statuses | No | Statuses, comma-separated (0=saved, 1=active, 2=closed, 8=sent to transporter, -1=deleted, -2=cancelled) | |
| car_number | No | Car number | |
| driver_tin | No | Driver TIN | |
| s_user_ids | No | Service user IDs, comma-separated | |
| seller_tin | No | Seller TIN | |
| full_amount | No | Full amount | |
| begin_date_e | No | Transport start date to (YYYY-MM-DD) | |
| begin_date_s | No | Transport start date from (YYYY-MM-DD) | |
| close_date_e | No | Close date to (YYYY-MM-DD) | |
| close_date_s | No | Close date from (YYYY-MM-DD) | |
| is_confirmed | Yes | Confirmation filter: 0=unconfirmed, 1=confirmed, -1=rejected | |
| create_date_e | No | Create date to (YYYY-MM-DD) | |
| create_date_s | No | Create date from (YYYY-MM-DD) | |
| waybill_number | No | Waybill number | |
| delivery_date_e | No | Delivery date to (YYYY-MM-DD) | |
| delivery_date_s | No | Delivery date from (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating safe read-only behavior. The description adds no behavioral context beyond what annotations provide, but it does not contradict them. It confirms the listing nature, which aligns with readOnlyHint. No additional side effects or constraints are 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 a single sentence with a parenthetical translation, which is concise but lacks essential information such as the tool's extended nature or output behavior. It is front-loaded but does not efficiently communicate all necessary details for an 18-parameter tool.
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 has 18 parameters and no output schema, the description is too brief. It does not explain what constitutes a 'buyer waybill', the meaning of 'extended' in the tool name, or how the filters work together. The agent would need to rely heavily on the schema, which may not be sufficient for effective invocation.
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%, meaning all parameters have descriptions in the schema. The description adds no extra meaning beyond the schema; it only highlights the 'confirmation filter' which is already described in the 'is_confirmed' parameter. Thus, baseline score 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 'List buyer waybills with confirmation filter', providing a specific verb and resource. However, it does not differentiate from the sibling tool 'get_buyer_waybills', which may also list buyer waybills without the confirmation filter. The inclusion of the Georgian translation adds local context but does not aid in 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 provides no guidance on when to use this tool versus its siblings, such as 'get_buyer_waybills' or 'get_waybills_ex'. There are no when-to-use or when-not-to-use instructions, leaving the agent to infer based solely on the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_decl_dateBRead-only
Get declaration date by declaration number (დეკლარაციის თარიღის წამოღება)
| Name | Required | Description | Default |
|---|---|---|---|
| un_id | Yes | User unique ID | |
| decl_num | Yes | Declaration number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description's 'Get' aligns. No additional behavioral details are provided (e.g., what happens if decl_num not found), but annotations carry the safety burden.
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?
Description is concise: one sentence with a parenthetical translation. No extraneous content, though the Georgian translation adds no functional value but isn't harmful.
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?
No output schema exists, yet the description fails to explain the return format (e.g., the date string). It is adequate for a simple lookup but lacks completeness on output details and error scenarios.
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% for both parameters (decl_num and un_id). The description adds no further meaning beyond what the schema already provides, earning the baseline score 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 clearly states 'Get declaration date by declaration number', using a specific verb (Get) and resource (declaration date). It distinguishes from sibling tools like get_invoice, get_waybill, etc., which target different resources.
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?
No guidance on when to use this tool versus alternatives. With many sibling tools performing similar lookups, explicit context or exclusion criteria would help agents select correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_error_codesARead-only
List all waybill error codes (შეცდომების კოდები)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read. The description adds no further behavioral context beyond 'list all', which is consistent.
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?
Description is extremely short and front-loaded with the verb. However, it could include more context without becoming verbose. Efficient but not maximally informative.
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 output schema, the description should hint at what is returned (e.g., list of codes). It is sparse but sufficient for a trivial tool. Completeness is adequate but not excellent.
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?
No parameters exist, so no additional meaning is needed. The description adds nothing but that's fine; baseline for 0 params is 4.
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?
Description uses specific verb 'list' and resource 'waybill error codes', clearly stating the tool's function. It is distinct from siblings with similar naming patterns.
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?
No explicit guidance on when to use this tool versus alternatives; usage is implied by the simple nature of the tool (no parameters). However, the description does not help an agent decide among many 'get_' tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoiceARead-only
Get a single tax invoice by ID (ანგარიშ-ფაქტურის ნახვა)
| Name | Required | Description | Default |
|---|---|---|---|
| invois_id | Yes | Invoice unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds no additional behavioral context (e.g., authentication needs, data freshness, return format). It does not contradict annotations, but adds minimal value beyond purpose.
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?
Single clear sentence with no extraneous information. Efficiently conveys the tool's action.
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?
Despite simplicity, the description does not specify what the returned invoice contains or differentiate from siblings like get_invoice_desc. With no output schema, more detail about return value would help completeness.
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 has 100% coverage: invo_id has a description. The tool description mentions 'by ID', which is consistent but adds no new meaning beyond what the parameter description already 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?
Description clearly states verb 'Get', resource 'single tax invoice', and identifier 'by ID'. It distinguishes from list-oriented siblings (e.g., get_buyer_invoices, get_seller_invoices) that retrieve multiple invoices.
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?
No guidance on when to use this vs. alternative invoice retrieval tools like get_invoice_d, get_invoice_desc, or get_invoice_request. The user must infer from the single-id parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoice_dCRead-only
Autocomplete declaration numbers (დეკლარაციის ნომრების ძებნა)
| Name | Required | Description | Default |
|---|---|---|---|
| un_id | Yes | Taxpayer unique ID | |
| v_count | Yes | Max results to return | |
| v_invoice_d | Yes | Partial declaration number to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds no behavioral context beyond what annotations provide.
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?
One-line description is concise but includes redundant Georgian text. Could be more structured or informative within the space.
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?
No output schema and no description of return values or behavior. For a search/autocomplete tool, return format is critical and 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 descriptions cover all 3 parameters (100% coverage). Description does not add additional meaning beyond 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?
Description clearly indicates autocomplete/search for declaration numbers, distinguishing it from other invoice tools like get_invoice or get_invoice_numbers.
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?
No usage guidance provided. No mention of when to use or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoice_descBRead-only
Get all goods/service line items for an invoice (საქონლის ჩანაწერების ნახვა)
| Name | Required | Description | Default |
|---|---|---|---|
| invois_id | Yes | Invoice unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read operation. The description does not add further behavioral context such as whether the result is paginated, if it returns historical or current items, or if it requires specific permissions. With annotations covering safety, a score of 3 is appropriate—adequate but not enriched.
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 sentence that conveys the core purpose without unnecessary words. It is front-loaded with the main action. Could be slightly improved by placing the Georgian translation after the English, but overall efficient.
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 lack of an output schema, the description does not indicate what fields or structure the returned line items have. For a tool retrieving a list of items, this information would be helpful. However, the tool is simple with one parameter and no complexities, so the description is minimally adequate but not 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?
Schema coverage is 100% for the single parameter 'invois_id', which the schema describes as 'Invoice unique ID'. The description does not add any additional meaning or format beyond what the schema provides. Baseline 3 is correct.
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 it retrieves 'all goods/service line items for an invoice', which is a specific verb and resource. This distinguishes it from similar sibling tools like 'get_invoice' (likely header info) and 'delete_invoice_desc'. However, the tool name 'get_invoice_desc' could be misinterpreted as getting invoice description rather than line items, slightly reducing clarity.
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?
No guidance is provided on when to use this tool versus alternatives. The description does not specify context, prerequisites, or exclusions. For example, it doesn't mention that this tool should be used when detailed line items are needed, as opposed to 'get_invoice' which might summarize.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoice_numbersBRead-only
Autocomplete invoice numbers (ანგარიშ-ფაქტურის ნომრების ძებნა)
| Name | Required | Description | Default |
|---|---|---|---|
| un_id | Yes | Taxpayer unique ID | |
| v_count | Yes | Max results to return | |
| v_invoice_n | Yes | Partial invoice number to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe read operation (readOnlyHint=true, destructiveHint=false). The description adds minimal behavioral context beyond 'autocomplete', such as how partial matches are handled or return format. With annotations covering safety, a 3 is appropriate.
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?
Description is a single sentence, concise and front-loaded with English. However, it could be slightly more informative without adding length. Score 4.
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?
No output schema; description does not hint at return format (e.g., list of matching numbers). For a three-parameter search tool, the description is incomplete.
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 has 100% description coverage for all three parameters. The description does not add any extra meaning beyond what the schema already provides. Baseline 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?
Description clearly states it is for autocomplete/invoice number search. The verb 'autocomplete' and resource 'invoice numbers' are specific, and it distinguishes from siblings like `get_invoice` which return full invoice data.
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?
No guidance on when to use this tool vs alternatives. Among many similar tools, the description does not provide any context for usage or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoice_requestBRead-only
Get invoice issuance reminder details (შეხსენების ნახვა)
| Name | Required | Description | Default |
|---|---|---|---|
| inv_id | Yes | Invoice request unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description does not add any additional behavioral context beyond the basic purpose, so it does not improve transparency.
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 very concise: a single line plus a Georgian translation in parentheses. It is front-loaded with the essential purpose, though it could benefit from slightly more structure or detail.
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 no output schema, the description should at least hint at the return format or fields. It does not, leaving the agent uncertain about what data the call returns. Given the many siblings, more contextual guidance would be beneficial.
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 describes the single parameter 'inv_id' with a clear description. The description does not add any extra information beyond what the schema provides, so it does not enhance parameter understanding.
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 verb 'Get' and the resource 'invoice issuance reminder details', indicating a retrieval operation. However, it does not differentiate from siblings like 'get_invoice_requests' or 'get_invoice', and the term 'reminder' might be ambiguous.
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?
No guidance is provided on when to use this tool versus alternatives such as 'get_invoice_requests' (plural). There are no prerequisites, exclusions, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoice_requestsBRead-only
List invoice requests sent by buyer (მყიდველის შეხსენებების სია)
| Name | Required | Description | Default |
|---|---|---|---|
| bayer_un_id | Yes | Buyer taxpayer unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating safe read operation. The description adds that it lists requests 'sent by buyer', which is consistent but does not disclose pagination, empty result behavior, or return format beyond the informational 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 extremely concise, front-loaded with the essential action and resource, and includes a bilingual translation. Every word is purposeful with no 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 list tool with one parameter and no output schema, the description is minimally adequate. However, it lacks clarification on what 'invoice requests' entails (e.g., pending vs. history) and whether there are limitations, reducing completeness relative to potential agent needs.
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% with a clear description for the parameter 'Buyer taxpayer unique ID'. The description's mention of 'sent by buyer' reinforces the parameter's role but adds no new semantic information 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 clearly states the verb 'list' and the resource 'invoice requests sent by buyer'. It is specific about the scope (sent by buyer) but does not differentiate from sibling tools like get_invoice_request (singular) or get_requested_invoices.
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?
No explicit guidance on when to use this tool versus alternatives. The description implies a buyer-side scope but does not state when to prefer this over similar list tools or what prerequisites exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoice_tinsBRead-only
Autocomplete buyer/seller TINs (საიდენტიფიკაციო ნომრების ძებნა)
| Name | Required | Description | Default |
|---|---|---|---|
| un_id | Yes | Taxpayer unique ID | |
| v_count | Yes | Max results to return | |
| v_invoice_t | Yes | Partial TIN to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds the 'autocomplete' behavior, but does not disclose details like pagination or rate limits. No contradictions.
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?
Single sentence with no wasted words. Front-loaded with the key action. Could benefit from additional context but is appropriately brief.
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?
No output schema exists, and the description does not explain what the tool returns (e.g., list of TINs or full objects). For a search tool, this is a significant gap in completeness.
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% with clear descriptions for all three parameters. The description adds no extra semantics beyond the schema, meeting the baseline for high 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 clearly states the tool autocompletes buyer/seller TINs, using a specific verb and resource. It distinguishes from sibling tools focused on invoices or waybills, but could be more explicit about the scope.
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?
No guidance on when to use this tool versus alternatives like get_name_from_tin or other search tools. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_makoreqtirebeliBRead-only
Get the correction invoice ID for a corrected invoice (მაკორექტირებელის ნომრის გაგება)
| Name | Required | Description | Default |
|---|---|---|---|
| inv_id | Yes | Invoice unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description adds no additional behavioral context (e.g., it doesn't explain if the invoice must already be corrected or what happens if the correction ID doesn't exist).
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 very short (one sentence). While concise, it lacks necessary detail to be considered well-structured. Every word earns its place but too few words are present.
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 output schema, the description does not specify the return format or type (e.g., returns a string, number, or object). It also fails to mention potential error conditions or prerequisites. Incomplete for confident use.
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 the single parameter. The description does not add meaning beyond the schema's brief 'Invoice unique ID' – it doesn't clarify the relationship between inv_id and the returned correction invoice ID.
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 returns the correction invoice ID for a corrected invoice, using a specific verb and resource. The name also suggests a unique function among many invoice-related 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?
The description provides no guidance on when to use this tool versus alternatives like get_invoice or other invoice retrieval functions. No context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_name_from_tinCRead-only
Look up a taxpayer name by TIN/personal number (სახელის გამოტანა საიდენტიფიკაციო ნომრით)
| Name | Required | Description | Default |
|---|---|---|---|
| tin | Yes | Taxpayer identification number or personal number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds no additional behavioral context (e.g., what happens on invalid TIN, rate limits, or authentication needs).
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?
Single sentence, front-loaded with action and resource. Concise, though could include a bit more context without becoming verbose.
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?
Without an output schema, the description should explain what is returned (e.g., full name) or behavior on missing TIN. It does not, making the tool's behavior incomplete.
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 parameter 'tin' is described. The description does not add extra meaning or formatting details 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 clearly states the action (look up) and resource (taxpayer name by TIN). It is specific but does not distinguish from similar sibling tools like ntos_get_org_name_from_un_id.
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?
No guidance on when to use this tool vs alternatives, nor any prerequisites or exclusions. The agent must infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ntos_invoices_inv_nosBRead-only
Get waybills linked to an invoice (ანგარიშ-ფაქტურის ზედნადებები)
| Name | Required | Description | Default |
|---|---|---|---|
| invois_id | Yes | Invoice unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and destructiveHint=false, which the description aligns with (it is a GET operation). However, the description adds no further behavioral details about pagination, result format, or edge cases. The annotations already cover the basic 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 very concise, consisting of a single sentence. It is front-loaded with the purpose. However, it could include a bit more detail without becoming verbose. It is efficient but minimal.
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 simplicity of the tool (one parameter, read-only), the description captures the core purpose. However, there is no output schema or description of what the response contains, which is needed for an agent to use the result. The description is adequate but not 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 has one required parameter 'invois_id' with a description 'Invoice unique ID'. The tool description does not add any additional context or semantics for this parameter. Schema coverage is 100%, so the baseline is 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 clearly states the verb 'Get' and the resource 'waybills linked to an invoice'. It includes a Georgian translation. However, it does not explicitly differentiate this tool from siblings like get_waybills or get_waybill, which could also retrieve waybill data.
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?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives such as get_waybills or get_buyer_waybills. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requested_invoicesBRead-only
List invoice requests received by seller (გამყიდველის შეხსენებების სია)
| Name | Required | Description | Default |
|---|---|---|---|
| seller_un_id | Yes | Seller taxpayer unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds no extra safety context. It does not describe pagination, ordering, or response details, but does not contradict 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?
Description is a single concise sentence plus a Georgian translation. It is front-loaded but lacks any structure beyond that.
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 list tool with one parameter and no output schema, the description is adequate but does not explain what fields are returned or any filtering options. An agent might need more detail for reliable invocation.
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 the single parameter 'seller_un_id', and the description adds no additional meaning beyond the schema's own description. Baseline 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?
Description clearly states 'List invoice requests received by seller', which is a specific verb and resource. However, it does not sufficiently differentiate from the sibling tool 'get_invoice_requests' which likely retrieves similar data.
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?
No when-to-use or when-not-to-use guidance. Given the many sibling invoice tools, this omission makes it harder for an agent to choose the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_seller_invoicesARead-only
List seller-side invoices with filters (გამყიდველის ანგარიშ-ფაქტურები)
| Name | Required | Description | Default |
|---|---|---|---|
| desc | No | Buyer name | |
| e_dt | No | Registration date to (YYYY-MM-DDTHH:mm:ss) | |
| s_dt | No | Registration date from (YYYY-MM-DDTHH:mm:ss) | |
| un_id | Yes | Taxpayer unique ID | |
| op_e_dt | No | Operation date to (YYYY-MM-DDTHH:mm:ss) | |
| op_s_dt | No | Operation date from (YYYY-MM-DDTHH:mm:ss) | |
| invoice_no | No | Invoice number | |
| doc_mos_nom | No | Declaration number | |
| sa_ident_no | No | Buyer identification number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, which the description agrees with ('List'). The description adds no additional behavioral details beyond what annotations provide, but there is no contradiction.
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 sentence, efficient and front-loaded. However, it includes a non-English parenthetical that may reduce clarity for some agents, but overall it is concise.
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 comprehensive input schema (100% parameter descriptions) and safety annotations, the description is sufficiently complete for a read/list operation. No output schema needed for this type of 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?
Schema description coverage is 100%, so all parameters are documented. The description does not add extra meaning beyond what the schema provides, meeting 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 'List seller-side invoices with filters' clearly states the action (list), resource (invoices), and scope (seller-side, with filters). It effectively distinguishes from sibling tools like get_buyer_invoices.
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?
No guidance on when to use this tool versus alternatives. It does not indicate when not to use it, nor does it mention any prerequisites or context for selection among the many invoice-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_seller_invoices_rARead-only
List seller-side invoices needing reaction (რეაგირების მოთხოვნა - გამყიდველი)
| Name | Required | Description | Default |
|---|---|---|---|
| un_id | Yes | Taxpayer unique ID | |
| status | Yes | Status bitmask filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds only the filtering context ('needing reaction'). It does not disclose return format, pagination, or performance traits. With annotations covering safety, the description provides minimal extra transparency.
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 sentence, efficiently conveying the tool's purpose. The Georgian parenthetical may reduce clarity for non-Georgian readers, but overall it is concise 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?
For a simple listing tool with two parameters and no output schema, the description adequately covers the core behavior. Annotations handle safety. However, it omits details about error handling or filtering edge cases, but these are not critical for basic use.
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% with clear descriptions for both parameters (un_id and status). The description adds no additional meaning beyond the schema, so it meets the baseline 3 for a fully covered 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 explicitly states 'List seller-side invoices needing reaction,' which provides a specific verb and resource. It distinguishes itself from siblings like 'get_seller_invoices' (general listing) and 'get_buyer_invoices_r' (buyer-side) by specifying 'seller-side' and 'needing reaction'.
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 lacks any explicit guidance on when to use this tool versus its siblings. It does not mention when not to use it or provide context about alternatives, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_seq_numsCRead-only
Get declaration numbers by tax period (დეკლარაციის ნომრები პერიოდის მიხედვით)
| Name | Required | Description | Default |
|---|---|---|---|
| sag_periodi | Yes | Tax period (e.g. 202404) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and non-destructive. The description adds no behavioral context beyond the annotation, such as return format or pagination.
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?
Single sentence with both English and Georgian. Front-loaded with English purpose; Georgian adds length but is not detrimental. 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?
Given no output schema and many siblings, the description lacks context about return values, error conditions, or usage examples. Minimal information for an AI agent to use confidently.
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 baseline 3. Description does not add meaning beyond schema. The parameter description already provides an example value.
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 'Get declaration numbers by tax period', specifying a verb and resource. It is distinct from siblings like get_invoice_numbers or get_decl_date, though it does not explicitly differentiate.
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?
No guidance on when to use this tool versus alternatives. With many similar get_* siblings, explicit 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.
get_service_usersBRead-only
List all service users for the account (სერვისის მომხმარებლების სია)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to repeat that. It adds no further behavioral context (e.g., auth needs, rate limits), but does not contradict 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 a single, focused sentence that immediately conveys the tool's purpose. The parenthetical Georgian translation is extraneous but does not detract from conciseness.
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 provides the core purpose but lacks details about the output format or the definition of 'service users'. Given no output schema and a sibling with a similar name, the description could be more informative.
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?
There are no parameters (schema coverage 100% trivially). The description adds nothing about parameters, which is acceptable given the absence of parameters. The baseline for zero parameters is 4.
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 'List all service users for the account', using a specific verb and resource. However, it does not distinguish from a very similarly named sibling tool 'ntos_get_ser_users', which may cause confusion for the AI agent.
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?
No guidance is provided on when to use this tool versus alternatives, such as the sibling 'ntos_get_ser_users'. The description only states the function, leaving the agent without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trans_typesARead-only
List all transport types (ტრანსპორტირების ტიპები)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false. Description adds no new behavioral info beyond the obvious listing action.
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?
Single, concise sentence with no wasted words. Front-loaded and clear.
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 listing tool with no parameters and no output schema, the description is sufficient to convey purpose. No missing critical context.
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?
No parameters exist, so baseline is 4. Description adds no param-level info but is consistent with 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 clearly states 'List all transport types', specifying the verb and resource. It distinguishes this tool from siblings like get_wood_types and get_waybill_types.
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?
No guidance on when or why to use this tool over alternatives. Lacks context such as prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_invoicesBRead-only
List invoices by last update date range, max 3-day span (ანგარიშ-ფაქტურები განახლების თარიღით)
| Name | Required | Description | Default |
|---|---|---|---|
| un_id | Yes | Taxpayer unique ID | |
| last_update_date_e | Yes | Last update date range end (YYYY-MM-DDTHH:mm:ss) | |
| last_update_date_s | Yes | Last update date range start (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds the 'max 3-day span' constraint, which is useful behavioral context beyond annotations, but lacks details on error handling or result limits.
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, one sentence with front-loaded key action. The parenthetical in another language may be redundant for English users but does not detract significantly.
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?
Lacks output description (no output schema) and does not mention authentication or user context. For a simple list tool, it is adequate but incomplete regarding return values.
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% with clear parameter descriptions. The description reiterates the date range and adds the 3-day span constraint, which is more a behavioral limit than semantic enrichment. Overall, adds marginal value beyond 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 clearly states the verb 'List' and the resource 'invoices' with a specific filter (last update date range, max 3-day span). It distinguishes itself from sibling tools by focusing on 'user' invoices and a date-range filter, though not explicitly differentiating.
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?
No guidance is provided on when to use this tool versus alternatives. The sibling list includes many invoice-listing tools, but the description gives no context for selection or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_waybillARead-only
Get a single waybill by ID (ზედნადების გამოტანა)
| Name | Required | Description | Default |
|---|---|---|---|
| waybill_id | Yes | Waybill ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, which the description does not supplement. No additional behavioral traits (e.g., permissions, rate limits, or side effects) are disclosed, leaving the agent to rely solely on annotations for 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 description is extremely concise: one sentence plus a translation. Every word earns its place, with no redundancy or fluff.
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 single-parameter read operation, the description is nearly complete. It lacks details about the return format (since no output schema exists), but this is acceptable given the tool's simplicity.
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 parameter description ('Waybill ID') is clear. The description adds no extra meaning beyond 'by ID', which is already implied. Baseline 3 is appropriate since the schema does the heavy lifting.
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 action ('Get') and the resource ('a single waybill by ID'), distinguishing it from sibling tools like 'get_waybills' which return lists. The parenthetical Georgian text provides additional localization but does not detract from clarity.
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 when the waybill ID is known, but it does not explicitly state when not to use this tool or mention alternative tools (e.g., 'get_waybills' for listing). There is no guidance on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_waybillsBRead-only
List seller waybills with filters (გამყიდველის ზედნადებები)
| Name | Required | Description | Default |
|---|---|---|---|
| types | No | Waybill types, comma-separated | |
| comment | No | Comment filter | |
| statuses | No | Statuses, comma-separated (0=saved, 1=active, 2=closed, -1=deleted, -2=cancelled) | |
| buyer_tin | No | Buyer TIN | |
| car_number | No | Car number | |
| driver_tin | No | Driver TIN | |
| s_user_ids | No | Service user IDs, comma-separated | |
| full_amount | No | Full amount | |
| begin_date_e | No | Transport start date to (YYYY-MM-DD) | |
| begin_date_s | No | Transport start date from (YYYY-MM-DD) | |
| close_date_e | No | Close date to (YYYY-MM-DD) | |
| close_date_s | No | Close date from (YYYY-MM-DD) | |
| create_date_e | No | Create date to (YYYY-MM-DD) | |
| create_date_s | No | Create date from (YYYY-MM-DD) | |
| waybill_number | No | Waybill number | |
| delivery_date_e | No | Delivery date to (YYYY-MM-DD) | |
| delivery_date_s | No | Delivery date from (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds only 'with filters', which is already implied by the parameter list, so minimal additional behavioral context.
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 sentence that efficiently conveys the core purpose. No wasted words, though the Georgian parenthetical is unnecessary but not harmful.
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 complexity (17 parameters, no output schema), the description lacks critical details: what fields are returned, pagination, sorting, scope (current user's waybills as seller), and how it differs from similar tools. The annotations help but description should still provide more context.
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 the schema already documents all 17 parameters. The description does not add any additional meaning beyond 'with filters'.
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 action 'List' and the resource 'seller waybills', with mention of filters. It distinguishes from sibling tools like get_buyer_waybills by specifying 'seller'.
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 alternative sibling tools such as get_waybills_ex or get_waybill. No mention of prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_waybills_exBRead-only
List seller waybills with confirmation filter (გამყიდველის ზედნადებები დადასტურების ფილტრით)
| Name | Required | Description | Default |
|---|---|---|---|
| types | No | Waybill types, comma-separated | |
| comment | No | Comment filter | |
| statuses | No | Statuses, comma-separated (0=saved, 1=active, 2=closed, -1=deleted, -2=cancelled) | |
| buyer_tin | No | Buyer TIN | |
| car_number | No | Car number | |
| driver_tin | No | Driver TIN | |
| s_user_ids | No | Service user IDs, comma-separated | |
| full_amount | No | Full amount | |
| begin_date_e | No | Transport start date to (YYYY-MM-DD) | |
| begin_date_s | No | Transport start date from (YYYY-MM-DD) | |
| close_date_e | No | Close date to (YYYY-MM-DD) | |
| close_date_s | No | Close date from (YYYY-MM-DD) | |
| is_confirmed | Yes | Confirmation filter: 0=unconfirmed, 1=confirmed, -1=rejected | |
| create_date_e | No | Create date to (YYYY-MM-DD) | |
| create_date_s | No | Create date from (YYYY-MM-DD) | |
| waybill_number | No | Waybill number | |
| delivery_date_e | No | Delivery date to (YYYY-MM-DD) | |
| delivery_date_s | No | Delivery date from (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context such as pagination, date range handling, or response format.
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 very concise, with no wasted words. It lacks structure (e.g., bullet points) but is efficient for its purpose.
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 18 parameters and no output schema, the description is minimal. It does not explain return format, pagination, or how to use the many filters effectively, making it incomplete.
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% with all parameters described. The description does not add meaning beyond the schema, only reinforcing the is_confirmed parameter. Baseline score 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 it lists seller waybills with a confirmation filter, distinguishing it from sibling tools like get_waybills (generic) and get_buyer_waybills_ex (buyer-specific).
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 does not provide when to use this tool versus alternatives like get_waybills. No explicit guidance on context or exclusions, which is critical given many similar sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_waybills_v1BRead-only
List waybills by last update date range, max 3-day span (ზედნადებები განახლების თარიღით)
| Name | Required | Description | Default |
|---|---|---|---|
| buyer_tin | No | Buyer/seller TIN to filter by | |
| last_update_date_e | Yes | Last update date range end (YYYY-MM-DDTHH:mm:ss) | |
| last_update_date_s | Yes | Last update date range start (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds the 'max 3-day span' constraint, which is valuable behavioral context beyond structured fields. However, other traits like pagination or return format are not 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?
Extremely concise: one sentence with action, resource, filtering, and constraint. Front-loaded with the verb 'list'. No wasted 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?
Adequate for a simple read-only list tool with good annotations. Lacks details on output format, pagination, or ordering. The 3-day constraint is critical and included, but completeness could be improved.
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% with descriptions for all three parameters. The description adds the 'max 3-day span' constraint not present in the schema, providing extra semantic value. 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?
Clearly states 'list waybills by last update date range' and includes a 'max 3-day span' constraint. Distinguishes from siblings like get_waybills and get_waybills_ex by specifying the date filtering and limitation, but could be more explicit about 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?
No guidance on when to use this tool versus alternatives. Does not mention when-not-to-use or provide context for selection among similar waybill listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_waybill_typesARead-only
List all waybill types (ზედნადების ტიპები)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not add new behavioral context. It merely restates the fact that it lists types, which is consistent with 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?
Single concise sentence with no unnecessary words or repeated information from the name or schema. Front-loaded and efficient.
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 parameters, simple output, and no output schema, the description is complete enough for the agent to use correctly.
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?
There are no parameters, and schema coverage is 100%. The description adds no parameter details, but with zero parameters, the baseline is 4 as per calibration.
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?
Description clearly states 'List all waybill types' with a specific verb and resource. It distinguishes from sibling tools like get_waybills and get_waybill which handle waybill records, not types.
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?
No guidance on when to use this tool vs alternatives. However, the tool is simple and its purpose is obvious; a brief note on when to use it would be beneficial but not essential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_waybill_unitsARead-only
List all measurement units (ზომის ერთეულები)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description adds no behavioral context beyond confirming a read operation. It does not disclose any traits not covered by 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?
Extremely concise single sentence with no wasted words. Front-loads the action and resource.
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 read-only list tool with no parameters and no output schema, the description is adequate. It could potentially mention the return format, but the core functionality is clear.
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?
Tool has zero parameters, so baseline is 4. The description does not need to add parameter meaning since there are none.
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 verb 'List' and resource 'all measurement units', which is specific and distinguishes from sibling tools that deal with invoices, waybills, or other entities.
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?
No guidance on when to use this tool versus alternatives. The description only states its function without context on prerequisites or comparisons to similar list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wood_typesARead-only
List all wood types (ხეტყის ტიპები)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating safe read-only behavior. The description adds no further behavioral context, but does not contradict annotations. For a trivial tool, this is adequate.
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 short sentence with no extraneous information. Every word is necessary and information 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?
For a simple list tool with no parameters and no output schema, the description minimally covers the purpose. However, it does not describe the return format or what a 'wood type' entails, leaving some ambiguity for the 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 tool has no parameters, so the input schema covers 100% of the interface. The description does not need to add parameter semantics. Baseline for 0 parameters is 4.
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 action ('List') and the resource ('all wood types'), with a Georgian translation for clarity. It is specific and distinguishes itself from sibling tools which list other entities (e.g., get_akciz_codes, get_error_codes).
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, such as which other list tools might be relevant or any prerequisites. The usage context is entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
k_invoiceADestructive
Create a correction invoice (კორექტირება). k_type: 1=cancel operation, 2=change operation type, 3=price/compensation change, 4=goods return
| Name | Required | Description | Default |
|---|---|---|---|
| inv_id | Yes | Original invoice unique ID | |
| k_type | Yes | Correction type (1-4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive (destructiveHint=true). The description adds context on the specific correction types, but does not disclose additional behavioral traits such as prerequisites, reversibility, or side effects beyond the annotation.
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 very concise: two sentences that front-load the purpose and then detail the k_type parameter. Every word adds value, and there is no redundant or irrelevant 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?
Given the simple parameter set (2 params, no output schema) and the presence of annotations, the description is mostly complete. It could clarify that this tool is for existing invoices (though inv_id implies it), but overall it provides sufficient context for a correction 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?
The input schema has 100% coverage with descriptions for both parameters. The description adds significant value by enumerating the k_type values (1-4) and their meanings, which is not present in the schema. This helps an agent understand the exact correction operation.
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 creates a correction invoice and explains the four correction types. This distinguishes it from sibling tools like save_invoice (new invoice) or delete_invoice_desc (deletion). The verb is specific and the resource is well-defined.
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 correcting invoices via k_type, but does not explicitly state when to use this tool versus alternatives like save_invoice or delete_invoice_desc. The sibling set includes many mutation tools, but no guidance is given for choosing this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pending_actionsARead-only
List all pending actions awaiting confirmation (მოლოდინში მყოფი მოქმედებები)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context that actions are 'awaiting confirmation', but no further behavioral details (e.g., pagination, authentication).
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?
Single sentence, no waste. Front-loads the action and resource.
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 parameterless read-only tool, the description is sufficient. It could mention what constitutes 'pending', but it is adequate.
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?
No parameters, so schema coverage is 100%. The description does not need to add parameter info; baseline score of 4 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 'List all pending actions awaiting confirmation' clearly states the verb (list) and resource (pending actions), distinguishing it from sibling tools like confirm_action and reject_action.
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?
Implied usage: one would call this before confirming or rejecting actions, but there is no explicit guidance on when to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ntos_chekBRead-only
Verify NTOS invoice service credentials and get user info (სერვისის მომხმარებლის შემოწმება)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds that it both verifies and retrieves user info, which is useful behavioral context. Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not contradict them but provides limited additional insight.
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?
Extremely concise single sentence with translation, no wasted words. Front-loaded with actionable verb.
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?
Lacks output schema and does not describe return value format (e.g., success/failure indicators, user info fields). The description is insufficient for an agent to predict tool output.
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 and schema coverage is 100%. The description explains the purpose but does not need to add parameter details. Baseline score of 4 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 clearly states the tool verifies credentials and gets user info, with a specific verb-resource combination. However, it does not differentiate from similar siblings like 'chek_service_user' or 'ntos_get_ser_users', which may overlap.
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?
No guidance on when to use this tool versus alternatives. There is no mention of prerequisites or context where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ntos_get_akcizBRead-only
Search excise/akciz codes for invoices (აქციზური საქონლის კოდები)
| Name | Required | Description | Default |
|---|---|---|---|
| s_text | No | Excise product code to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description need not repeat safety info. The description adds minimal extra behavioral context beyond stating it searches for codes.
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 short sentence with no unnecessary words or information.
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 one parameter and clear annotations, the description is mostly adequate. However, the lack of differentiation from a similarly named sibling reduces completeness slightly.
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% with the single parameter 's_text' described as 'Excise product code to search'. The description adds no additional meaning beyond the schema's own description.
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 clear verb 'Search' and specifies the resource 'excise/akciz codes for invoices'. However, it does not distinguish from the sibling tool 'get_akciz_codes', which likely has a similar purpose.
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?
No guidance is provided on when to use this tool versus alternatives. A sibling tool 'get_akciz_codes' exists but the description offers no differentiation or when-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ntos_get_org_name_from_un_idBRead-only
Get organization name from unique ID (უნიკალური ნომრიდან დასახელების გაგება)
| Name | Required | Description | Default |
|---|---|---|---|
| un_id | Yes | Taxpayer unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds no further behavioral context beyond the input parameter. It does not contradict 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?
One sentence with a translation is concise and front-loaded with the core purpose. However, it could include a bit more structure or detail without adding length.
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?
Adequate for a simple lookup with one parameter, but lacks output format description. Without an output schema, the description should specify what the response contains.
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% with a clear parameter description 'Taxpayer unique ID'. The tool description adds no additional semantic value 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 clearly states the verb 'Get', the resource 'organization name', and the input 'unique ID'. It distinguishes from siblings like ntos_get_tin_from_un_id by specifying the output is the name, not the TIN.
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?
No guidance on when to use this tool versus siblings (e.g., ntos_get_tin_from_un_id). No context on prerequisites or 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.
ntos_get_ser_usersBRead-only
List NTOS invoice service users (სერვისის მომხმარებლების სია)
| Name | Required | Description | Default |
|---|---|---|---|
| user_name | Yes | E-declaration username | |
| user_password | Yes | E-declaration password |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, making the read-only nature clear. The description adds no additional behavioral details, but also does not contradict 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?
Extremely concise: two short phrases (English and Georgian) with no wasted words. Every word serves a purpose.
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 simplicity of the tool (list operation, two parameters) and the presence of annotations, the description is minimally adequate. However, it does not describe the output or any pagination, which might be needed for a complete understanding.
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 the baseline is 3. The description does not add any further meaning about the parameters beyond what the schema already 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 clearly states the tool lists NTOS invoice service users, using a specific verb and resource. However, it does not distinguish this from similar siblings like 'get_service_users'.
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?
No guidance is provided on when to use this tool instead of alternatives such as 'get_service_users' or 'chek_service_user'. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ntos_get_tin_from_un_idARead-only
Get TIN from taxpayer unique ID (უნიკალური ნომრიდან საიდენტიფიკაციო ნომრის გაგება)
| Name | Required | Description | Default |
|---|---|---|---|
| un_id | Yes | Taxpayer unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe lookup. The description adds no further behavioral details beyond what the name implies. It does not contradict 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 a single concise sentence with no unnecessary words. However, it includes a Georgian translation that may not be needed for an English-speaking AI agent, slightly reducing efficiency.
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 simplicity (one parameter, no output schema), the description provides adequate context. However, noting the return value format or confirming it returns a numeric TIN would improve completeness. The sibling list is extensive, but the tool's purpose is clear.
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% coverage with a single parameter 'un_id' described as 'Taxpayer unique ID'. The description does not add additional semantics beyond the schema, so a baseline score 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 retrieves a TIN from a taxpayer unique ID. It uses a specific verb ('Get') and resource ('TIN'), and distinguishes it from sibling tools like 'ntos_get_un_id_from_tin', which does the reverse.
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 its many siblings, such as 'ntos_get_org_name_from_un_id' or 'get_name_from_tin'. There is no mention of prerequisites, context, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ntos_get_un_id_from_tinARead-only
Get taxpayer unique ID from TIN (საიდენტიფიკაციო ნომრიდან უნიკალური ნომრის გაგება)
| Name | Required | Description | Default |
|---|---|---|---|
| tin | Yes | Taxpayer identification number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read. The description adds no additional behavioral context beyond the core operation. It does not disclose behavior for missing TINs or rate limits.
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 extremely concise at one sentence, front-loaded with the action, and contains 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?
The description is minimal for a tool with no output schema. It implies the output is the unique ID but provides no details on format, error handling, or any other context. Given the tool's simplicity, it is adequate but not 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?
Schema coverage is 100% with a clear description of the 'tin' parameter. The description adds no extra meaning beyond the schema, so 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 retrieves a taxpayer unique ID from a TIN, with a specific verb and resource. It distinguishes itself from sibling tools like get_name_from_tin or ntos_get_tin_from_un_id.
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?
There is no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The sibling list is large but no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ntos_get_un_id_from_user_idARead-only
Get taxpayer unique ID from e-declaration user ID (მომხმარებლის ნომრიდან უნიკალური ნომრის გაგება)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds no behavioral traits beyond the basic action, but it is consistent and does not contradict 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?
Extremely concise single sentence with no wasted words. The Georgian translation adds contextual value for local users without bloating.
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?
While the tool is simple with no parameters, the description omits any mention of return value format or error handling (e.g., what if user ID not found). With no output schema, this information would be helpful.
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?
No parameters exist, so schema coverage is 100%. The description does not need to add parameter details, and it correctly states the input source (user ID) implicitly.
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 input (e-declaration user ID) and output (taxpayer unique ID), and the name distinguishes it from sibling 'ntos_get_un_id_from_tin' which goes the opposite direction.
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?
No guidance on when to use this tool versus alternatives like 'ntos_get_un_id_from_tin' or other lookup tools. It only implies the context but does not provide when-not or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
print_invoicesBRead-only
Get invoice data for printing (საბეჭდი ფორმის მონაცემები)
| Name | Required | Description | Default |
|---|---|---|---|
| inv_id | Yes | Invoice unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's safe. The description adds 'for printing' but does not disclose response format or any side effects. It does not contradict annotations, so a score of 3 is adequate.
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 extremely short and front-loaded with the main purpose. It is concise but lacks explanatory depth, which is acceptable for a simple tool.
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 read tool with one parameter and no output schema, the description covers the basic intent. However, it does not hint at the output format (print-ready data), which would help an agent. Thus, minimally 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?
Schema description coverage is 100% (the single parameter 'inv_id' is described). The tool description adds no parameter information, so baseline 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 retrieves invoice data for printing, aligning with the name. However, among many sibling get_invoice tools, it does not explicitly differentiate itself beyond mentioning 'printing', so it's slightly lacking in 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?
No guidance is given on when to use this tool versus alternatives like get_invoice, get_invoice_d, etc. The description lacks any contextual cues for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ref_invoice_statusBDestructive
Reject an invoice with reason (ანგარიშ-ფაქტურის უარყოფა)
| Name | Required | Description | Default |
|---|---|---|---|
| inv_id | Yes | Invoice unique ID | |
| ref_text | Yes | Rejection reason text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds that a reason is required but does not disclose any other behavioral traits such as irreversibility, required permissions, or 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?
The description is a single concise sentence. The Georgian translation is redundant but not harmful.
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 low-complexity tool with 2 parameters, the description is somewhat complete but lacks important context such as prerequisites, consequences, or return value.
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 has 100% coverage with descriptions for both parameters. The description does not add additional meaning beyond what is already in 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 clearly states the verb 'Reject' and the resource 'invoice', and includes the Georgian equivalent for clarity. It differentiates from sibling tools like change_invoice_status or delete_invoice_desc which perform different operations.
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?
No guidance on when to use this tool versus alternatives. Sibling tools like change_invoice_status also modify invoice status, but no conditions or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ref_waybillADestructive
Cancel an active waybill — sets status to cancelled (ზედნადების გაუქმება)
| Name | Required | Description | Default |
|---|---|---|---|
| waybill_id | Yes | Waybill ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds that it applies to 'active' waybills, implying a precondition, but does not disclose other behavioral traits like reversibility or 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?
One sentence with a parenthesized translation, front-loaded with the key action and result. 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 operation, the description is minimal but missing details like prerequisites (waybill must be active) and expected outcomes (e.g., success/failure indicators). With no output schema, the agent might need more context.
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 single parameter waybill_id is fully described in the schema as 'Waybill ID to cancel'. The description adds no additional meaning beyond that, so baseline 3 is appropriate given 100% schema 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 clearly states the verb 'Cancel' and the resource 'active waybill', and specifies the effect 'sets status to cancelled'. It distinguishes from sibling tools like close_waybill, del_waybill, or reject_waybill.
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?
No guidance on when to use this tool versus alternatives. Among many waybill-related siblings (close, delete, reject), there is no indication of the appropriate context for cancellation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_actionA
Cancel a previously queued destructive action (მოქმედების გაუქმება)
| Name | Required | Description | Default |
|---|---|---|---|
| action_id | Yes | The action_id to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide safety profile (readOnlyHint=false, destructiveHint=false). Description adds little behavioral context beyond naming the resource as 'destructive action', which does not contradict 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?
Extremely concise: two clauses front-load the key purpose. No wasted 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 one-parameter tool with no output schema, the description is adequate. It lacks mention of result format or prerequisites, but the core function is clear.
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 baseline 3. Description merely restates that action_id is to cancel, adding no new meaning 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 clearly states the verb 'Cancel' and resource 'previously queued destructive action', and distinguishes from sibling tools like 'confirm_action' and 'list_pending_actions'.
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?
No explicit guidance on when to use versus alternatives, no prerequisites mentioned; only implied usage from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_waybillBDestructive
Buyer rejects a waybill (ზედნადების უარყოფა მყიდველის მიერ)
| Name | Required | Description | Default |
|---|---|---|---|
| waybill_id | Yes | Waybill ID to reject |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description's 'rejects' aligns but adds minimal extra context (buyer role). No contradiction but doesn't disclose effects like state changes or notifications.
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?
Single sentence is concise and includes a Georgian translation, which may be redundant but not wasteful. Could be more structured but overall efficient.
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 one parameter and no output schema, the description should mention prerequisites, reversibility, or consequences. It lacks critical context for a complex domain with many sibling tools.
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 covers 100% of parameters with 'Waybill ID to reject'. The description adds no additional meaning beyond this 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 clearly states the action 'rejects' and the resource 'waybill', specifying it's from the buyer's perspective. This distinguishes it from siblings like 'confirm_waybill' or 'close_waybill'.
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?
No guidance on when to use this tool versus alternatives. With many sibling waybill action tools, the agent receives no context on prerequisites or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_invoiceBDestructive
Save/create a tax invoice (ანგარიშ-ფაქტურის შენახვა)
| Name | Required | Description | Default |
|---|---|---|---|
| invois_id | Yes | Invoice ID, pass 0 to create new | |
| b_s_user_id | No | Buyer's service user ID | |
| buyer_un_id | Yes | Buyer unique ID | |
| overhead_dt | No | Deprecated, pass any date | |
| overhead_no | No | Deprecated, pass empty string | |
| seller_un_id | Yes | Seller unique ID | |
| operation_date | Yes | Operation date (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description correctly implies mutation ('save/create'), aligning with the destructiveHint=true annotation. However, it does not elaborate on the create vs update behavior (invois_id=0 creates, otherwise updates), which is critical context beyond what annotations provide.
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 very short and front-loaded, consisting of a single sentence with a helpful Georgian translation. It is concise with no wasted words, though it could be slightly more informative.
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 has 7 parameters (4 required) and no output schema, the description is insufficient. It omits critical details like return value, the create vs update mechanism, and any constraints. The agent would be left guessing about the tool's behavior beyond the basic action.
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 covers all 7 parameters with descriptions (100% coverage), so the description adds no additional meaning. Baseline 3 is appropriate as the schema does the heavy lifting.
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 verb 'Save/create' and resource 'tax invoice', making the purpose identifiable. However, it fails to differentiate from sibling tools like save_invoice_a or save_invoice_desc, which could lead to confusion.
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?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or scenarios mentioned. The agent receives no help in deciding between this and similar save_invoice variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_invoice_aBDestructive
Save/create an advance/compensation tax invoice (საკომპენსაციო ანგარიშ-ფაქტურის შენახვა)
| Name | Required | Description | Default |
|---|---|---|---|
| invois_id | Yes | Invoice ID, pass 0 to create new | |
| b_s_user_id | No | Buyer's service user ID | |
| buyer_un_id | Yes | Buyer unique ID | |
| overhead_dt | No | Deprecated, pass any date | |
| overhead_no | No | Deprecated, pass empty string | |
| seller_un_id | Yes | Seller unique ID | |
| operation_date | Yes | Operation date (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior. Description adds context about advance/compensation invoices but omits the update capability implied by the invoiss_id parameter. Does not contradict 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?
Single sentence with Georgian translation; concise and front-loaded with action verb. Could be slightly more structured but overall efficient.
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 destructive tool with 7 parameters and no output schema, the description lacks business context, permission needs, and details about create vs update behavior. Insufficient for a complex tax invoice operation.
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 covers 100% of parameters with descriptions. The description adds no additional parameter information beyond what the schema already 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?
Description uses specific verb 'save/create' and specifies resource 'advance/compensation tax invoice', distinguishing it from siblings like 'save_invoice' which may handle regular invoices. However, it could be more precise about the exact type.
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?
No guidance on when to use this tool versus alternatives such as 'save_invoice' or 'save_invoice_n'. Lacks context for selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_invoice_descADestructive
Save a goods/service line item on an invoice (საქონლის ჩანაწერის შენახვა). drg_amount: positive=normal VAT, 0=zero-rate, -1=non-taxable
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Goods line ID, pass 0 to create new | |
| goods | Yes | Goods/service name | |
| g_unit | Yes | Unit of measurement | |
| akciz_id | No | Excise product code ID | |
| g_number | Yes | Quantity | |
| invois_id | Yes | Invoice unique ID | |
| drg_amount | Yes | VAT amount (positive=normal, 0=zero-rate, -1=non-taxable) | |
| full_amount | Yes | Total amount including VAT and excise | |
| aqcizi_amount | No | Excise amount |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description's mention of 'save' is consistent. The description adds value by explaining drg_amount behavior (VAT codes), but lacks details on update vs. create (though the schema's 'id' field hints at this), idempotency, or error scenarios.
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 very concise at one sentence plus a critical note. Every part is useful, though the non-English parenthetical may be unnecessary. It is front-loaded with the core action.
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 complexity (9 params, no output schema, destructive nature), the description covers the main purpose and the key drg_amount nuance but omits return value, prerequisites, and relationship to other save tools. The schema descriptions fill some gaps, but more context would help an agent invoke it correctly.
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% with descriptions for all 9 parameters. The description additionally clarifies drg_amount's special values (0 for zero-rate, -1 for non-taxable), which adds meaningful context 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 clearly states the action ('Save') and the resource ('goods/service line item on an invoice'). It distinguishes from sibling tools like delete_invoice_desc and get_invoice_desc. The special drg_amount values add specificity.
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?
No guidance is provided on when to use this tool versus alternatives like save_invoice or save_invoice_a. The description does not mention prerequisites (e.g., invoice must exist) or 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.
save_invoice_nCDestructive
Save/create a tax invoice with comment (ანგარიშ-ფაქტურის შენახვა კომენტარით)
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | Comment/note text | |
| invois_id | Yes | Invoice ID, pass 0 to create new | |
| b_s_user_id | No | Buyer's service user ID | |
| buyer_un_id | Yes | Buyer unique ID | |
| overhead_dt | No | Deprecated, pass any date | |
| overhead_no | No | Deprecated, pass empty string | |
| seller_un_id | Yes | Seller unique ID | |
| operation_date | Yes | Operation date (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description only adds 'Save/create', which is implicit from the name. It does not disclose that invois_id=0 creates a new invoice or other behavioral details about what gets modified or destroyed.
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?
Single sentence, front-loaded with purpose. It is concise but includes a Georgian translation which adds length without additional value for an English-speaking AI 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?
Despite high schema coverage, the description lacks context about return values, side effects, prerequisites, or the invoice system. For a destructive tool with 5 required parameters and many siblings, more completeness is needed.
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 all parameters are documented in the schema. The description adds no extra meaning beyond what is already in the parameter descriptions, so it meets 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?
Description states 'Save/create a tax invoice with comment', clearly indicating verb+resource+modifier. The phrase 'with comment' hints at differentiation from sibling tools like save_invoice, but does not explicitly distinguish them.
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?
No guidance on when to use this tool versus alternatives (e.g., save_invoice without comment, save_invoice_a). The description does not state prerequisites or context for using this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_invoice_requestCDestructive
Create an invoice issuance reminder for seller (შეხსენების შენახვა)
| Name | Required | Description | Default |
|---|---|---|---|
| dt | Yes | Date (YYYY-MM-DDTHH:mm:ss) | |
| notes | No | Comment/note | |
| inv_id | Yes | Invoice request ID, pass 0 for new | |
| bayer_un_id | Yes | Buyer taxpayer unique ID | |
| overhead_no | No | Waybill number | |
| seller_un_id | Yes | Seller taxpayer unique ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, but description only says 'Create', which typically implies non-destructive. The description also fails to mention that the tool can update existing requests (via non-zero inv_id). This contradicts annotations and omits important behavioral traits.
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?
Description is short (one sentence) but includes a Georgian translation that adds no value for most users. It could be more concise and front-load the key action.
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?
No output schema, and description does not explain return values or behavior (e.g., what happens on success/failure, whether it is idempotent). For a tool with 6 parameters and destructive nature, more context is needed.
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 all parameters are documented in the schema. Description adds no additional meaning beyond 'reminder' concept, which is already vague. Baseline score due to high schema 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?
Description states 'Create an invoice issuance reminder for seller', which gives a verb and resource. However, the term 'reminder' may be misleading; the tool actually saves an invoice request (create or update). It does not distinguish from sibling save tools like save_invoice.
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?
No guidance on when to use this tool versus alternatives such as save_invoice, del_invoice_request, etc. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_ntos_invoices_inv_nosCDestructive
Link a waybill to an invoice (ზედნადების მიბმა ანგარიშ-ფაქტურაზე)
| Name | Required | Description | Default |
|---|---|---|---|
| invois_id | Yes | Invoice unique ID | |
| overhead_dt | Yes | Waybill date (YYYY-MM-DDTHH:mm:ss) | |
| overhead_no | Yes | Waybill number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, but the description adds no clarification on what gets destroyed or changed. The word 'link' implies a non-destructive operation, creating 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 extremely short, which aids conciseness, but it lacks structure or any additional explanatory sentences. It could benefit from more context without being verbose.
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?
Without an output schema and with a destructive annotation, the description should explain what happens on linking (e.g., side effects, return behavior). It fails to provide a complete picture for a tool with three required 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 description coverage is 100%, so the schema fully documents each parameter. The tool description adds no additional semantic value 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 clearly states the tool links a waybill to an invoice, with a specific verb and resources. It is distinct from siblings like delete_ntos_invoices_inv_nos, but lacks explicit differentiation or mention of the relationship being created.
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?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or conditions. The description gives no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_waybillBDestructive
Create or update a waybill (ზედნადების შექმნა/რედაქტირება). Builds the full WAYBILL XML from structured input.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Waybill ID, 0 or omit for new | |
| type | Yes | Waybill type (1=inner, 2=transportation, 3=without transport, 4=distribution, 5=return, 6=sub-waybill) | |
| is_med | No | 0=normal, 1=medicine | |
| par_id | No | Parent waybill ID (for sub-waybills) | |
| status | Yes | Status: 0=saved, 1=active, 2=closed | |
| comment | No | Comment | |
| category | No | Category: 0=normal, 1=wood | |
| trans_id | Yes | Transport type ID from get_trans_types | |
| buyer_tin | Yes | Buyer TIN (taxpayer identification number) | |
| trans_txt | No | Transport type text (when trans_id=other) | |
| begin_date | Yes | Transport start date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss) | |
| buyer_name | Yes | Buyer name | |
| car_number | No | Vehicle plate number | |
| driver_tin | Yes | Driver personal number | |
| goods_list | Yes | Goods/items list (at least one item) | |
| driver_name | Yes | Driver full name | |
| end_address | Yes | Unloading/end address | |
| seler_un_id | Yes | Seller unique ID (from get_un_id) | |
| sub_waybills | No | Sub-waybill references | |
| delivery_date | No | Delivery date (YYYY-MM-DD) | |
| receiver_info | No | Receiver info | |
| start_address | Yes | Loading/start address | |
| chek_buyer_tin | No | 1=Georgian TIN, 0=foreign ID | |
| reception_info | No | Reception info | |
| waybill_number | No | Waybill number (assigned on activation) | |
| wood_docs_list | No | Wood documents (for category=1) | |
| chek_driver_tin | No | 1=Georgian TIN, 0=foreign ID | |
| tran_cost_payer | No | Transport cost payer: 1=buyer, 2=seller, 3=other | |
| transport_coast | No | Transport cost |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description confirms modification ('Create or update') and adds that it builds XML, but does not disclose additional behavioral traits like required permissions, idempotency, or side effects. Acceptable but minimal added value.
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 (two sentences) with no wasted words. However, it lacks structural elements like a summary of required fields or usage context, which could improve clarity.
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 complexity (29 parameters, 12 required, no output schema), the description is too sparse. It does not mention return values, error handling, or prerequisites, leaving significant gaps for the 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%, so the schema already documents all 29 parameters. The description adds no extra meaning beyond stating that the tool builds XML. Baseline 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 action ('Create or update a waybill') and the resource, including a foreign language equivalent, making it specific. It distinguishes from sibling tools like get_waybill or del_waybill by focusing on the create/update action.
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 (e.g., close_waybill, send_waybill) or when to create vs update. No usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_waybillADestructive
Activate a saved waybill — sets status to active and assigns a waybill number (ზედნადების გააქტიურება)
| Name | Required | Description | Default |
|---|---|---|---|
| waybill_id | Yes | Waybill ID to activate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the agent knows it's a mutation. The description adds that it changes status to active and assigns a number, providing concrete behavioral effects beyond the annotation. It does not mention reversibility, permissions, or failure modes, but the core behavior is well described.
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, front-loaded sentence conveys the purpose and effects efficiently. The parenthetical translation adds value for context. No redundant or 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?
Given the simple tool (one parameter, no output schema) and the context of many sibling tools, the description is nearly complete. It states the prerequisite ('saved waybill') and the outcome. Slightly more detail on prerequisites or what happens if the waybill is not saved would be ideal, but it is still adequate.
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 provides a description for the only parameter ('Waybill ID to activate'), covering 100% of parameters. The tool description does not add new semantics beyond the schema, so baseline 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 action ('Activate a saved waybill') and the specific effects ('sets status to active and assigns a waybill number'). It distinguishes the tool from siblings like save_waybill, close_waybill, and del_waybill by focusing on activation.
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 the waybill must be 'saved' before activation but does not explicitly state when to use this tool versus alternatives (e.g., send_waybill_vd, confirm_waybill). No guidance on when not to use or what prerequisites are required beyond the waybill being saved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_waybill_vdBDestructive
Activate a saved waybill with a specific begin date (ზედნადების გააქტიურება თარიღით)
| Name | Required | Description | Default |
|---|---|---|---|
| begin_date | Yes | Transport begin date (YYYY-MM-DDTHH:mm:ss) | |
| waybill_id | Yes | Waybill ID to activate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description adds no extra behavioral context beyond stating 'activate'. It does not explain side effects, auth requirements, or what happens to the waybill's state.
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?
Extremely concise single sentence with no wasted words. Efficiently conveys the core action.
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?
Minimally adequate for a simple 2-parameter tool with annotations. Lacks context about prerequisites or post-conditions, but the schema covers 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% with concise descriptions for both parameters. The description only mentions 'specific begin date' but adds no new meaning 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 clearly states the tool activates a saved waybill with a begin date. The verb 'activate' and resource 'waybill' are specific, but it does not differentiate from sibling tools like 'send_waybill' or 'confirm_waybill'.
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?
No guidance on when to use this tool versus alternatives, such as 'send_waybill' or 'close_waybill'. No preconditions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_customs_warehouse_exitCDestructive
Register customs warehouse exit (საბაჟო საწყობიდან გასვლის რეგისტრაცია)
| Name | Required | Description | Default |
|---|---|---|---|
| car_number | Yes | Vehicle plate number | |
| customs_code | Yes | Customs office code | |
| declaration_number | Yes | Customs declaration number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, but the description adds no additional behavioral details such as irreversibility, permissions, or side effects. The term 'register' is vague.
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 sentence with a redundant Georgian translation. It is concise but could be more efficient by removing the translation.
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?
No output schema is provided, and the description does not mention return values or post-conditions. For a potentially destructive operation, more context is needed.
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 covers 100% of parameters with descriptions, so the description adds no extra meaning. Baseline 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 action 'Register customs warehouse exit' with a specific verb and resource. While siblings are numerous, none directly mention warehouse exit registration, so the purpose is distinct.
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?
No explicit guidance on when or when not to use this tool, nor any mention of alternatives. The description lacks context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_cargo200_infoCRead-only
Get cargo 200 customs information for a date range (ტვირთი 200 საბაჟო ინფორმაცია)
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | End date (YYYY-MM-DDTHH:mm:ss) | |
| start_date | Yes | Start date (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is safe. The description adds no extra behavioral context, such as return format, pagination, or rate limits.
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 sentence that is concise and front-loaded with the essential action and resource. No wasted 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?
The tool has no output schema, and the description fails to describe what data is returned or any other relevant context. Given the low complexity, this is a notable gap.
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% with clear descriptions for both parameters. The description adds no additional meaning beyond the schema, earning the baseline 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 clearly states the verb 'Get' and the resource 'cargo 200 customs information', and specifies the date range scope. It is distinct among many sibling 'get' tools, though it doesn't explicitly differentiate from similar customs 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?
No guidance is provided on when to use this tool vs alternatives, nor any prerequisites or limitations. The description is purely functional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_comp_act_newARead-only
Get comparison act in new format -- tax balances, markups, penalties (შედარების აქტი ახალი ფორმატით)
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | End date (YYYY-MM-DDTHH:mm:ss) | |
| said_code | Yes | Taxpayer identification code | |
| start_date | Yes | Start date (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's safe. The description adds content details (tax balances, markups, penalties) but no additional behavioral traits like authentication needs or return format.
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 (English and Georgian) with front-loaded action and no wasted words. Every sentence adds value.
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 read-only retrieval tool with three parameters and no output schema, the description lists the key data components (tax balances, markups, penalties) but does not specify output format or pagination. It is adequate but could provide more structure details.
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%, with clear descriptions for each parameter (said_code, start_date, end_date). The description does not add meaning beyond what the schema provides, so baseline score of 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 clearly states the tool retrieves a comparison act in a new format, listing contents (tax balances, markups, penalties). It distinguishes from the sibling 'tax_get_comp_act_old' by specifying 'new format'.
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 new format comparisons via 'new format' and sibling 'old' tool, providing clear differentiation but no explicit when-to-use or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_comp_act_oldARead-only
Get comparison act in old format -- DESC + 11 data columns (შედარების აქტი ძველი ფორმატით)
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | End date (YYYY-MM-DDTHH:mm:ss) | |
| said_code | Yes | Taxpayer identification code | |
| session_id | No | Session ID from previous call (optional) | |
| start_date | Yes | Start date (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so the tool is clearly a safe read operation. The description adds that the output includes 'DESC + 11 data columns', providing some output structure context beyond annotations. However, it does not elaborate on other behavioral aspects like rate limits or authorization.
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 sentence with a parenthetical translation, which is concise and front-loaded with the core purpose. No unnecessary words, but it could be slightly more structured by separating the output format hint.
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 output schema, the description mentions 'DESC + 11 data columns' to hint at output structure. However, it lacks details on potential error conditions, pagination, or usage constraints, making it minimally adequate for a simple read 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 covers all 4 parameters with descriptions (100% coverage), so the description does not need to add parameter details. However, the description does not provide any additional semantics beyond what the schema already offers, such as constraints or relationships.
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 'Get comparison act in old format' with additional detail 'DESC + 11 data columns', providing a specific verb and resource. It also includes a Georgian translation, aiding clarity. The sibling 'tax_get_comp_act_new' is distinct, so purpose is well-defined.
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 there is a new format version via the name 'old format', but it does not explicitly state when to use this tool versus alternatives like 'tax_get_comp_act_new'. No usage context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_income_amountBRead-only
Get joint/total income amount for a given year (ერთობლივი შემოსავლის თანხა წლის მიხედვით)
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year to query (e.g. 2025) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds no behavioral context beyond that, such as response format, potential null values, or data source.
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?
Extremely concise: one line with essential information. Front-loaded with verb and resource, no unnecessary 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?
Missing information about return type, what constitutes 'joint/total income', and how it relates to other tax income tools. Output schema is absent, so description should compensate but doesn't.
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% with a clear description for the single parameter 'year'. The tool description adds no additional meaning beyond what is in the schema, so baseline score 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 uses a specific verb 'Get' and identifies the resource as 'joint/total income amount' with a clear condition 'for a given year'. It distinguishes well from siblings like tax_get_person_income_data by specifying 'joint/total'.
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?
No guidance on when to use this tool versus alternatives, or any context about prerequisites or limitations. The description is purely declarative without usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_legal_person_infoBRead-only
Get legal entity details -- name, form, address, status, responsible persons (იურიდიული პირის ინფორმაცია)
| Name | Required | Description | Default |
|---|---|---|---|
| said_code | Yes | Legal entity identification code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds value by enumerating returned fields, but does not disclose behavioral traits like authentication needs, rate limits, or response size limitations.
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 sentence listing key details and includes a Georgian translation for local context. It is front-loaded and contains no unnecessary words, though the translation adds slight 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 simple tool (one parameter, no output schema, no nested objects), the description adequately lists returned fields. However, it lacks information on possible errors, return format, or behavior when the code is invalid, which would improve completeness.
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% with a single parameter (said_code) described as 'Legal entity identification code'. The description does not add extra meaning, format hints, or examples beyond the schema, meeting the baseline for high 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 clearly states the tool retrieves legal entity details and lists specific fields (name, form, address, status, responsible persons). While it distinguishes itself from many sibling 'get_' tools by focusing on legal persons, it does not explicitly differentiate from closely related tools like tax_get_payer_info.
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?
No explicit guidance on when to use this tool versus alternatives. The description implies it's for legal entities, but no when-not or alternative tools are mentioned, leaving the agent to infer from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_payer_infoBRead-only
Get comprehensive payer info -- status, declarations, waybills, cash box, customs (გადამხდელის სრული ინფორმაცია)
| Name | Required | Description | Default |
|---|---|---|---|
| said_code | Yes | Taxpayer identification code (TIN) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by listing the categories of info retrieved. However, it does not disclose additional behavioral traits such as rate limits or potential errors.
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 sentence that covers the key points, but includes non-English text in parentheses that may be noise. Overall efficient.
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 one parameter, no output schema, and safe annotations, the description lists the data categories returned. However, it lacks details on output structure or format, which would be helpful for 'comprehensive' data.
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% with the said_code parameter described as 'Taxpayer identification code (TIN)'. The description does not add further formatting or validation details 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 clearly states the tool retrieves comprehensive payer info and lists specific categories (status, declarations, waybills, cash box, customs). While it doesn't explicitly differentiate from sibling tools like tax_get_legal_person_info or tax_get_payer_info_gita, the scope is specific enough to be useful.
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?
No guidance is provided on when to use this tool versus the many sibling tools. There is no mention of prerequisites, context, or restrictions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_payer_info_gitaBRead-only
Get GITA payer info with financial data -- salary, VAT, income, earnings declarations (GITA გადამხდელის ინფორმაცია)
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | Period end date (YYYY-MM-DD) | |
| payer_code | Yes | Taxpayer identification code | |
| start_date | Yes | Period start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds no further behavioral context. No mention of authorization, rate limits, or additional side effects beyond 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 description is a single, focused sentence with the key purpose and examples. No wasted words, front-loaded effectively.
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 no output schema or response format description, the agent is left guessing about the returned data structure. The description mentions financial data but lacks completeness for a tool with three required 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 description coverage is 100%, and the description adds no extra meaning beyond the schema's parameter descriptions. Baseline 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 retrieves GITA payer info with financial data, specifying the resource and verb. However, it does not explicitly differentiate from sibling 'tax_get_payer_info' which might be more general, but the 'GITA' prefix provides some 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?
No explicit guidance on when to use this tool versus alternatives like 'tax_get_payer_info' or 'tax_get_payer_nace_info'. The description assumes the agent knows GITA context, but no when-not-to-use or alternative mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_payer_nace_infoARead-only
Get NACE activity codes for a taxpayer (გადამხდელის NACE კოდები)
| Name | Required | Description | Default |
|---|---|---|---|
| said_code | Yes | Taxpayer identification code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, confirming a safe read operation. The description adds that it retrieves NACE activity codes, offering useful context on data type, but does not disclose additional behaviors (e.g., rate limits, authentication requirements). The bar is lower due to annotations, and the description adds moderate value.
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 that communicates the core purpose efficiently. It includes both English and Georgian text, but every word serves to clarify the tool's function without 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 lookup tool with one parameter and no output schema, the description states what the tool does and what input is needed. However, it lacks details about the output structure or format of the NACE codes, which would help an agent fully understand the return value. Given the tool's simplicity, it is minimally complete but could be improved.
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% with the single required parameter 'said_code' described as 'Taxpayer identification code'. The description does not add any additional meaning or detail beyond what the schema provides, 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 it retrieves NACE activity codes for a taxpayer, using a specific verb ('Get') and resource ('NACE activity codes'). The tool name and description together distinguish it from sibling tools like tax_get_payer_info, making its purpose 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 implies usage when NACE codes are needed, but it does not explicitly state when to use this tool versus alternatives, nor does it provide context or exclusions. The purpose is clear but usage guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_person_income_dataBRead-only
Get person income data -- yearly/monthly amounts, category (ფიზიკური პირის შემოსავლის მონაცემები)
| Name | Required | Description | Default |
|---|---|---|---|
| personal_number | Yes | Personal identification number (პირადი ნომერი) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds that the data includes 'yearly/monthly amounts, category', which provides minor behavioral context but does not expand significantly beyond the 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 a single concise sentence with a dash, including Georgian text. It is appropriately front-loaded and has no wasted words, though the Georgian text may be unnecessary for an English interface.
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 mentions 'yearly/monthly amounts, category' but does not fully explain the return structure or format. Given no output schema, more detail would be beneficial for complete understanding.
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% with a single parameter 'personal_number' described as 'Personal identification number'. The description does not add further meaning, so it meets the baseline of 3 for high 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 clearly states the tool retrieves person income data and specifies 'yearly/monthly amounts, category'. The verb 'Get' and resource 'person income data' are specific. While it doesn't explicitly distinguish from siblings like 'tax_get_income_amount', the name and scope are sufficiently unique.
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?
No guidance is provided on when to use this tool versus alternatives, such as 'tax_get_income_amount'. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_quick_cash_infoBRead-only
Get financial dashboard -- income/VAT declarations, comparison card, salary/waybill/invoice monthly (სწრაფი ფინანსური მიმოხილვა)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read operation. The description adds behavioral context by listing the dashboard's contents (income/VAT declarations, comparison card, etc.), but does not disclose additional traits like response size, pagination, or potential latency. With annotations covering the safety profile, the description provides moderate added value.
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 sentence that front-loads the main action and then lists key elements. It is appropriately sized for a simple read-only dashboard tool. The inclusion of Georgian text adds length but is a translation; overall, it is concise 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?
Given the tool is read-only with no parameters and no output schema, the description provides a reasonable overview of the dashboard contents. However, it lacks details on the output format, structure, or how the data is presented, which would help an agent interpret the response. More completeness on the expected return value could improve usability.
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, and schema description coverage is effectively 100% (no properties). Per guidelines, baseline is 3 when coverage is high. The description adds no parameter semantics as there are none to describe. This score reflects adequate handling given the parameterless nature.
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 'Get financial dashboard' and lists specific elements (income/VAT declarations, comparison card, salary/waybill/invoice monthly), making the purpose clear. However, the term 'financial dashboard' is somewhat generic and could be more precise, and the inclusion of Georgian text may not aid English-speaking agents. It distinguishes from siblings by indicating aggregation, but not sharply.
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?
There is no guidance on when to use this tool versus the many individual get_ tools (e.g., tax_get_income_amount, tax_get_waybill_month_amount). The description does not specify any prerequisites, context, or exclusion criteria, leaving the agent to infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_tp_contactsARead-only
Get taxpayer invoice/waybill contact info -- phone, email (გადამხდელის საკონტაქტო ინფორმაცია)
| Name | Required | Description | Default |
|---|---|---|---|
| tp_code | Yes | Taxpayer identification code (TIN) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds no behavioral context beyond the fact that it retrieves contact info. No details on error handling, rate limits, or authentication are provided, but annotations suffice for basic 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 description is a single, front-loaded sentence with a parenthetical translation. It contains no extraneous words and efficiently communicates the tool's purpose.
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 simplicity (one parameter, read-only, no output schema), the description is largely sufficient. It mentions the fields returned (phone, email), though it does not specify the exact structure of the response. For a simple lookup, this is acceptable but could include a note about the output format.
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% with a clear description for tp_code. The description does not add additional meaning beyond the schema; it only states the purpose of the tool, which is already clear. Baseline 3 applies as the schema does the heavy lifting.
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 verb 'Get' and the resource 'taxpayer invoice/waybill contact info', specifying the fields (phone, email). This distinguishes it from sibling tools like get_name_from_tin or tax_get_legal_person_info, which focus on other types of taxpayer data.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, limitations, or specific use cases. Agents must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_tp_info_publicARead-only
Get public taxpayer info by TIN -- name, legal form, status, VAT, address (გადამხდელის საჯარო ინფორმაცია)
| Name | Required | Description | Default |
|---|---|---|---|
| tp_code | Yes | Taxpayer identification code (TIN / საიდენტიფიკაციო კოდი) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the info is 'public', reinforcing the read-only nature, but does not disclose additional behavioral traits like rate limits or authentication requirements. With annotations present, the bar is lower, and the description adds minimal extra context.
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 sentence of 12 words, front-loaded with the action and resource. Every word is meaningful, with no filler or redundancy. It is efficiently structured for quick parsing.
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 tool with one parameter and no output schema, the description adequately explains what the tool returns and its purpose. It does not detail the return format or pagination, but for a public info lookup, this level of completeness is sufficient. A slightly richer description of the output structure could improve it, but it is not essential.
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 input schema fully describes the single parameter 'tp_code'. The description does not add any additional semantic meaning beyond what the schema already provides. According to the rule for high schema coverage, baseline is 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 clearly states the verb 'Get', the resource 'public taxpayer info', and specifies the data fields returned (name, legal form, status, VAT, address). It distinguishes itself from sibling tools like 'get_name_from_tin' and 'tax_get_legal_person_info' by emphasizing 'public' info by TIN.
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?
No explicit guidance on when to use this tool versus alternatives. The description implies it's for basic public info, but does not mention exclusions or when not to use it. Sibling tool names provide some implicit differentiation, but the description lacks direct usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_waybill_month_amountARead-only
Get monthly waybill amounts by TIN and date range (ზედნადების თვიური თანხები)
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | End date (YYYY-MM-DDTHH:mm:ss) | |
| said_code | Yes | Taxpayer identification code | |
| start_date | Yes | Start date (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's behavioral addition is minimal. It adds context about monthly aggregation but doesn't elaborate on return format, edge cases, or limitations. With annotations covering safety, a 3 is appropriate.
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 front-loaded sentence that conveys the tool's purpose with zero wasted words. Perfectly concise.
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 sufficient for a simple retrieval tool with clear parameters and annotations, but it omits return value details (expected to be monetary amounts). Still, given the lack of output schema, a bit more context would be ideal, but it's largely 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?
Schema coverage is 100% with descriptions for all three parameters (said_code, start_date, end_date). The description adds no extra parameter-level meaning beyond what the schema provides, so baseline 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 clearly states 'Get monthly waybill amounts by TIN and date range', using a specific verb and resource that distinguishes it from sibling tools like get_waybill (individual waybills) and get_waybills (list of waybills).
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 aggregated monthly amounts but does not explicitly specify when to use or not use this tool versus alternatives like get_waybills_ex or get_buyer_waybills. No exclusion criteria or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_z_report_detailsARead-only
Get Z-report per-device details -- device number, date, quantity, amounts (Z-ანგარიშის დეტალები)
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | End date (YYYY-MM-DDTHH:mm:ss) | |
| start_date | Yes | Start date (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. Description adds the behavioral context of per-device detail retrieval but does not disclose any additional restrictions or 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?
Compact description in two segments, but the Georgian translation in parentheses is redundant for English readers. Still, it is front-loaded and efficient.
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 retrieval tool with 2 parameters and no output schema, the description lists the fields returned, which is sufficient context. Could mention it returns a list.
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% for both parameters. The description only mentions 'date' generically, adding no extra meaning beyond the schema. 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?
Description clearly states it retrieves Z-report per-device details and lists specific fields (device number, date, quantity, amounts). This distinguishes it from siblings like tax_get_z_report_sum which provides summary totals.
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?
No guidance on when to use this tool versus alternatives. Does not mention that for summary totals one should use tax_get_z_report_sum or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_get_z_report_sumBRead-only
Get Z-report cash register totals for a date range (საკონტროლო-სალარო აპარატის Z-ანგარიშის ჯამი)
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | End date (YYYY-MM-DDTHH:mm:ss) | |
| start_date | Yes | Start date (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description's only added behavioral context is 'totals' – minimal. No mention of pagination, rate limits, or other behaviors.
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?
Very short single sentence, but includes redundant Georgian text alongside English. Could be more efficient by removing the duplicate phrase.
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?
No output schema, and the description does not explain what 'totals' includes (e.g., sales count, amount). For a summary tool, the return format should be hinted to complete the picture.
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% with both parameters documented. The description adds no additional meaning beyond the schema's 'start date' and 'end date' with format hints – baseline score 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 fetches Z-report cash register totals for a date range, with a specific verb ('Get') and resource. It distinguishes from sibling 'tax_get_z_report_details' by focusing on summary totals.
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?
No explicit guidance on when to use this vs alternatives like 'tax_get_z_report_details'. The purpose is implied from the name and description, but no when-not-to-use or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_gita_payer_activationCDestructive
Activate GITA payer info access after SMS verification (GITA გადამხდელის ინფორმაციაზე წვდომის აქტივაცია)
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Activation status (1=activate, 0=deactivate) | |
| payer_code | Yes | Taxpayer identification code | |
| start_date | Yes | Activation start date (YYYY-MM-DDTHH:mm:ss) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description's mention of 'activation' aligns but adds little value. It does not disclose other behavioral traits such as side effects, idempotency, or prerequisites beyond SMS verification. The description provides minimal additional transparency beyond the 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 a single sentence, concise, and front-loaded with the action. The inclusion of the Georgian translation is potentially redundant but not harmful. However, the lack of mention of deactivation is a minor oversight. Overall, efficient but could be more precise.
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 destructive tool with no output schema and a moderate number of parameters, the description is too brief. It does not cover prerequisites, return values, or edge cases. Given the complexity and many sibling tools, more contextual information is needed for a complete understanding.
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 baseline is 3. The tool description does not add any extra meaning or context to the parameters beyond what is already in the schema. No parameter-specific guidance is given in the description.
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 verb 'Activate' and the resource 'GITA payer info access', and adds context 'after SMS verification'. However, it fails to mention that the tool can also deactivate (status=0), which is a notable omission given the schema allows both activation and deactivation.
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 after SMS verification but does not explicitly state when to use this tool versus alternatives like 'tax_gita_sms_verification' or 'tax_payer_info_activation'. No when-not or exclusion criteria are provided, which is inadequate given the large number of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_gita_sms_verificationBRead-only
Verify SMS code for GITA payer info 2-step auth (SMS კოდის ვერიფიკაცია GITA ინფორმაციისთვის)
| Name | Required | Description | Default |
|---|---|---|---|
| sms_code | Yes | SMS verification code received on phone | |
| payer_code | Yes | Taxpayer identification code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds no further behavioral context; it simply restates the tool's purpose without elaboration.
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 sentence with minimal overhead. It includes a Georgian translation in parentheses but remains concise 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?
Given the tool's simplicity and complete schema annotations, the description is adequate. However, it lacks information about the return value (e.g., success/failure) or any side effects, which would be helpful for a verification 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?
Schema coverage is 100% with both parameters (payer_code, sms_code) having descriptions in the input schema. The tool description adds no meaning beyond what the schema already 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 states 'Verify SMS code for GITA payer info 2-step auth' clearly indicating the verb and resource. However, it does not explicitly differentiate from sibling tools like tax_gita_payer_activation or tax_tp_sms_verification, relying on the name for 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?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., having sent the SMS) or exclude use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_payer_info_activationBDestructive
Activate or deactivate payer info access after SMS verification (გადამხდელის ინფორმაციაზე წვდომის აქტივაცია/დეაქტივაცია)
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Activation status (1=activate, 0=deactivate) | |
| said_code | Yes | Taxpayer identification code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutability (destructiveHint=true, readOnlyHint=false). The description adds the SMS verification step but does not elaborate on side effects, permissions, or reversibility. There is no contradiction with 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 short (two sentences) but includes a Georgian translation that may be redundant for English users. Information is front-loaded in English.
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 only two parameters and clear schema, the description is adequate but does not explain what 'payer info access' entails or state potential errors. No output schema exists, but the tool's purpose is straightforward.
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 adds no new parameter info. The mention of 'activate/deactivate' aligns with status values, but this is already in 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 clearly states the action (activate/deactivate) and the resource (payer info access), and mentions the prerequisite (after SMS verification). However, it does not differentiate from similar sibling tools like tax_gita_payer_activation.
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 after SMS verification but provides no explicit guidance on when to use this tool versus alternatives, nor any conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_tp_sms_verificationCRead-only
Verify SMS code for standard payer info 2-step auth (SMS კოდის ვერიფიკაცია გადამხდელის ინფორმაციისთვის)
| Name | Required | Description | Default |
|---|---|---|---|
| sms_code | Yes | SMS verification code received on phone | |
| said_code | Yes | Taxpayer identification code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Verify SMS code', implying a state change (write operation), but annotations set readOnlyHint: true, indicating it is a read operation. This is a direct contradiction. No additional behavioral context is given beyond the 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 a single sentence with a Georgian translation, concise and front-loaded. No wasted words, but could include more useful information per its purpose.
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 has only two parameters, no output schema, and annotations that contradict the description, the description is not complete. It lacks behavioral transparency and usage guidance, making it inadequate for an agent to use correctly.
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%, with descriptions for both parameters. The description does not add any additional meaning beyond what is already in the schema. Baseline of 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 clearly states the tool verifies an SMS code for 2-step authentication related to payer info. The action (verify) and resource (SMS code for payer info) are specific, and it distinguishes from sibling tools like 'tax_gita_sms_verification' by specifying 'standard payer info'.
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?
No guidance on when to use this tool vs alternatives. It does not mention prerequisites, exclusions, or scenarios where other tools should be used. The sibling tools include similar verification/activation tools, but no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Many tools have overlapping purposes, such as multiple ways to list invoices and waybills (e.g., get_buyer_invoices, get_seller_invoices, get_user_invoices). The ntos_* tools duplicate lookup functionality, and the mix of Georgian/English descriptions adds ambiguity.
Most tools follow a verb_noun snake_case pattern (save_invoice, get_waybill), but there are inconsistencies: some start with 'tax_', 'ntos_', or 'acsept_' (typo), and 'k_invoice' lacks a verb. Overall pattern is recognizable but not uniform.
With 87 tools, the server is overly large. Many tools are slight variations (e.g., four waybill listing tools) that could be consolidated. The scope is broad but could be pruned significantly without losing functionality.
The server covers a wide range of operations for invoices, waybills, taxpayer info, customs, and Z-reports. CRUD operations are mostly present, though some missing user management and invoice editing. The domain is well-covered overall.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted MCP server for Mini Accountant: invoices, expenses, customers, analytics, tax estimates.
MCP server for Codat — companies, connections, invoices, bills and financial statements.
MCP server for Quaderno — tax-rate calculation, invoices, contacts, products, receipts & expenses.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables natural language queries for Georgian tax system waybills through the RS.ge SOAP API. Supports waybill retrieval by date range, company TIN lookups, and access to tax system dictionaries.5
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes tools for Taiwan's ezPay e-invoice lifecycle, enabling AI assistants to issue, void, and query invoices and allowances through the standard MCP protocol.1MIT
- AlicenseAqualityCmaintenanceMCP server for creating and fiscalizing invoices via solo.com.hr API. Enables AI agents to generate invoices, retrieve invoice details, list invoices, and check next invoice number.4MIT
- AlicenseAqualityAmaintenanceLocal MCP server for TOCOnline accounting/invoicing API that enables AI assistants to manage customers, products, sales documents, and call arbitrary endpoints via natural language after OAuth login.671MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Parsa-29/rs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server