rs-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@rs-mcp show taxpayer info for TIN 123456789"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
rs-mcp
MCP server + CLI for Georgia's Revenue Service (rs.ge). Exposes WayBill, Invoice, and TaxPayer SOAP APIs as AI-callable tools. Ships two interfaces from the same codebase:
MCP server — 85 tools over stdio, works with any MCP-compatible client (Cursor, Claude Desktop, Windsurf, Continue, etc.)
CLI (
rs-cli) — same 85 operations as subcommands, JSON output, for scripts and AI agentsClaude Skill —
skills/rs-ge/folder, upload to Claude.ai or Claude Code to teach Claude how to use the tools
Services covered:
Service | Endpoint | Tools |
WayBill |
| 24 |
Invoice (NTOS) |
| 40 |
TaxPayer |
| 20 |
Confirmation (HITL) | (internal) | 3 |
Key features:
Read-only queries for waybills, invoices, taxpayer info, reference data
Full CRUD for waybills and invoices (create, send, confirm, reject, close, delete)
Human-in-the-Loop (HITL) safety for all destructive MCP operations
CLI with interactive
[y/N]confirmation for destructive commands (--yesto skip)Automatic SOAP envelope construction and XML response parsing
Prerequisites
Node.js >= 18 (uses native
fetch)npm
An MCP-compatible client -- Cursor, Claude Desktop, Windsurf, Continue, or any agent/IDE that supports MCP
rs.ge service user account (sub-user created through the rs.ge e-declaration portal)
Related MCP server: ezPay E-Invoice MCP Server
Quick Start
1. Clone and install
git clone <your-repo-url> rs-mcp
cd rs-mcp
npm install2. Configure environment
Copy the example file and fill in your credentials:
cp .env.example .envEdit .env:
RS_SU=your_username:your_tin
RS_SP=your_password
RS_BASE_URL=https://services.rs.ge/WayBillService/WayBillService.asmx
RS_INVOICE_URL=https://www.revenue.mof.ge/ntosservice/ntosservice.asmx
RS_USER_ID=0
RS_TAX_URL=https://services.rs.ge/taxservice/taxpayerservice.asmxSee Environment Variables for details on each variable.
3. Build
npm run buildThis compiles TypeScript from src/ into dist/.
4. Connect to your MCP client
The server uses stdio transport -- your MCP client spawns the process and communicates over stdin/stdout. Configuration varies by client:
Cursor -- create .cursor/mcp.json in the project root:
{
"mcpServers": {
"rs-mcp": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/absolute/path/to/rs-mcp"
}
}
}Claude Desktop -- edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"rs-mcp": {
"command": "node",
"args": ["/absolute/path/to/rs-mcp/dist/index.js"]
}
}
}Other clients -- consult your client's MCP documentation. The server entry point is node dist/index.js with the working directory set to the project root.
Important: Do NOT run
npm startmanually during normal use. Your MCP client spawns the server process itself. After making changes, rebuild withnpm run buildand restart the MCP server from your client's settings.
CLI Quick Start
After building, use the rs-cli binary directly:
# Reference data (no auth needed for most)
node dist/cli.js reference waybill-types
node dist/cli.js reference units
# Waybill queries
node dist/cli.js waybill get 12345
node dist/cli.js waybill list --from 2025-01-01 --to 2025-03-31
node dist/cli.js waybill list --buyer-tin 123456789 --statuses 1
# Waybill actions (prompts [y/N] before executing)
node dist/cli.js waybill send 12345
node dist/cli.js waybill send 12345 --yes # skip prompt
# Invoice
node dist/cli.js invoice seller-list --un-id 999 --from 2025-01-01 --to 2025-03-31
node dist/cli.js invoice get 456
# Taxpayer
node dist/cli.js taxpayer info 123456789
node dist/cli.js taxpayer dashboard
# Pretty-print JSON
node dist/cli.js waybill get 12345 --prettyOr install globally and use rs-cli directly:
npm install -g .
rs-cli reference waybill-typesAll commands output JSON. Use --pretty to force formatted output (auto-enabled on TTY).
Global flags:
Flag | Short | Description |
|
| Skip |
| — | Force pretty-printed JSON |
For a full command reference, see skills/rs-ge/references/.
Claude Skill
The skills/rs-ge/ folder is a proper Claude Agent Skill. Upload it to teach Claude how to use both the MCP tools and CLI.
Install in Claude.ai:
Zip the
skills/rs-ge/folderGo to Settings → Capabilities → Skills → Upload skill
Install in Claude Code:
Place the skills/rs-ge/ folder in your Claude Code skills directory.
Environment Variables
Variable | Required | Description | Example |
| Yes | Service username in |
|
| Yes | Service password |
|
| No | WayBill SOAP endpoint (has default) |
|
| No | Invoice/NTOS SOAP endpoint (has default) |
|
| Yes | Your e-declaration user ID (for invoice tools). Use |
|
| No | TaxPayer SOAP endpoint (has default) |
|
RS_SU and RS_SP are shared across all three services. The WayBill and Invoice services auto-inject them as su/sp. The TaxPayer service passes them explicitly per method (credential parameter names vary by method).
Project Structure
rs-mcp/
├── .env # Credentials (git-ignored)
├── .env.example # Template for .env
├── package.json # bin: { "rs-cli": "./dist/cli.js" }
├── tsconfig.json
├── skills/
│ └── rs-ge/ # Claude Agent Skill (upload to Claude.ai / Claude Code)
│ ├── SKILL.md # Skill definition with YAML frontmatter
│ └── references/ # Detailed command docs (loaded by Claude on demand)
│ ├── waybill.md
│ ├── invoice.md
│ └── taxpayer.md
└── src/
├── index.ts # MCP entry point -- creates server, registers all tools
├── cli.ts # CLI entry point -- parseArgs router (rs-cli binary)
├── config.ts # Loads environment variables
├── confirm.ts # HITL pending-action store and execution logic
├── mcp-confirm.ts # MCP wrapper: wraps queueAction with MCP content format
├── output.ts # CLI JSON printer (pretty on TTY, compact when piped)
├── prompt.ts # CLI readline [y/N] confirmation prompt
├── soap/
│ ├── client.ts # SOAP client for WayBill & Invoice (tempuri.org namespace)
│ └── tax-client.ts # SOAP client for TaxPayer (services.rs.ge namespace)
├── xml/
│ ├── parser.ts # XML-to-JSON parser (fast-xml-parser)
│ └── waybill-builder.ts # Structured JSON to Waybill XML converter
├── commands/ # CLI command handlers (one file per domain)
│ ├── waybill.ts
│ ├── invoice.ts
│ ├── taxpayer.ts
│ ├── reference.ts
│ ├── helpers.ts
│ └── confirm.ts
├── tools/ # MCP tool registrations (one file per domain)
│ ├── reference.ts
│ ├── waybill.ts
│ ├── waybill-write.ts
│ ├── helpers.ts
│ ├── invoice.ts
│ ├── invoice-query.ts
│ ├── invoice-desc.ts
│ ├── invoice-helpers.ts
│ ├── taxpayer.ts
│ ├── taxpayer-reports.ts
│ ├── taxpayer-auth.ts
│ └── confirm.ts
└── types/
├── reference.ts
├── waybill.ts
├── invoice.ts
└── taxpayer.tsArchitecture
flowchart LR
Client["MCP Client\n(Cursor, Claude Desktop, etc.)"] -->|stdio| McpServer["MCP Server\n(index.ts)"]
Terminal["Terminal / Script"] -->|argv| CLI["CLI\n(cli.ts → rs-cli)"]
McpServer --> Tools["MCP Tools\n(tools/)"]
CLI --> Commands["CLI Commands\n(commands/)"]
subgraph soap_layer [Shared SOAP Layer]
SoapClient["callSoap / callSoapXml\n(tempuri.org)"]
TaxClient["callTaxSoap\n(services.rs.ge)"]
end
subgraph hitl_mcp [MCP HITL]
Queue["queueAction → preview"]
Execute["confirm_action → execute"]
end
Tools -->|read-only| SoapClient
Tools -->|destructive| Queue
Queue --> Execute
Execute --> SoapClient
Commands -->|read-only| SoapClient
Commands -->|destructive: prompt y/N| SoapClient
Tools -->|read-only| TaxClient
Commands --> TaxClient
SoapClient --> RS_WB["rs.ge\nWayBill API"]
SoapClient --> RS_INV["rs.ge\nInvoice API"]
TaxClient --> RS_TAX["rs.ge\nTaxPayer API"]Data flow — MCP:
MCP client sends a tool call via stdio
Read-only tools call SOAP directly and return JSON
Destructive tools queue the action (HITL), return a preview, wait for
confirm_action
Data flow — CLI:
User runs
rs-cli <domain> <action> [flags]Read-only commands call SOAP and print JSON
Destructive commands prompt
[y/N](or skip with--yes), then call SOAP directly
Human-in-the-Loop (HITL) Safety System
All 32 destructive tools (create, update, delete, send, confirm, reject) use a two-phase confirmation system to prevent accidental data changes.
How it works
sequenceDiagram
participant User
participant AI as AI Assistant
participant Tool as Destructive Tool
participant Store as Pending Store
participant Confirm as confirm_action
participant SOAP as rs.ge API
User->>AI: "Delete waybill #12345"
AI->>Tool: del_waybill(waybill_id=12345)
Tool->>Store: queueAction(...)
Store-->>Tool: action_id + preview
Tool-->>AI: Preview with action_id
AI-->>User: "This will delete waybill #12345. Confirm?"
User->>AI: "Yes, confirm"
AI->>Confirm: confirm_action(action_id, "CONFIRM")
Confirm->>Store: executeAction(action_id)
Store->>SOAP: Actual SOAP call
SOAP-->>Store: Result
Store-->>Confirm: Result
Confirm-->>AI: Result JSON
AI-->>User: "Waybill #12345 deleted successfully"Key rules
Pending actions expire after 5 minutes
The AI must show the preview to the user and wait for explicit approval
confirm_actionrequiresconfirmation_text: "CONFIRM"-- the AI cannot auto-confirmUse
reject_actionto cancel a queued actionUse
list_pending_actionsto see all actions awaiting confirmation
HITL tools
Tool | Description |
| Execute a queued destructive action (requires explicit user approval) |
| Cancel a queued destructive action |
| List all pending actions with remaining time |
Tool Reference
WayBill Reference (5 tools)
Fetch reference/lookup data for waybill fields. All read-only, no parameters required.
Tool | Description |
| List all waybill types |
| List all measurement units |
| List all transport types |
| List all excise/akciz codes |
| List all wood types |
WayBill Read (6 tools)
Query and filter waybills. All read-only.
Tool | Description | Key Parameters |
| Get a single waybill by ID |
|
| List seller waybills with filters |
|
| List buyer waybills with filters |
|
| List waybills by last-update date range (max 3-day span) |
|
| Seller waybills with confirmation filter | Same as |
| Buyer waybills with confirmation filter | Same as |
Waybill statuses: 0=saved, 1=active, 2=closed, 8=sent to transporter, -1=deleted, -2=cancelled
WayBill Write (9 tools)
Create, activate, close, and manage waybills. All destructive (HITL-protected).
Tool | Description | Key Parameters |
| Create or update a waybill |
|
| Activate a saved waybill |
|
| Activate with a specific begin date |
|
| Buyer confirms receipt of goods |
|
| Buyer rejects a waybill |
|
| Close/complete a waybill |
|
| Close with a specific delivery date |
|
| Delete a saved (not yet activated) waybill |
|
| Cancel an active waybill |
|
Waybill types: 1=inner, 2=transportation, 3=without transport, 4=distribution, 5=return, 6=sub-waybill
Goods list item fields: w_name, unit_id, quantity, price, and optionally unit_txt, bar_code, a_id, vat_type, quantity_ext
WayBill Helpers (4 tools)
Utility tools for waybill-related lookups. All read-only.
Tool | Description | Key Parameters |
| Look up a taxpayer name by TIN |
|
| List all waybill error codes | (none) |
| Verify service user credentials | (none) |
| List all service users for the account | (none) |
Invoice CRUD & Status (12 tools)
Create, manage, and control invoice lifecycle. 8 destructive + 4 read-only.
Tool | Type | Description | Key Parameters |
| Write | Save/create a tax invoice |
|
| Write | Save/create with comment | Same + |
| Write | Save/create advance/compensation invoice | Same as |
| Read | Get a single invoice by ID |
|
| Write | Change invoice status |
|
| Write | Accept/confirm an invoice |
|
| Write | Reject an invoice with reason |
|
| Write | Create a correction invoice |
|
| Read | Get correction invoice ID |
|
| Write | Attach invoice to VAT declaration |
|
| Read | Get declaration numbers by period |
|
| Read | Get declaration date |
|
Invoice statuses: -1=deleted, 0=saved, 1=sent, 2=confirmed, 3=corrected-primary, 4=correction, 5=correction-sent, 6=cancelled-sent, 7=cancellation-confirmed, 8=correction-confirmed
Correction types (k_type): 1=cancel operation, 2=change operation type, 3=price/compensation change, 4=goods return
Invoice Query (9 tools)
Search and list invoices. All read-only.
Tool | Description | Key Parameters |
| List seller-side invoices |
|
| List buyer-side invoices | Same as above |
| List by last-update date (max 3-day span) |
|
| Seller invoices needing reaction |
|
| Buyer invoices needing reaction |
|
| Autocomplete invoice numbers |
|
| Autocomplete buyer/seller TINs |
|
| Autocomplete declaration numbers |
|
| Get invoice data for printing |
|
Invoice Goods & Links (6 tools)
Manage goods line items and waybill links on invoices. 4 destructive + 2 read-only.
Tool | Type | Description | Key Parameters |
| Write | Save a goods/service line item |
|
| Read | Get all line items for an invoice |
|
| Write | Delete a line item |
|
| Read | Get waybills linked to an invoice |
|
| Write | Link a waybill to an invoice |
|
| Write | Unlink a waybill from an invoice |
|
VAT amount (drg_amount): positive = normal VAT, 0 = zero-rate, -1 = non-taxable
Invoice Helpers (13 tools)
Lookups, excise codes, service users, and invoice requests. 3 destructive + 10 read-only.
Tool | Type | Description | Key Parameters |
| Read | Get unique ID from TIN |
|
| Read | Get TIN from unique ID |
|
| Read | Get org name from unique ID |
|
| Read | Get unique ID from e-declaration user ID | (none) |
| Read | Search excise/akciz codes |
|
| Read | Verify NTOS service credentials | (none) |
| Read | List NTOS service users |
|
| Write | Create invoice issuance reminder |
|
| Write | Delete an invoice reminder |
|
| Read | Get reminder details |
|
| Write | Forward invoice request to seller |
|
| Read | List requests received by seller |
|
| Read | List requests sent by buyer |
|
TaxPayer Info (8 tools)
Query taxpayer information and lookups. All read-only.
Tool | Description | Key Parameters |
| Public taxpayer info (name, legal form, status, VAT, address) |
|
| Taxpayer contact info (phone, email) |
|
| Comprehensive payer info (status, declarations, waybills, cash box) |
|
| Legal entity details (name, form, address, responsible persons) |
|
| Person income data (yearly/monthly amounts) |
|
| NACE activity codes for a taxpayer |
|
| Joint/total income amount for a year |
|
| GITA payer info with financial data |
|
Note: Some TaxPayer methods may require additional service activation or 2-step SMS verification on your sub-user account. Methods that return "authorization error" likely need activation through the rs.ge portal.
TaxPayer Reports (8 tools)
Financial reports and customs data. 7 read-only + 1 destructive.
Tool | Type | Description | Key Parameters |
| Read | Z-report cash register totals |
|
| Read | Z-report per-device details |
|
| Read | Monthly waybill amounts |
|
| Read | Financial dashboard overview | (none) |
| Read | Comparison act (old format) |
|
| Read | Comparison act (new format) |
|
| Read | Cargo 200 customs information |
|
| Write | Register customs warehouse exit |
|
TaxPayer Auth (4 tools)
SMS-based 2-step authentication for sensitive TaxPayer operations. 2 read-only + 2 destructive.
Tool | Type | Description | Key Parameters |
| Read | Verify SMS code for payer info auth |
|
| Read | Verify SMS code for GITA payer info auth |
|
| Write | Activate/deactivate payer info access |
|
| Write | Activate GITA payer info access |
|
SOAP Services Reference
The server communicates with three rs.ge SOAP endpoints:
WayBill Service
Endpoint:
https://services.rs.ge/WayBillService/WayBillService.asmxNamespace:
http://tempuri.org/Auth:
su(username:TIN) andsp(password) auto-injected into every requestClient:
src/soap/client.ts--callSoap()andcallSoapXml()
Invoice Service (NTOS)
Endpoint:
https://www.revenue.mof.ge/ntosservice/ntosservice.asmxNamespace:
http://tempuri.org/Auth: Same
su/spcredentials, plususer_idinjected for most methodsClient: Same
callSoap()with custombaseUrl
TaxPayer Service
Endpoint:
https://services.rs.ge/taxservice/taxpayerservice.asmxNamespace:
services.rs.geAuth: Credentials passed explicitly per method (parameter names vary:
UserName,userName,inUserName,user)Client:
src/soap/tax-client.ts--callTaxSoap()
Development
Build
npm run build # Compiles TypeScript to dist/Run
# MCP server (normally spawned by your MCP client, not run manually)
npm start # node dist/index.js
# CLI
node dist/cli.js # show usage
node dist/cli.js reference waybill-types
node dist/cli.js waybill list --from 2025-01-01 --to 2025-03-31Tech stack
TypeScript — strict mode, ES2022 target, Node16 modules
ES Modules (
"type": "module")@modelcontextprotocol/sdk — MCP server framework
zod — MCP input schema validation
fast-xml-parser — XML response parsing
dotenv — environment variable loading
node:util parseArgs — CLI argument parsing (no external framework)
Adding a new MCP tool
Add to an existing file in
src/tools/(or create a new one)Use
server.tool(name, description, schema, annotations, handler)Annotations:
const READONLY = { readOnlyHint: true, destructiveHint: false } as const; const DESTRUCTIVE = { readOnlyHint: false, destructiveHint: true } as const;Destructive tools: use
mcpQueueAction()from../mcp-confirm.jsinstead of calling SOAP directlyExport
register*Tools(server: McpServer)and call it insrc/index.ts
Adding a new CLI command
Add to the matching file in
src/commands/Read-only: call SOAP directly and
output(result)Destructive: prompt with
confirm()from../prompt.js, or checkflags.yesRegister any new
--flagnames in theparseArgsoptions block insrc/cli.ts
Adding a new SOAP service
Add endpoint to
src/config.tsand.env.exampleCreate SOAP client in
src/soap/if namespace differsAdd type interfaces in
src/types/Add MCP tools in
src/tools/and CLI commands insrc/commands/
License
ISC
Available Tools
87 toolsacsept_invoice_request_statusBDestructive
Send/forward an invoice request to seller (შეხსენების გადაგზავნა)
Inputs: id (required), seller_un_id (required).
acsept_invoice_statusBDestructive
Accept/confirm an invoice (ანგარიშ-ფაქტურის დადასტურება)
Inputs: inv_id (required), status (required).
add_inv_to_declBDestructive
Attach an invoice to a VAT declaration (დეკლარაციაზე მიბმა)
Inputs: inv_id (required), seq_num (required).
change_invoice_statusBDestructive
Change invoice status (სტატუსის ცვლილება). Statuses: -1=deleted, 0=saved, 1=sent, 2=confirmed, 3=corrected-primary, 4=correction, 5=correction-sent, 6=cancelled-sent, 7=cancellation-confirmed, 8=correction-confirmed
Inputs: inv_id (required), status (required).
chek_service_userARead-only
Verify service user credentials and get user info (სერვისის მომხმარებლის შემოწმება)
Inputs: no named parameters.
close_waybillBDestructive
Close/complete a waybill — marks delivery as done (ზედნადების დახურვა)
Inputs: waybill_id (required).
close_waybill_vdADestructive
Close/complete a waybill with a specific delivery date (ზედნადების დახურვა მიწოდების თარიღით)
Inputs: waybill_id (required), delivery_date (required).
confirm_actionADestructive
Execute a previously queued destructive action. IMPORTANT: You MUST show the pending action details to the user and wait for their explicit approval BEFORE calling this tool. Never auto-confirm. (მოქმედების დადასტურება - მომხმარებლის ნებართვის გარეშე არ გამოიძახოთ)
Inputs: action_id (required), confirmation_text (required).
confirm_waybillADestructive
Buyer confirms receipt of goods from a waybill (ზედნადების დადასტურება მყიდველის მიერ)
Inputs: waybill_id (required).
delete_invoice_descADestructive
Delete a goods/service line item from an invoice (საქონლის ჩანაწერის წაშლა)
Inputs: id (required), inv_id (required).
delete_ntos_invoices_inv_nosBDestructive
Unlink a waybill from an invoice (ზედნადების მოხსნა ანგარიშ-ფაქტურიდან)
Inputs: id (required), inv_id (required).
del_invoice_requestADestructive
Delete an invoice issuance reminder (შეხსენების წაშლა)
Inputs: inv_id (required), bayer_un_id (required).
del_waybillADestructive
Delete a saved (not yet activated) waybill (ზედნადების წაშლა)
Inputs: waybill_id (required).
get_akciz_codesARead-only
List all excise/akciz codes (აქციზური კოდები)
Inputs: no named parameters.
get_buyer_invoicesBRead-only
List buyer-side invoices with filters (მყიდველის ანგარიშ-ფაქტურები)
Inputs: un_id (required), desc, e_dt, s_dt, +5 more.
get_buyer_invoices_rBRead-only
List buyer-side invoices needing reaction (რეაგირების მოთხოვნა - მყიდველი)
Inputs: un_id (required), status (required).
get_buyer_waybillsCRead-only
List buyer waybills with filters (მყიდველის ზედნადებები)
Inputs: types, comment, statuses, car_number, +13 more.
get_buyer_waybills_exCRead-only
List buyer waybills with confirmation filter (მყიდველის ზედნადებები დადასტურების ფილტრით)
Inputs: is_confirmed (required), types, comment, statuses, +14 more.
get_decl_dateBRead-only
Get declaration date by declaration number (დეკლარაციის თარიღის წამოღება)
Inputs: un_id (required), decl_num (required).
get_error_codesARead-only
List all waybill error codes (შეცდომების კოდები)
Inputs: no named parameters.
get_invoiceARead-only
Get a single tax invoice by ID (ანგარიშ-ფაქტურის ნახვა)
Inputs: invois_id (required).
get_invoice_dCRead-only
Autocomplete declaration numbers (დეკლარაციის ნომრების ძებნა)
Inputs: un_id (required), v_count (required), v_invoice_d (required).
get_invoice_descBRead-only
Get all goods/service line items for an invoice (საქონლის ჩანაწერების ნახვა)
Inputs: invois_id (required).
get_invoice_numbersBRead-only
Autocomplete invoice numbers (ანგარიშ-ფაქტურის ნომრების ძებნა)
Inputs: un_id (required), v_count (required), v_invoice_n (required).
get_invoice_requestBRead-only
Get invoice issuance reminder details (შეხსენების ნახვა)
Inputs: inv_id (required).
get_invoice_requestsBRead-only
List invoice requests sent by buyer (მყიდველის შეხსენებების სია)
Inputs: bayer_un_id (required).
get_invoice_tinsBRead-only
Autocomplete buyer/seller TINs (საიდენტიფიკაციო ნომრების ძებნა)
Inputs: un_id (required), v_count (required), v_invoice_t (required).
get_makoreqtirebeliBRead-only
Get the correction invoice ID for a corrected invoice (მაკორექტირებელის ნომრის გაგება)
Inputs: inv_id (required).
get_name_from_tinCRead-only
Look up a taxpayer name by TIN/personal number (სახელის გამოტანა საიდენტიფიკაციო ნომრით)
Inputs: tin (required).
get_ntos_invoices_inv_nosBRead-only
Get waybills linked to an invoice (ანგარიშ-ფაქტურის ზედნადებები)
Inputs: invois_id (required).
get_requested_invoicesBRead-only
List invoice requests received by seller (გამყიდველის შეხსენებების სია)
Inputs: seller_un_id (required).
get_seller_invoicesARead-only
List seller-side invoices with filters (გამყიდველის ანგარიშ-ფაქტურები)
Inputs: un_id (required), desc, e_dt, s_dt, +5 more.
get_seller_invoices_rARead-only
List seller-side invoices needing reaction (რეაგირების მოთხოვნა - გამყიდველი)
Inputs: un_id (required), status (required).
get_seq_numsCRead-only
Get declaration numbers by tax period (დეკლარაციის ნომრები პერიოდის მიხედვით)
Inputs: sag_periodi (required).
get_service_usersBRead-only
List all service users for the account (სერვისის მომხმარებლების სია)
Inputs: no named parameters.
get_trans_typesARead-only
List all transport types (ტრანსპორტირების ტიპები)
Inputs: no named parameters.
get_user_invoicesBRead-only
List invoices by last update date range, max 3-day span (ანგარიშ-ფაქტურები განახლების თარიღით)
Inputs: un_id (required), last_update_date_e (required), last_update_date_s (required).
get_waybillARead-only
Get a single waybill by ID (ზედნადების გამოტანა)
Inputs: waybill_id (required).
get_waybillsBRead-only
List seller waybills with filters (გამყიდველის ზედნადებები)
Inputs: types, comment, statuses, buyer_tin, +13 more.
get_waybills_exBRead-only
List seller waybills with confirmation filter (გამყიდველის ზედნადებები დადასტურების ფილტრით)
Inputs: is_confirmed (required), types, comment, statuses, +14 more.
get_waybills_v1BRead-only
List waybills by last update date range, max 3-day span (ზედნადებები განახლების თარიღით)
Inputs: last_update_date_e (required), last_update_date_s (required), buyer_tin.
get_waybill_typesARead-only
List all waybill types (ზედნადების ტიპები)
Inputs: no named parameters.
get_waybill_unitsARead-only
List all measurement units (ზომის ერთეულები)
Inputs: no named parameters.
get_wood_typesARead-only
List all wood types (ხეტყის ტიპები)
Inputs: no named parameters.
k_invoiceADestructive
Create a correction invoice (კორექტირება). k_type: 1=cancel operation, 2=change operation type, 3=price/compensation change, 4=goods return
Inputs: inv_id (required), k_type (required).
list_pending_actionsARead-only
List all pending actions awaiting confirmation (მოლოდინში მყოფი მოქმედებები)
Inputs: no named parameters.
ntos_chekBRead-only
Verify NTOS invoice service credentials and get user info (სერვისის მომხმარებლის შემოწმება)
Inputs: no named parameters.
ntos_get_akcizBRead-only
Search excise/akciz codes for invoices (აქციზური საქონლის კოდები)
Inputs: s_text.
ntos_get_org_name_from_un_idBRead-only
Get organization name from unique ID (უნიკალური ნომრიდან დასახელების გაგება)
Inputs: un_id (required).
ntos_get_ser_usersBRead-only
List NTOS invoice service users (სერვისის მომხმარებლების სია)
Inputs: user_name (required), user_password (required).
ntos_get_tin_from_un_idARead-only
Get TIN from taxpayer unique ID (უნიკალური ნომრიდან საიდენტიფიკაციო ნომრის გაგება)
Inputs: un_id (required).
ntos_get_un_id_from_tinARead-only
Get taxpayer unique ID from TIN (საიდენტიფიკაციო ნომრიდან უნიკალური ნომრის გაგება)
Inputs: tin (required).
ntos_get_un_id_from_user_idARead-only
Get taxpayer unique ID from e-declaration user ID (მომხმარებლის ნომრიდან უნიკალური ნომრის გაგება)
Inputs: no named parameters.
print_invoicesBRead-only
Get invoice data for printing (საბეჭდი ფორმის მონაცემები)
Inputs: inv_id (required).
ref_invoice_statusBDestructive
Reject an invoice with reason (ანგარიშ-ფაქტურის უარყოფა)
Inputs: inv_id (required), ref_text (required).
ref_waybillADestructive
Cancel an active waybill — sets status to cancelled (ზედნადების გაუქმება)
Inputs: waybill_id (required).
reject_actionA
Cancel a previously queued destructive action (მოქმედების გაუქმება)
Inputs: action_id (required).
reject_waybillBDestructive
Buyer rejects a waybill (ზედნადების უარყოფა მყიდველის მიერ)
Inputs: waybill_id (required).
save_invoiceBDestructive
Save/create a tax invoice (ანგარიშ-ფაქტურის შენახვა)
Inputs: invois_id (required), buyer_un_id (required), seller_un_id (required), operation_date (required), +3 more.
save_invoice_aBDestructive
Save/create an advance/compensation tax invoice (საკომპენსაციო ანგარიშ-ფაქტურის შენახვა)
Inputs: invois_id (required), buyer_un_id (required), seller_un_id (required), operation_date (required), +3 more.
save_invoice_descADestructive
Save a goods/service line item on an invoice (საქონლის ჩანაწერის შენახვა). drg_amount: positive=normal VAT, 0=zero-rate, -1=non-taxable
Inputs: id (required), goods (required), g_unit (required), g_number (required), +5 more.
save_invoice_nCDestructive
Save/create a tax invoice with comment (ანგარიშ-ფაქტურის შენახვა კომენტარით)
Inputs: note (required), invois_id (required), buyer_un_id (required), seller_un_id (required), +4 more.
save_invoice_requestCDestructive
Create an invoice issuance reminder for seller (შეხსენების შენახვა)
Inputs: dt (required), inv_id (required), bayer_un_id (required), seller_un_id (required), +2 more.
save_ntos_invoices_inv_nosCDestructive
Link a waybill to an invoice (ზედნადების მიბმა ანგარიშ-ფაქტურაზე)
Inputs: invois_id (required), overhead_dt (required), overhead_no (required).
save_waybillBDestructive
Create or update a waybill (ზედნადების შექმნა/რედაქტირება). Builds the full WAYBILL XML from structured input.
Inputs: type (required), status (required), trans_id (required), buyer_tin (required), +25 more.
send_waybillADestructive
Activate a saved waybill — sets status to active and assigns a waybill number (ზედნადების გააქტიურება)
Inputs: waybill_id (required).
send_waybill_vdBDestructive
Activate a saved waybill with a specific begin date (ზედნადების გააქტიურება თარიღით)
Inputs: begin_date (required), waybill_id (required).
tax_customs_warehouse_exitCDestructive
Register customs warehouse exit (საბაჟო საწყობიდან გასვლის რეგისტრაცია)
Inputs: car_number (required), customs_code (required), declaration_number (required).
tax_get_cargo200_infoCRead-only
Get cargo 200 customs information for a date range (ტვირთი 200 საბაჟო ინფორმაცია)
Inputs: end_date (required), start_date (required).
tax_get_comp_act_newARead-only
Get comparison act in new format -- tax balances, markups, penalties (შედარების აქტი ახალი ფორმატით)
Inputs: end_date (required), said_code (required), start_date (required).
tax_get_comp_act_oldARead-only
Get comparison act in old format -- DESC + 11 data columns (შედარების აქტი ძველი ფორმატით)
Inputs: end_date (required), said_code (required), start_date (required), session_id.
tax_get_income_amountBRead-only
Get joint/total income amount for a given year (ერთობლივი შემოსავლის თანხა წლის მიხედვით)
Inputs: year (required).
tax_get_legal_person_infoBRead-only
Get legal entity details -- name, form, address, status, responsible persons (იურიდიული პირის ინფორმაცია)
Inputs: said_code (required).
tax_get_payer_infoBRead-only
Get comprehensive payer info -- status, declarations, waybills, cash box, customs (გადამხდელის სრული ინფორმაცია)
Inputs: said_code (required).
tax_get_payer_info_gitaBRead-only
Get GITA payer info with financial data -- salary, VAT, income, earnings declarations (GITA გადამხდელის ინფორმაცია)
Inputs: end_date (required), payer_code (required), start_date (required).
tax_get_payer_nace_infoARead-only
Get NACE activity codes for a taxpayer (გადამხდელის NACE კოდები)
Inputs: said_code (required).
tax_get_person_income_dataBRead-only
Get person income data -- yearly/monthly amounts, category (ფიზიკური პირის შემოსავლის მონაცემები)
Inputs: personal_number (required).
tax_get_quick_cash_infoBRead-only
Get financial dashboard -- income/VAT declarations, comparison card, salary/waybill/invoice monthly (სწრაფი ფინანსური მიმოხილვა)
Inputs: no named parameters.
tax_get_tp_contactsARead-only
Get taxpayer invoice/waybill contact info -- phone, email (გადამხდელის საკონტაქტო ინფორმაცია)
Inputs: tp_code (required).
tax_get_tp_info_publicARead-only
Get public taxpayer info by TIN -- name, legal form, status, VAT, address (გადამხდელის საჯარო ინფორმაცია)
Inputs: tp_code (required).
tax_get_waybill_month_amountARead-only
Get monthly waybill amounts by TIN and date range (ზედნადების თვიური თანხები)
Inputs: end_date (required), said_code (required), start_date (required).
tax_get_z_report_detailsARead-only
Get Z-report per-device details -- device number, date, quantity, amounts (Z-ანგარიშის დეტალები)
Inputs: end_date (required), start_date (required).
tax_get_z_report_sumBRead-only
Get Z-report cash register totals for a date range (საკონტროლო-სალარო აპარატის Z-ანგარიშის ჯამი)
Inputs: end_date (required), start_date (required).
tax_gita_payer_activationCDestructive
Activate GITA payer info access after SMS verification (GITA გადამხდელის ინფორმაციაზე წვდომის აქტივაცია)
Inputs: status (required), payer_code (required), start_date (required).
tax_gita_sms_verificationBRead-only
Verify SMS code for GITA payer info 2-step auth (SMS კოდის ვერიფიკაცია GITA ინფორმაციისთვის)
Inputs: sms_code (required), payer_code (required).
tax_payer_info_activationBDestructive
Activate or deactivate payer info access after SMS verification (გადამხდელის ინფორმაციაზე წვდომის აქტივაცია/დეაქტივაცია)
Inputs: status (required), said_code (required).
tax_tp_sms_verificationCRead-only
Verify SMS code for standard payer info 2-step auth (SMS კოდის ვერიფიკაცია გადამხდელის ინფორმაციისთვის)
Inputs: sms_code (required), said_code (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 87 tools
Many tools have overlapping purposes, such as multiple ways to list invoices and waybills (e.g., get_buyer_invoices, get_seller_invoices, get_user_invoices). The ntos_* tools duplicate lookup functionality, and the mix of Georgian/English descriptions adds ambiguity.
Most tools follow a verb_noun snake_case pattern (save_invoice, get_waybill), but there are inconsistencies: some start with 'tax_', 'ntos_', or 'acsept_' (typo), and 'k_invoice' lacks a verb. Overall pattern is recognizable but not uniform.
With 87 tools, the server is overly large. Many tools are slight variations (e.g., four waybill listing tools) that could be consolidated. The scope is broad but could be pruned significantly without losing functionality.
The server covers a wide range of operations for invoices, waybills, taxpayer info, customs, and Z-reports. CRUD operations are mostly present, though some missing user management and invoice editing. The domain is well-covered overall.
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for Codat — companies, connections, invoices, bills and financial statements.
MCP server for Quaderno — tax-rate calculation, invoices, contacts, products, receipts & expenses.
AI VAT Number Validation: hosted MCP server for EU VAT number checks via VIES.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables 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.51MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes tools for Taiwan's ezPay e-invoice lifecycle, enabling AI assistants to issue, void, and query invoices and allowances through the standard MCP protocol.1MIT
- AlicenseAqualityCmaintenanceMCP server for creating and fiscalizing invoices via solo.com.hr API. Enables AI agents to generate invoices, retrieve invoice details, list invoices, and check next invoice number.4MIT
- AlicenseBqualityCmaintenanceLocal MCP server for TOCOnline accounting/invoicing API that enables AI assistants to manage customers, products, sales documents, and call arbitrary endpoints via natural language after OAuth login.671MIT