Skip to main content
Glama

Server Details

ZATCA-compliant Saudi invoicing and accounting: invoices, receivables, VAT, ledger, payroll.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

6 tools
fawtar_createCreate a recordAInspect

Create a customer, product, vendor, employee, asset or other simple record. Use fawtar_create_invoice for invoices — issuing one claims a sequential number, computes VAT, writes the QR and posts to the ledger, none of which a generic insert does.

Creatable resources: quotes, orders, customers, products, categories, product_unit_types, vendors, bills, simple_bills, bill_payments, inventories, inventory_adjustments, inventory_transfers, invoice_payments, accounts, journal_entries, employees, assets, pos_tables.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe record's fields.
resourceYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations only indicate non-read-only and non-destructive; the description adds the useful caveat that a generic insert does not perform invoice side effects. It does not go further into validation, ID generation, or returned values, so it provides moderate but not rich 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded: action and key caveat first, alternative second, resource enumeration last. The resource list is redundant with the schema enum but convenient; otherwise no sentence is wasted.

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 generic multi-resource create with no output schema, the description is nearly complete: it names all creatable resources, excludes invoices explicitly, and warns about absent invoicing side effects. It stops short of resource-specific data shape guidance or post-create behavior, but those may be intentionally delegated to per-resource catalogs.

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 50% schema coverage, the description repeats the resource enum in plain language and adds examples, but it does not explain per-resource field requirements for `data` beyond 'The record's fields.' The invoice exclusion is a meaningful semantic distinction for `resource`, but the description still relies on the schema for most parameter meaning.

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 first sentence names the action (create) and the affected resources (customer, product, vendor, employee, asset, or other simple record), and the second explicitly carves out invoices with fawtar_create_invoice. This makes the tool's scope concrete and distinguishes it from its nearest sibling.

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?

It states the key alternative, fawtar_create_invoice, and the condition for choosing it ('for invoices'), with concrete reasons (sequential number, VAT, QR, ledger posting). This is exactly the when-to-use vs when-not-to-use guidance an agent needs.

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

fawtar_create_invoiceIssue an invoiceAInspect

Issue a tax or ordinary invoice. This is a real financial document: it takes the next sequential number, computes VAT, generates the ZATCA QR code and posts to the general ledger. It cannot be edited afterwards — correct it with a credit note. Confirm the amounts with the user before calling.

