Georgia Revenue Service (rs.ge) MCP server for waybills, invoices, taxpayer data, and reference lookups
rs-mcp exhibits significant definition quality gaps across most dimensions. The server has 13 tools with basic descriptions (many bilingual in Georgian/English), but lacks consistency in schema completeness, parameter documentation rigor, and error guidance. Several tools have enum constraints and clear action semantics (confirm_action, reject_action), but many lack depth in parameter descriptions, return type documentation, and recovery guidance. The tool set conflates multiple domains (waybill, invoice, taxpayer, reference) without clear composition or chaining patterns. Output schemas are not explicitly documented in the source provided. Error handling is minimal, no per-tool error classification, retry guidance, or recovery steps visible in the function signatures or docstrings.
Verify service user credentials and get user info (სერვისის მომხმარებლის შემოწმება)
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. (მოქმედების დადასტურება - მომხმარებლის ნებართვის გარეშე არ გამოიძახოთ)
Delete a goods/service line item from an invoice (საქონლის ჩანაწერის წაშლა)
Unlink a waybill from an invoice (ზედნადების მოხსნა ანგარიშ-ფაქტურიდან)
List all waybill error codes (შეცდომების კოდები)
Get all goods/service line items for an invoice (საქონლის ჩანაწერების ნახვა)
Tool name typo: 'chek_service_user' should be 'check_service_user'. Naming errors reduce LLM discoverability and create confusion in multi-tool environments.
Missing output schema documentation. None of the 13 tools have explicit return type documentation in the provided source. LLMs cannot plan downstream tool calls or extract specific fields without knowing expected response structure.
Sparse parameter documentation. Many parameters lack descriptions or have descriptions under 20 characters (e.g., 'g_unit': 'Unit of measurement' is too vague; what values are valid? Does it accept abbreviations or full names?). LLMs cannot reason about valid input without actionable parameter details.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Look up a taxpayer name by TIN/personal number (სახელის გამოტანა საიდენტიფიკაციო ნომრით)
Get waybills linked to an invoice (ანგარიშ-ფაქტურის ზედნადებები)
List all service users for the account (სერვისის მომხმარებლების სია)
List all pending actions awaiting confirmation (მოლოდინში მყოფი მოქმედებები)
Cancel a previously queued destructive action (მოქმედების გაუქმება)
Save a goods/service line item on an invoice (საქონლის ჩანაწერის შენახვა). drg_amount: positive=normal VAT, 0=zero-rate, -1=non-taxable
Link a waybill to an invoice (ზედნადების მიბმა ანგარიშ-ფაქტურაზე)
No error handling guidance. None of the tools document what errors can occur, whether they are retryable, or what the agent should do next. E.g., if get_name_from_tin fails with 'TIN not found', the agent has no recovery path.
Destructive tools lack confirmation or rollback guidance. Tools like delete_invoice_desc and delete_ntos_invoices_inv_nos are marked as DESTRUCTIVE but have no mention in descriptions of confirmation requirements, dry-run options, or reversibility. Only confirm_action explicitly enforces a confirmation pattern.
Parameter naming ambiguity. 'drg_amount' (VAT amount) uses cryptic abbreviation. Parameters like 'invois_id' (likely 'invoice_id' misspelled) and 'overhead_no' (waybill number?) lack clarity. LLMs will struggle to map chat intent to parameter names.
No pagination support visible. Tools like get_invoice_desc, get_service_users, and list_pending_actions do not show limit/offset or cursor parameters, risking context window exhaustion if results are large.
Bilingual descriptions mix Georgian and English inline, which may confuse LLM parsing. E.g., 'Execute a previously queued destructive action. IMPORTANT: ... (მოქმედების დადასტურება - ...)'. Consider separate localization or remove Georgian if the primary audience is English-speaking LLMs.