Skip to main content
Glama
Parsa-29
by Parsa-29

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 agents

  • Claude Skillskills/rs-ge/ folder, upload to Claude.ai or Claude Code to teach Claude how to use the tools

Services covered:

Service

Endpoint

Tools

WayBill

services.rs.ge/WayBillService/WayBillService.asmx

24

Invoice (NTOS)

revenue.mof.ge/ntosservice/ntosservice.asmx

40

TaxPayer

services.rs.ge/taxservice/taxpayerservice.asmx

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 (--yes to 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 install

2. Configure environment

Copy the example file and fill in your credentials:

cp .env.example .env

Edit .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.asmx

See Environment Variables for details on each variable.

3. Build

npm run build

This 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 start manually during normal use. Your MCP client spawns the server process itself. After making changes, rebuild with npm run build and 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 --pretty

Or install globally and use rs-cli directly:

npm install -g .
rs-cli reference waybill-types

All commands output JSON. Use --pretty to force formatted output (auto-enabled on TTY).

Global flags:

Flag

Short

Description

--yes

-y

Skip [y/N] prompt on destructive operations

--pretty

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:

  1. Zip the skills/rs-ge/ folder

  2. Go 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

RS_SU

Yes

Service username in username:TIN format

myuser:123456789

RS_SP

Yes

Service password

MyPassword123

RS_BASE_URL

No

WayBill SOAP endpoint (has default)

https://services.rs.ge/WayBillService/WayBillService.asmx

RS_INVOICE_URL

No

Invoice/NTOS SOAP endpoint (has default)

https://www.revenue.mof.ge/ntosservice/ntosservice.asmx

RS_USER_ID

Yes

Your e-declaration user ID (for invoice tools). Use ntos_get_un_id_from_user_id to find it.

135184

RS_TAX_URL

No

TaxPayer SOAP endpoint (has default)

https://services.rs.ge/taxservice/taxpayerservice.asmx

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.ts

Architecture

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:

  1. MCP client sends a tool call via stdio

  2. Read-only tools call SOAP directly and return JSON

  3. Destructive tools queue the action (HITL), return a preview, wait for confirm_action

Data flow — CLI:

  1. User runs rs-cli <domain> <action> [flags]

  2. Read-only commands call SOAP and print JSON

  3. 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_action requires confirmation_text: "CONFIRM" -- the AI cannot auto-confirm

  • Use reject_action to cancel a queued action

  • Use list_pending_actions to see all actions awaiting confirmation

HITL tools

Tool

Description

confirm_action

Execute a queued destructive action (requires explicit user approval)

reject_action

Cancel a queued destructive action

list_pending_actions

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

get_waybill_types

List all waybill types

get_waybill_units

List all measurement units

get_trans_types

List all transport types

get_akciz_codes

List all excise/akciz codes

get_wood_types

List all wood types


WayBill Read (6 tools)

Query and filter waybills. All read-only.

Tool

Description

Key Parameters

get_waybill

Get a single waybill by ID

waybill_id

get_waybills

List seller waybills with filters

types, buyer_tin, statuses, create_date_s/e, begin_date_s/e

get_buyer_waybills

List buyer waybills with filters

types, seller_tin, statuses, create_date_s/e, begin_date_s/e

get_waybills_v1

List waybills by last-update date range (max 3-day span)

last_update_date_s, last_update_date_e, buyer_tin

get_waybills_ex

Seller waybills with confirmation filter

Same as get_waybills + is_confirmed (0/1/-1)

get_buyer_waybills_ex

Buyer waybills with confirmation filter

Same as get_buyer_waybills + is_confirmed (0/1/-1)

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

save_waybill

Create or update a waybill

type, buyer_tin, buyer_name, start_address, end_address, driver_tin, driver_name, goods_list[], trans_id, begin_date, status

send_waybill

Activate a saved waybill

waybill_id

send_waybill_vd

Activate with a specific begin date

waybill_id, begin_date

confirm_waybill

Buyer confirms receipt of goods

waybill_id

reject_waybill

Buyer rejects a waybill

waybill_id

close_waybill

Close/complete a waybill

waybill_id

close_waybill_vd

Close with a specific delivery date

waybill_id, delivery_date

del_waybill

Delete a saved (not yet activated) waybill

waybill_id

ref_waybill

Cancel an active waybill

waybill_id

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

get_name_from_tin

Look up a taxpayer name by TIN

tin

get_error_codes

List all waybill error codes

(none)

chek_service_user

Verify service user credentials

(none)

get_service_users

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

save_invoice

Write

Save/create a tax invoice

invois_id (0=new), operation_date, seller_un_id, buyer_un_id

save_invoice_n

Write

Save/create with comment

Same + note

save_invoice_a

Write

Save/create advance/compensation invoice

Same as save_invoice

get_invoice

Read

Get a single invoice by ID

invois_id

change_invoice_status

Write

Change invoice status

inv_id, status

acsept_invoice_status

Write

Accept/confirm an invoice

inv_id, status

ref_invoice_status

Write

Reject an invoice with reason

inv_id, ref_text

k_invoice

Write

Create a correction invoice

inv_id, k_type (1-4)

get_makoreqtirebeli

Read

Get correction invoice ID

inv_id

add_inv_to_decl

Write

Attach invoice to VAT declaration

seq_num, inv_id

get_seq_nums

Read

Get declaration numbers by period

sag_periodi (e.g. "202404")

get_decl_date

Read

Get declaration date

decl_num, un_id

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

get_seller_invoices

List seller-side invoices

un_id, date filters (s_dt/e_dt, op_s_dt/op_e_dt), invoice_no, sa_ident_no

get_buyer_invoices

List buyer-side invoices

Same as above

get_user_invoices

List by last-update date (max 3-day span)

un_id, last_update_date_s/e

get_seller_invoices_r

Seller invoices needing reaction

un_id, status

get_buyer_invoices_r

Buyer invoices needing reaction

un_id, status

get_invoice_numbers

Autocomplete invoice numbers

un_id, v_invoice_n, v_count

get_invoice_tins

Autocomplete buyer/seller TINs

un_id, v_invoice_t, v_count

get_invoice_d

Autocomplete declaration numbers

un_id, v_invoice_d, v_count

print_invoices

Get invoice data for printing

inv_id


Manage goods line items and waybill links on invoices. 4 destructive + 2 read-only.

Tool

Type

Description

Key Parameters

save_invoice_desc

Write

Save a goods/service line item

invois_id, goods, g_unit, g_number, full_amount, drg_amount

get_invoice_desc

Read

Get all line items for an invoice

invois_id

delete_invoice_desc

Write

Delete a line item

id, inv_id

get_ntos_invoices_inv_nos

Read

Get waybills linked to an invoice

invois_id

save_ntos_invoices_inv_nos

Write

Link a waybill to an invoice

invois_id, overhead_no, overhead_dt

delete_ntos_invoices_inv_nos

Write

Unlink a waybill from an invoice

id, inv_id

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

ntos_get_un_id_from_tin

Read

Get unique ID from TIN

tin

ntos_get_tin_from_un_id

Read

Get TIN from unique ID

un_id

ntos_get_org_name_from_un_id

Read

Get org name from unique ID

un_id

ntos_get_un_id_from_user_id

Read

Get unique ID from e-declaration user ID

(none)

ntos_get_akciz

Read

Search excise/akciz codes

s_text

ntos_chek

Read

Verify NTOS service credentials

(none)

ntos_get_ser_users

Read

List NTOS service users

user_name, user_password

save_invoice_request

Write

Create invoice issuance reminder

inv_id, bayer_un_id, seller_un_id, dt

del_invoice_request

Write

Delete an invoice reminder

inv_id, bayer_un_id

get_invoice_request

Read

Get reminder details

inv_id

acsept_invoice_request_status

Write

Forward invoice request to seller

id, seller_un_id

get_requested_invoices

Read

List requests received by seller

seller_un_id

get_invoice_requests

Read

List requests sent by buyer

bayer_un_id


TaxPayer Info (8 tools)

Query taxpayer information and lookups. All read-only.

Tool

Description

Key Parameters

tax_get_tp_info_public

Public taxpayer info (name, legal form, status, VAT, address)

tp_code

tax_get_tp_contacts

Taxpayer contact info (phone, email)

tp_code

tax_get_payer_info

Comprehensive payer info (status, declarations, waybills, cash box)

said_code

tax_get_legal_person_info

Legal entity details (name, form, address, responsible persons)

said_code

tax_get_person_income_data

Person income data (yearly/monthly amounts)

personal_number

tax_get_payer_nace_info

NACE activity codes for a taxpayer

said_code

tax_get_income_amount

Joint/total income amount for a year

year

tax_get_payer_info_gita

GITA payer info with financial data

payer_code, start_date, end_date

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

tax_get_z_report_sum

Read

Z-report cash register totals

start_date, end_date

tax_get_z_report_details

Read

Z-report per-device details

start_date, end_date

tax_get_waybill_month_amount

Read

Monthly waybill amounts

said_code, start_date, end_date

tax_get_quick_cash_info

Read

Financial dashboard overview

(none)

tax_get_comp_act_old

Read

Comparison act (old format)

said_code, start_date, end_date

tax_get_comp_act_new

Read

Comparison act (new format)

said_code, start_date, end_date

tax_get_cargo200_info

Read

Cargo 200 customs information

start_date, end_date

tax_customs_warehouse_exit

Write

Register customs warehouse exit

declaration_number, customs_code, car_number


TaxPayer Auth (4 tools)

SMS-based 2-step authentication for sensitive TaxPayer operations. 2 read-only + 2 destructive.

Tool

Type

Description

Key Parameters

tax_tp_sms_verification

Read

Verify SMS code for payer info auth

said_code, sms_code

tax_gita_sms_verification

Read

Verify SMS code for GITA payer info auth

payer_code, sms_code

tax_payer_info_activation

Write

Activate/deactivate payer info access

said_code, status (1=activate, 0=deactivate)

tax_gita_payer_activation

Write

Activate GITA payer info access

payer_code, start_date, status


SOAP Services Reference

The server communicates with three rs.ge SOAP endpoints:

WayBill Service

  • Endpoint: https://services.rs.ge/WayBillService/WayBillService.asmx

  • Namespace: http://tempuri.org/

  • Auth: su (username:TIN) and sp (password) auto-injected into every request

  • Client: src/soap/client.ts -- callSoap() and callSoapXml()

Invoice Service (NTOS)

  • Endpoint: https://www.revenue.mof.ge/ntosservice/ntosservice.asmx

  • Namespace: http://tempuri.org/

  • Auth: Same su/sp credentials, plus user_id injected for most methods

  • Client: Same callSoap() with custom baseUrl

TaxPayer Service

  • Endpoint: https://services.rs.ge/taxservice/taxpayerservice.asmx

  • Namespace: services.rs.ge

  • Auth: 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-31

Tech 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

  1. Add to an existing file in src/tools/ (or create a new one)

  2. Use server.tool(name, description, schema, annotations, handler)

  3. Annotations:

    const READONLY = { readOnlyHint: true, destructiveHint: false } as const;
    const DESTRUCTIVE = { readOnlyHint: false, destructiveHint: true } as const;
  4. Destructive tools: use mcpQueueAction() from ../mcp-confirm.js instead of calling SOAP directly

  5. Export register*Tools(server: McpServer) and call it in src/index.ts

Adding a new CLI command

  1. Add to the matching file in src/commands/

  2. Read-only: call SOAP directly and output(result)

  3. Destructive: prompt with confirm() from ../prompt.js, or check flags.yes

  4. Register any new --flag names in the parseArgs options block in src/cli.ts

Adding a new SOAP service

  1. Add endpoint to src/config.ts and .env.example

  2. Create SOAP client in src/soap/ if namespace differs

  3. Add type interfaces in src/types/

  4. Add MCP tools in src/tools/ and CLI commands in src/commands/


License

ISC

Available Tools

87 tools
acsept_invoice_request_statusB
Destructive

Send/forward an invoice request to seller (შეხსენების გადაგზავნა)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesInvoice request unique ID
seller_un_idYesSeller taxpayer unique ID

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_statusB
Destructive

Accept/confirm an invoice (ანგარიშ-ფაქტურის დადასტურება)

ParametersJSON Schema
NameRequiredDescriptionDefault
inv_idYesInvoice unique ID
statusYesStatus to confirm

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_declB
Destructive

Attach an invoice to a VAT declaration (დეკლარაციაზე მიბმა)

ParametersJSON Schema
NameRequiredDescriptionDefault
inv_idYesInvoice unique ID
seq_numYesDeclaration number

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_statusB
Destructive

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inv_idYesInvoice unique ID
statusYesNew status code

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_userA
Read-only

Verify service user credentials and get user info (სერვისის მომხმარებლის შემოწმება)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_waybillB
Destructive

Close/complete a waybill — marks delivery as done (ზედნადების დახურვა)

ParametersJSON Schema
NameRequiredDescriptionDefault
waybill_idYesWaybill ID to close

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_vdA
Destructive

Close/complete a waybill with a specific delivery date (ზედნადების დახურვა მიწოდების თარიღით)

ParametersJSON Schema
NameRequiredDescriptionDefault
waybill_idYesWaybill ID to close
delivery_dateYesDelivery date (YYYY-MM-DDTHH:mm:ss)

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_actionA
Destructive

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. (მოქმედების დადასტურება - მომხმარებლის ნებართვის გარეშე არ გამოიძახოთ)

ParametersJSON Schema
NameRequiredDescriptionDefault
action_idYesThe action_id returned by the queued action
confirmation_textYesMust be exactly 'CONFIRM' — only pass this after the user explicitly approves

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_waybillA
Destructive

Buyer confirms receipt of goods from a waybill (ზედნადების დადასტურება მყიდველის მიერ)

ParametersJSON Schema
NameRequiredDescriptionDefault
waybill_idYesWaybill ID to confirm

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_descA
Destructive

Delete a goods/service line item from an invoice (საქონლის ჩანაწერის წაშლა)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesGoods line item unique ID
inv_idYesInvoice unique ID

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_nosB
Destructive

Unlink a waybill from an invoice (ზედნადების მოხსნა ანგარიშ-ფაქტურიდან)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWaybill link record ID
inv_idYesInvoice unique ID

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_requestA
Destructive

Delete an invoice issuance reminder (შეხსენების წაშლა)

ParametersJSON Schema
NameRequiredDescriptionDefault
inv_idYesInvoice request unique ID
bayer_un_idYesBuyer taxpayer unique ID

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_waybillA
Destructive

Delete a saved (not yet activated) waybill (ზედნადების წაშლა)

ParametersJSON Schema
NameRequiredDescriptionDefault
waybill_idYesWaybill ID to delete

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_codesA
Read-only

List all excise/akciz codes (აქციზური კოდები)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_invoicesB
Read-only

List buyer-side invoices with filters (მყიდველის ანგარიშ-ფაქტურები)

ParametersJSON Schema
NameRequiredDescriptionDefault
descNoSeller name
e_dtNoRegistration date to (YYYY-MM-DDTHH:mm:ss)
s_dtNoRegistration date from (YYYY-MM-DDTHH:mm:ss)
un_idYesTaxpayer unique ID
op_e_dtNoOperation date to (YYYY-MM-DDTHH:mm:ss)
op_s_dtNoOperation date from (YYYY-MM-DDTHH:mm:ss)
invoice_noNoInvoice number
doc_mos_nomNoDeclaration number
sa_ident_noNoSeller identification number

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description 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.

Purpose4/5

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.

Usage Guidelines2/5

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_rB
Read-only

List buyer-side invoices needing reaction (რეაგირების მოთხოვნა - მყიდველი)

ParametersJSON Schema
NameRequiredDescriptionDefault
un_idYesTaxpayer unique ID
statusYesStatus bitmask filter

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_waybillsC
Read-only

List buyer waybills with filters (მყიდველის ზედნადებები)

ParametersJSON Schema
NameRequiredDescriptionDefault
typesNoWaybill types, comma-separated
commentNoComment filter
statusesNoStatuses, comma-separated (0=saved, 1=active, 2=closed, 8=sent to transporter, -1=deleted, -2=cancelled)
car_numberNoCar number
driver_tinNoDriver TIN
s_user_idsNoService user IDs, comma-separated
seller_tinNoSeller TIN
full_amountNoFull amount
begin_date_eNoTransport start date to (YYYY-MM-DD)
begin_date_sNoTransport start date from (YYYY-MM-DD)
close_date_eNoClose date to (YYYY-MM-DD)
close_date_sNoClose date from (YYYY-MM-DD)
create_date_eNoCreate date to (YYYY-MM-DD)
create_date_sNoCreate date from (YYYY-MM-DD)
waybill_numberNoWaybill number
delivery_date_eNoDelivery date to (YYYY-MM-DD)
delivery_date_sNoDelivery date from (YYYY-MM-DD)

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_exC
Read-only

List buyer waybills with confirmation filter (მყიდველის ზედნადებები დადასტურების ფილტრით)

ParametersJSON Schema
NameRequiredDescriptionDefault
typesNoWaybill types, comma-separated
commentNoComment filter
statusesNoStatuses, comma-separated (0=saved, 1=active, 2=closed, 8=sent to transporter, -1=deleted, -2=cancelled)
car_numberNoCar number
driver_tinNoDriver TIN
s_user_idsNoService user IDs, comma-separated
seller_tinNoSeller TIN
full_amountNoFull amount
begin_date_eNoTransport start date to (YYYY-MM-DD)
begin_date_sNoTransport start date from (YYYY-MM-DD)
close_date_eNoClose date to (YYYY-MM-DD)
close_date_sNoClose date from (YYYY-MM-DD)
is_confirmedYesConfirmation filter: 0=unconfirmed, 1=confirmed, -1=rejected
create_date_eNoCreate date to (YYYY-MM-DD)
create_date_sNoCreate date from (YYYY-MM-DD)
waybill_numberNoWaybill number
delivery_date_eNoDelivery date to (YYYY-MM-DD)
delivery_date_sNoDelivery date from (YYYY-MM-DD)

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_dateB
Read-only

Get declaration date by declaration number (დეკლარაციის თარიღის წამოღება)

ParametersJSON Schema
NameRequiredDescriptionDefault
un_idYesUser unique ID
decl_numYesDeclaration number

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_codesA
Read-only

List all waybill error codes (შეცდომების კოდები)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_invoiceA
Read-only

Get a single tax invoice by ID (ანგარიშ-ფაქტურის ნახვა)

ParametersJSON Schema
NameRequiredDescriptionDefault
invois_idYesInvoice unique ID

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_dC
Read-only

Autocomplete declaration numbers (დეკლარაციის ნომრების ძებნა)

ParametersJSON Schema
NameRequiredDescriptionDefault
un_idYesTaxpayer unique ID
v_countYesMax results to return
v_invoice_dYesPartial declaration number to search

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_descB
Read-only

Get all goods/service line items for an invoice (საქონლის ჩანაწერების ნახვა)

ParametersJSON Schema
NameRequiredDescriptionDefault
invois_idYesInvoice unique ID

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_numbersB
Read-only

Autocomplete invoice numbers (ანგარიშ-ფაქტურის ნომრების ძებნა)

ParametersJSON Schema
NameRequiredDescriptionDefault
un_idYesTaxpayer unique ID
v_countYesMax results to return
v_invoice_nYesPartial invoice number to search

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_requestB
Read-only

Get invoice issuance reminder details (შეხსენების ნახვა)

ParametersJSON Schema
NameRequiredDescriptionDefault
inv_idYesInvoice request unique ID

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_requestsB
Read-only

List invoice requests sent by buyer (მყიდველის შეხსენებების სია)

ParametersJSON Schema
NameRequiredDescriptionDefault
bayer_un_idYesBuyer taxpayer unique ID

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_tinsB
Read-only

Autocomplete buyer/seller TINs (საიდენტიფიკაციო ნომრების ძებნა)

ParametersJSON Schema
NameRequiredDescriptionDefault
un_idYesTaxpayer unique ID
v_countYesMax results to return
v_invoice_tYesPartial TIN to search

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_makoreqtirebeliB
Read-only

Get the correction invoice ID for a corrected invoice (მაკორექტირებელის ნომრის გაგება)

ParametersJSON Schema
NameRequiredDescriptionDefault
inv_idYesInvoice unique ID

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_tinC
Read-only

Look up a taxpayer name by TIN/personal number (სახელის გამოტანა საიდენტიფიკაციო ნომრით)

ParametersJSON Schema
NameRequiredDescriptionDefault
tinYesTaxpayer identification number or personal number

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_nosB
Read-only

Get waybills linked to an invoice (ანგარიშ-ფაქტურის ზედნადებები)

ParametersJSON Schema
NameRequiredDescriptionDefault
invois_idYesInvoice unique ID

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_invoicesB
Read-only

List invoice requests received by seller (გამყიდველის შეხსენებების სია)

ParametersJSON Schema
NameRequiredDescriptionDefault
seller_un_idYesSeller taxpayer unique ID

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_invoicesA
Read-only

List seller-side invoices with filters (გამყიდველის ანგარიშ-ფაქტურები)

ParametersJSON Schema
NameRequiredDescriptionDefault
descNoBuyer name
e_dtNoRegistration date to (YYYY-MM-DDTHH:mm:ss)
s_dtNoRegistration date from (YYYY-MM-DDTHH:mm:ss)
un_idYesTaxpayer unique ID
op_e_dtNoOperation date to (YYYY-MM-DDTHH:mm:ss)
op_s_dtNoOperation date from (YYYY-MM-DDTHH:mm:ss)
invoice_noNoInvoice number
doc_mos_nomNoDeclaration number
sa_ident_noNoBuyer identification number

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_rA
Read-only

List seller-side invoices needing reaction (რეაგირების მოთხოვნა - გამყიდველი)

ParametersJSON Schema
NameRequiredDescriptionDefault
un_idYesTaxpayer unique ID
statusYesStatus bitmask filter

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_numsC
Read-only

Get declaration numbers by tax period (დეკლარაციის ნომრები პერიოდის მიხედვით)

ParametersJSON Schema
NameRequiredDescriptionDefault
sag_periodiYesTax period (e.g. 202404)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_usersB
Read-only

List all service users for the account (სერვისის მომხმარებლების სია)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_typesA
Read-only

List all transport types (ტრანსპორტირების ტიპები)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_invoicesB
Read-only

List invoices by last update date range, max 3-day span (ანგარიშ-ფაქტურები განახლების თარიღით)

ParametersJSON Schema
NameRequiredDescriptionDefault
un_idYesTaxpayer unique ID
last_update_date_eYesLast update date range end (YYYY-MM-DDTHH:mm:ss)
last_update_date_sYesLast update date range start (YYYY-MM-DDTHH:mm:ss)

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_waybillA
Read-only

Get a single waybill by ID (ზედნადების გამოტანა)

ParametersJSON Schema
NameRequiredDescriptionDefault
waybill_idYesWaybill ID

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_waybillsB
Read-only

List seller waybills with filters (გამყიდველის ზედნადებები)

ParametersJSON Schema
NameRequiredDescriptionDefault
typesNoWaybill types, comma-separated
commentNoComment filter
statusesNoStatuses, comma-separated (0=saved, 1=active, 2=closed, -1=deleted, -2=cancelled)
buyer_tinNoBuyer TIN
car_numberNoCar number
driver_tinNoDriver TIN
s_user_idsNoService user IDs, comma-separated
full_amountNoFull amount
begin_date_eNoTransport start date to (YYYY-MM-DD)
begin_date_sNoTransport start date from (YYYY-MM-DD)
close_date_eNoClose date to (YYYY-MM-DD)
close_date_sNoClose date from (YYYY-MM-DD)
create_date_eNoCreate date to (YYYY-MM-DD)
create_date_sNoCreate date from (YYYY-MM-DD)
waybill_numberNoWaybill number
delivery_date_eNoDelivery date to (YYYY-MM-DD)
delivery_date_sNoDelivery date from (YYYY-MM-DD)

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_exB
Read-only

List seller waybills with confirmation filter (გამყიდველის ზედნადებები დადასტურების ფილტრით)

ParametersJSON Schema
NameRequiredDescriptionDefault
typesNoWaybill types, comma-separated
commentNoComment filter
statusesNoStatuses, comma-separated (0=saved, 1=active, 2=closed, -1=deleted, -2=cancelled)
buyer_tinNoBuyer TIN
car_numberNoCar number
driver_tinNoDriver TIN
s_user_idsNoService user IDs, comma-separated
full_amountNoFull amount
begin_date_eNoTransport start date to (YYYY-MM-DD)
begin_date_sNoTransport start date from (YYYY-MM-DD)
close_date_eNoClose date to (YYYY-MM-DD)
close_date_sNoClose date from (YYYY-MM-DD)
is_confirmedYesConfirmation filter: 0=unconfirmed, 1=confirmed, -1=rejected
create_date_eNoCreate date to (YYYY-MM-DD)
create_date_sNoCreate date from (YYYY-MM-DD)
waybill_numberNoWaybill number
delivery_date_eNoDelivery date to (YYYY-MM-DD)
delivery_date_sNoDelivery date from (YYYY-MM-DD)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_v1B
Read-only

List waybills by last update date range, max 3-day span (ზედნადებები განახლების თარიღით)

ParametersJSON Schema
NameRequiredDescriptionDefault
buyer_tinNoBuyer/seller TIN to filter by
last_update_date_eYesLast update date range end (YYYY-MM-DDTHH:mm:ss)
last_update_date_sYesLast update date range start (YYYY-MM-DDTHH:mm:ss)

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_typesA
Read-only

List all waybill types (ზედნადების ტიპები)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_unitsA
Read-only

List all measurement units (ზომის ერთეულები)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_typesA
Read-only

List all wood types (ხეტყის ტიპები)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_invoiceA
Destructive

Create a correction invoice (კორექტირება). k_type: 1=cancel operation, 2=change operation type, 3=price/compensation change, 4=goods return

ParametersJSON Schema
NameRequiredDescriptionDefault
inv_idYesOriginal invoice unique ID
k_typeYesCorrection type (1-4)

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_actionsA
Read-only

List all pending actions awaiting confirmation (მოლოდინში მყოფი მოქმედებები)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_chekB
Read-only

Verify NTOS invoice service credentials and get user info (სერვისის მომხმარებლის შემოწმება)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_akcizB
Read-only

Search excise/akciz codes for invoices (აქციზური საქონლის კოდები)

ParametersJSON Schema
NameRequiredDescriptionDefault
s_textNoExcise product code to search

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_idB
Read-only

Get organization name from unique ID (უნიკალური ნომრიდან დასახელების გაგება)

ParametersJSON Schema
NameRequiredDescriptionDefault
un_idYesTaxpayer unique ID

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_usersB
Read-only

List NTOS invoice service users (სერვისის მომხმარებლების სია)

ParametersJSON Schema
NameRequiredDescriptionDefault
user_nameYesE-declaration username
user_passwordYesE-declaration password

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_idA
Read-only

Get TIN from taxpayer unique ID (უნიკალური ნომრიდან საიდენტიფიკაციო ნომრის გაგება)

ParametersJSON Schema
NameRequiredDescriptionDefault
un_idYesTaxpayer unique ID

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_tinA
Read-only

Get taxpayer unique ID from TIN (საიდენტიფიკაციო ნომრიდან უნიკალური ნომრის გაგება)

ParametersJSON Schema
NameRequiredDescriptionDefault
tinYesTaxpayer identification number

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_idA
Read-only

Get taxpayer unique ID from e-declaration user ID (მომხმარებლის ნომრიდან უნიკალური ნომრის გაგება)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ref_invoice_statusB
Destructive

Reject an invoice with reason (ანგარიშ-ფაქტურის უარყოფა)

ParametersJSON Schema
NameRequiredDescriptionDefault
inv_idYesInvoice unique ID
ref_textYesRejection reason text

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_waybillA
Destructive

Cancel an active waybill — sets status to cancelled (ზედნადების გაუქმება)

ParametersJSON Schema
NameRequiredDescriptionDefault
waybill_idYesWaybill ID to cancel

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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 (მოქმედების გაუქმება)

ParametersJSON Schema
NameRequiredDescriptionDefault
action_idYesThe action_id to cancel

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_waybillB
Destructive

Buyer rejects a waybill (ზედნადების უარყოფა მყიდველის მიერ)

ParametersJSON Schema
NameRequiredDescriptionDefault
waybill_idYesWaybill ID to reject

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_invoiceB
Destructive

Save/create a tax invoice (ანგარიშ-ფაქტურის შენახვა)

ParametersJSON Schema
NameRequiredDescriptionDefault
invois_idYesInvoice ID, pass 0 to create new
b_s_user_idNoBuyer's service user ID
buyer_un_idYesBuyer unique ID
overhead_dtNoDeprecated, pass any date
overhead_noNoDeprecated, pass empty string
seller_un_idYesSeller unique ID
operation_dateYesOperation date (YYYY-MM-DDTHH:mm:ss)

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_aB
Destructive

Save/create an advance/compensation tax invoice (საკომპენსაციო ანგარიშ-ფაქტურის შენახვა)

ParametersJSON Schema
NameRequiredDescriptionDefault
invois_idYesInvoice ID, pass 0 to create new
b_s_user_idNoBuyer's service user ID
buyer_un_idYesBuyer unique ID
overhead_dtNoDeprecated, pass any date
overhead_noNoDeprecated, pass empty string
seller_un_idYesSeller unique ID
operation_dateYesOperation date (YYYY-MM-DDTHH:mm:ss)

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_descA
Destructive

Save a goods/service line item on an invoice (საქონლის ჩანაწერის შენახვა). drg_amount: positive=normal VAT, 0=zero-rate, -1=non-taxable

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesGoods line ID, pass 0 to create new
goodsYesGoods/service name
g_unitYesUnit of measurement
akciz_idNoExcise product code ID
g_numberYesQuantity
invois_idYesInvoice unique ID
drg_amountYesVAT amount (positive=normal, 0=zero-rate, -1=non-taxable)
full_amountYesTotal amount including VAT and excise
aqcizi_amountNoExcise amount

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_nC
Destructive

Save/create a tax invoice with comment (ანგარიშ-ფაქტურის შენახვა კომენტარით)

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesComment/note text
invois_idYesInvoice ID, pass 0 to create new
b_s_user_idNoBuyer's service user ID
buyer_un_idYesBuyer unique ID
overhead_dtNoDeprecated, pass any date
overhead_noNoDeprecated, pass empty string
seller_un_idYesSeller unique ID
operation_dateYesOperation date (YYYY-MM-DDTHH:mm:ss)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_requestC
Destructive

Create an invoice issuance reminder for seller (შეხსენების შენახვა)

ParametersJSON Schema
NameRequiredDescriptionDefault
dtYesDate (YYYY-MM-DDTHH:mm:ss)
notesNoComment/note
inv_idYesInvoice request ID, pass 0 for new
bayer_un_idYesBuyer taxpayer unique ID
overhead_noNoWaybill number
seller_un_idYesSeller taxpayer unique ID

TDQS

C2.3/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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_nosC
Destructive

Link a waybill to an invoice (ზედნადების მიბმა ანგარიშ-ფაქტურაზე)

ParametersJSON Schema
NameRequiredDescriptionDefault
invois_idYesInvoice unique ID
overhead_dtYesWaybill date (YYYY-MM-DDTHH:mm:ss)
overhead_noYesWaybill number

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_waybillB
Destructive

Create or update a waybill (ზედნადების შექმნა/რედაქტირება). Builds the full WAYBILL XML from structured input.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoWaybill ID, 0 or omit for new
typeYesWaybill type (1=inner, 2=transportation, 3=without transport, 4=distribution, 5=return, 6=sub-waybill)
is_medNo0=normal, 1=medicine
par_idNoParent waybill ID (for sub-waybills)
statusYesStatus: 0=saved, 1=active, 2=closed
commentNoComment
categoryNoCategory: 0=normal, 1=wood
trans_idYesTransport type ID from get_trans_types
buyer_tinYesBuyer TIN (taxpayer identification number)
trans_txtNoTransport type text (when trans_id=other)
begin_dateYesTransport start date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss)
buyer_nameYesBuyer name
car_numberNoVehicle plate number
driver_tinYesDriver personal number
goods_listYesGoods/items list (at least one item)
driver_nameYesDriver full name
end_addressYesUnloading/end address
seler_un_idYesSeller unique ID (from get_un_id)
sub_waybillsNoSub-waybill references
delivery_dateNoDelivery date (YYYY-MM-DD)
receiver_infoNoReceiver info
start_addressYesLoading/start address
chek_buyer_tinNo1=Georgian TIN, 0=foreign ID
reception_infoNoReception info
waybill_numberNoWaybill number (assigned on activation)
wood_docs_listNoWood documents (for category=1)
chek_driver_tinNo1=Georgian TIN, 0=foreign ID
tran_cost_payerNoTransport cost payer: 1=buyer, 2=seller, 3=other
transport_coastNoTransport cost

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_waybillA
Destructive