Use taxTreatment "tax" for a VAT-registered business, "ordinary" for one that is not registered. Use type "simplified" for individuals, "standard" for businesses (which requires the buyer's VAT number).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
buyerNo
linesYes
notesNo
dueDateNoYYYY-MM-DD
taxTreatmentYes
pricesIncludeVatNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only mark this as non-read-only and non-destructive, so the description carries the full burden. It discloses that this is a real financial document, is irreversible, takes a sequential number, posts to the general ledger, and must be corrected via a credit note. This is exactly the kind of behavioral consequence an agent needs 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short paragraphs with no filler. The irreversible financial warning and usage instructions are front-loaded, and the parameter mapping guidance is tightly written.

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?

For a financial mutation tool with no output schema, the description covers the core action, parameter decision rules, user confirmation step, and post-issuance correction path. An agent has enough safety-critical context to invoke the tool 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?

With schema description coverage at only 14%, the description compensates for the most decision-critical parameters: taxTreatment maps to VAT registration status and type maps to simplified vs standard with a buyer VAT number requirement. Other parameters are largely self-explanatory or already described in the schema, so the remaining gaps are minor.

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?

States a specific verb-resource pair ('Issue a tax or ordinary invoice') and clearly distinguishes itself from sibling get/list/vat tools by emphasizing real accounting effects: next sequential number, VAT computation, ZATCA QR code, and general ledger posting. The scope is unambiguous.

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?

Provides explicit selection rules for taxTreatment and type, and instructs the agent to confirm amounts with the user before calling. It does not explicitly name alternative sibling tools or exclusion conditions, but the 'cannot be edited afterwards' warning strongly implies when to avoid direct use.

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

fawtar_getFetch one recordA
Read-only
Inspect

Fetch a single record by id. For invoices this also returns the line items and the public share link.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe record's uuid.
resourceYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so safety is covered. The description goes beyond by disclosing that invoices return line items and a public share link, adding behavioral context that is not present in 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?

Two short sentences. The primary action is front-loaded, and the invoice-specific addition is concise and valuable. 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 simple get-by-id tool, the description covers the essential behavior and the notable invoice extra. It does not mention return format or all resource specifics, but these are not necessary given the simplicity and the schema enum.

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 50% (id has a description, resource has only an enum). The description does not elaborate on parameters, but the resource enum is self-explanatory. This falls at the baseline; no added value from the description, but no gap that breaks 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?

Description states a specific verb ('Fetch') and resource ('single record by id'), and adds a useful detail about invoices. It is clear even without explicitly naming siblings; the contrast with 'fawtar_list' is implicit but apparent.

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 conveys that this is for fetching one record by id, which implies when to use it. It does not explicitly mention alternatives or exclusions, but the context of sibling tools (create, list, etc.) makes the use case evident.

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

fawtar_listList recordsA
Read-only
Inspect

List records from any Fawtar resource, with filtering, sorting and paging.

Resources:

  • invoices: إصدار الفواتير الضريبية وقراءتها.

  • credit_notes: تصحيح فاتورة صادرة بالخصم.

  • debit_notes: تصحيح فاتورة صادرة بالزيادة.

  • quotes: عروض الأسعار قبل تحوّلها إلى فواتير.

  • orders: طلبات المتجر قبل الفوترة.

  • customers: بيانات العملاء وأرقامهم الضريبية والعنوان الوطني.

  • products: المنتجات والخدمات وأسعارها.

  • categories: تصنيفات المنتجات.

  • product_unit_types: وحدات بيع المنتجات.

  • vendors: بيانات الموردين.

  • bills: فواتير الموردين ببنودها.

  • simple_bills: مصروف بمبلغ واحد دون بنود.

  • bill_payments: سداد فواتير الموردين.

  • inventories: المستودعات والفروع.

  • inventory_levels: الكميات المتاحة لكل منتج في كل مستودع.

  • inventory_adjustments: زيادة أو إنقاص كمية بسبب جرد أو تلف.

  • inventory_transfers: نقل كمية بين مستودعين.

  • invoice_payments: تسجيل دفعة على فاتورة.

  • receipts: الدفعات نفسها بصيغة سند القبض.

  • accounts: شجرة الحسابات وأنواعها.

  • journal_entries: القيود المرحّلة إلى دفتر الأستاذ.

  • recurring_journals: جدولة القيود التي تتكرر كل فترة.

  • employees: بيانات الموظفين ورواتبهم وبدلاتهم.

  • payroll_runs: المسيّرات الشهرية وإجمالياتها.

  • payslips: قسيمة كل موظف داخل المسيّر.

  • assets: سجل الأصول وإهلاكها.

  • pos_tables: طاولات صالة المطعم.

  • pos_orders: طلبات نقاط البيع المفتوحة والمحصّلة.

Filters use the form {"field_predicate": "value"} — for example {"status_eq": "issued"} or {"issued_at_gteq": "2026-01-01"}. Predicates: eq, not_eq, cont, start, end, gt, gteq, lt, lteq, in, null. Only fields the resource allows are honoured; anything else is ignored.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sortNoSort as "field asc" or "field desc".
limitNo
filtersNoRansack-style filters, e.g. {"status_eq":"issued"}.
resourceYesWhich resource to list.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark it readOnly and non-destructive, and the description adds meaningful behavior: filter syntax, supported predicates, and the explicit warning that unsupported field predicates are silently ignored. It does not overclaim or contradict the read-only hint.

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 long resource list is justified because all 27 enum values need disambiguation, and the bullet format is scannable. The filter rules are front-loaded before the catalog, and there is no obvious filler, though it is still a sizable wall of text.

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 5-parameter tool with no output schema, the description covers resource selection, filter predicates, sorting, paging, and ignored-field behavior. Minor gaps remain around response shape and pagination metadata, but the required invocation details are present.

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 60%: sort, filters, and resource have descriptions, while page and limit only have schema constraints. The description compensates with a predicate list, filter example, and per-resource meaning for the enum, adding real selection 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 leads with a specific verb and resource scope: "List records from any Fawtar resource", then enumerates 27 supported resources with short definitions. This clearly separates it from siblings like fawtar_create and fawtar_get even before inspecting the schema.

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 opening sentence gives clear context: use this when you need to list records with filtering, sorting, and paging rather than creating or fetching a single record. It does not explicitly name alternatives or state when not to use it, so it stops short of 5.

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

fawtar_outstandingWhat is owed to this businessA
Read-only
Inspect

Every unpaid issued invoice with its remaining balance and how many days it is overdue, newest due first, plus the totals. This is the answer to 'who owes me money' without composing filters by hand.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
overdueOnlyNoOnly invoices past their due date.

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. The description adds return format and sorting, but it says 'Every unpaid issued invoice' while the schema has a default limit of 50, which could mislead an agent into thinking all are returned. It also does not clarify that the totals are computed over the returned set or all outstanding, leaving ambiguity. This is a transparency gap beyond what annotations cover.

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?

Two sentences with no filler. The core purpose is front-loaded, and the 'who owes me money' framing adds immediate context 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?

The description explains the returned data (unpaid invoices with balance, days overdue, sorted by due date, plus totals) but omits critical details about pagination (limit) and the overdueOnly filter. It also fails to clarify whether totals apply to just the returned page or all outstanding invoices. Since there is no output schema, the description carries the burden of return semantics, and it only partially does so.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 50% (overdueOnly has a description, limit does not). The description does not mention either parameter or how they affect results. It fails to compensate for the missing schema documentation, and the 'Every...' phrasing even conflicts with the limit parameter's existence.

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 states a specific resource (unpaid issued invoices) and outcome (remaining balance, days overdue, totals), and explicitly frames it as the answer to 'who owes me money'. It clearly differentiates from siblings like fawtar_list (general list) and fawtar_vat_summary (VAT-specific) by focusing on outstanding balances.

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?

It directly instructs when to use this tool ('This is the answer to who owes me money without composing filters by hand'), giving a clear use case. It does not explicitly exclude alternatives, but the context makes the intended scenario unambiguous. A minor deduction for not naming alternatives or edge cases.

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

fawtar_vat_summaryVAT for a periodA
Read-only
Inspect

Output VAT charged on sales, input VAT paid on expenses, and the net payable for a date range — the figures a VAT return is built from. Recoverable input VAT only; expenses marked non-recoverable are excluded, as they must be.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesYYYY-MM-DD, inclusive.
fromYesYYYY-MM-DD, inclusive.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and non-destructive. The description adds meaningful behavior beyond that: it discloses that only recoverable input VAT is included and explicitly excludes non-recoverable expenses. This is useful domain-specific behavior not visible in the schema.

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-front-loaded sentence that states the core outputs first, then adds the important exclusion rule. It contains only relevant information and no redundant elaboration.

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?

Despite having no output schema, the description fully enumerates the returned figures and the exclusion behavior. The two date parameters are already documented in the schema, and the read-only safety is covered by annotations. Nothing essential is 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 description coverage is 100%, with from and to both documented as inclusive YYYY-MM-DD strings. The description only refers to a 'date range' and adds no extra parameter-level detail, 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 names a precise resource ('VAT for a period') and the exact figures computed: output VAT on sales, input VAT on expenses, and net payable. This clearly separates it from sibling tools like list or get by specifying the summary nature of the result.

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 gives clear context: it is for a date range and provides the figures a VAT return is built from. It doesn't explicitly mention when not to use it or name an alternative tool, but the purpose is specific enough that an agent can infer appropriate usage.

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

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An AI-native MCP server for Saudi e-invoicing that generates ZATCA-compliant invoices, QR codes, and XML from natural language, with validation and Phase 2 signing capabilities.
    9
    4
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides complete Portuguese invoice management with 60+ specialized tools including invoice creation, client management, SAF-T tax compliance, treasury operations, and Portuguese Tax Authority (AT) integration for AI-powered business automation.
    27
    4
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Remote MCP server that lets any AI agent submit Saudi Arabia tax invoices to ZATCA (Fatoora Phase 2) — the Zakat, Tax and Customs Authority national e-invoicing gateway.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation4/5

fawtar_create and fawtar_create_invoice are clearly separated by the explicit warning that invoices need the specialized tool, and get/list/outstanding/vat_summary each have distinct read/report purposes. The only mild ambiguity is fawtar_outstanding overlapping fawtar_list with filters, but descriptions make the specialized intent obvious.

Naming Consistency3/5

All tools share the fawtar_ prefix and snake_case, but the action suffix is inconsistent: create/get/list are generic verbs, create_invoice combines verb+noun, and outstanding/vat_summary are noun-phrase report names rather than verb_noun commands.

Tool Count5/5

Six tools is a compact, well-scoped set for a broad API: three generic CRUD-ish verbs and three specialized financial actions (invoice creation, outstanding report, VAT summary). Each tool has a distinct role and the count feels intentional.

Completeness2/5

The surface covers creation, retrieval, listing, and key financial reports, but there are no update/delete tools for editable master data and no way to create credit notes or debit notes even though the invoice tool explicitly directs corrections to credit notes. These are significant gaps that will make common workflows fail.

Resources