Activate a saved waybill — sets status to active and assigns a waybill number (ზედნადების გააქტიურება)

ParametersJSON Schema
NameRequiredDescriptionDefault
waybill_idYesWaybill ID to activate

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_vdB
Destructive

Activate a saved waybill with a specific begin date (ზედნადების გააქტიურება თარიღით)

ParametersJSON Schema
NameRequiredDescriptionDefault
begin_dateYesTransport begin date (YYYY-MM-DDTHH:mm:ss)
waybill_idYesWaybill ID to activate

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_exitC
Destructive

Register customs warehouse exit (საბაჟო საწყობიდან გასვლის რეგისტრაცია)

ParametersJSON Schema
NameRequiredDescriptionDefault
car_numberYesVehicle plate number
customs_codeYesCustoms office code
declaration_numberYesCustoms declaration number

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_infoC
Read-only

Get cargo 200 customs information for a date range (ტვირთი 200 საბაჟო ინფორმაცია)

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date (YYYY-MM-DDTHH:mm:ss)
start_dateYesStart date (YYYY-MM-DDTHH:mm:ss)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_newA
Read-only

Get comparison act in new format -- tax balances, markups, penalties (შედარების აქტი ახალი ფორმატით)

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date (YYYY-MM-DDTHH:mm:ss)
said_codeYesTaxpayer identification code
start_dateYesStart date (YYYY-MM-DDTHH:mm:ss)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_oldA
Read-only

Get comparison act in old format -- DESC + 11 data columns (შედარების აქტი ძველი ფორმატით)

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date (YYYY-MM-DDTHH:mm:ss)
said_codeYesTaxpayer identification code
session_idNoSession ID from previous call (optional)
start_dateYesStart date (YYYY-MM-DDTHH:mm:ss)

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_amountB
Read-only

Get joint/total income amount for a given year (ერთობლივი შემოსავლის თანხა წლის მიხედვით)

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesYear to query (e.g. 2025)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_payer_infoB
Read-only

Get comprehensive payer info -- status, declarations, waybills, cash box, customs (გადამხდელის სრული ინფორმაცია)

ParametersJSON Schema
NameRequiredDescriptionDefault
said_codeYesTaxpayer identification code (TIN)

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_gitaB
Read-only

Get GITA payer info with financial data -- salary, VAT, income, earnings declarations (GITA გადამხდელის ინფორმაცია)

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesPeriod end date (YYYY-MM-DD)
payer_codeYesTaxpayer identification code
start_dateYesPeriod start date (YYYY-MM-DD)

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_infoA
Read-only

Get NACE activity codes for a taxpayer (გადამხდელის NACE კოდები)

ParametersJSON Schema
NameRequiredDescriptionDefault
said_codeYesTaxpayer identification code

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_dataB
Read-only

Get person income data -- yearly/monthly amounts, category (ფიზიკური პირის შემოსავლის მონაცემები)

ParametersJSON Schema
NameRequiredDescriptionDefault
personal_numberYesPersonal identification number (პირადი ნომერი)

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_infoB
Read-only

Get financial dashboard -- income/VAT declarations, comparison card, salary/waybill/invoice monthly (სწრაფი ფინანსური მიმოხილვა)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_contactsA
Read-only

Get taxpayer invoice/waybill contact info -- phone, email (გადამხდელის საკონტაქტო ინფორმაცია)

ParametersJSON Schema
NameRequiredDescriptionDefault
tp_codeYesTaxpayer identification code (TIN)

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_publicA
Read-only

Get public taxpayer info by TIN -- name, legal form, status, VAT, address (გადამხდელის საჯარო ინფორმაცია)

ParametersJSON Schema
NameRequiredDescriptionDefault
tp_codeYesTaxpayer identification code (TIN / საიდენტიფიკაციო კოდი)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_amountA
Read-only

Get monthly waybill amounts by TIN and date range (ზედნადების თვიური თანხები)

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date (YYYY-MM-DDTHH:mm:ss)
said_codeYesTaxpayer identification code
start_dateYesStart date (YYYY-MM-DDTHH:mm:ss)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_detailsA
Read-only

Get Z-report per-device details -- device number, date, quantity, amounts (Z-ანგარიშის დეტალები)

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date (YYYY-MM-DDTHH:mm:ss)
start_dateYesStart date (YYYY-MM-DDTHH:mm:ss)

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_sumB
Read-only

Get Z-report cash register totals for a date range (საკონტროლო-სალარო აპარატის Z-ანგარიშის ჯამი)

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date (YYYY-MM-DDTHH:mm:ss)
start_dateYesStart date (YYYY-MM-DDTHH:mm:ss)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_activationC
Destructive

Activate GITA payer info access after SMS verification (GITA გადამხდელის ინფორმაციაზე წვდომის აქტივაცია)

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYesActivation status (1=activate, 0=deactivate)
payer_codeYesTaxpayer identification code
start_dateYesActivation start date (YYYY-MM-DDTHH:mm:ss)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_verificationB
Read-only

Verify SMS code for GITA payer info 2-step auth (SMS კოდის ვერიფიკაცია GITA ინფორმაციისთვის)

ParametersJSON Schema
NameRequiredDescriptionDefault
sms_codeYesSMS verification code received on phone
payer_codeYesTaxpayer identification code

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_activationB
Destructive

Activate or deactivate payer info access after SMS verification (გადამხდელის ინფორმაციაზე წვდომის აქტივაცია/დეაქტივაცია)

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYesActivation status (1=activate, 0=deactivate)
said_codeYesTaxpayer identification code

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_verificationC
Read-only

Verify SMS code for standard payer info 2-step auth (SMS კოდის ვერიფიკაცია გადამხდელის ინფორმაციისთვის)

ParametersJSON Schema
NameRequiredDescriptionDefault
sms_codeYesSMS verification code received on phone
said_codeYesTaxpayer identification code

TDQS

C2.9/5.0
Behavior1/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

C2.9/5.0
Disambiguation2/5

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.

Naming Consistency3/5

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.

Tool Count2/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables 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
  • A
    license
    A
    quality
    C
    maintenance
    MCP 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.
    4
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Local 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.
    67
    1
    MIT

Latest Blog Posts

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