8 EU accounting (x402 USDC on Base): reconcile, VAT, invoicing. Free health.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Apply confirmed Portuguese tax categories to Xero transactions. Updates AccountCode and TaxType.
Array of transaction-to-category assignments
Customer API key hash identifying Xero token
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Apply confirmed Portuguese tax categories to Xero transactions. Updates AccountCode and TaxType.
| Argument | Type | Description |
|---|---|---|
| categories* | array | Array of transaction-to-category assignments |
| api_key_hash* | string | Customer API key hash identifying Xero token |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"categories",
"api_key_hash"
],
"properties": {
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"transaction_id",
"category_code"
],
"properties": {
"region": {
"enum": [
"mainland",
"azores",
"madeira"
],
"type": "string"
},
"category_code": {
"type": "string"
},
"transaction_id": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "Array of transaction-to-category assignments"
},
"api_key_hash": {
"type": "string",
"description": "Customer API key hash identifying Xero token"
}
},
"additionalProperties": false
}Calculate Portuguese VAT for a given amount, category, and region. Supports Mainland, Azores, and Madeira rates. Detects intra-community B2B reverse charge.
| Argument | Type | Description |
|---|---|---|
| amount* | number | Net amount (ex-VAT) to calculate VAT on |
| is_b2b | boolean | Whether the transaction is business-to-business |
| region | string | Portuguese tax region |
| category | string | Portuguese tax category code (e.g. office_supplies, food_restaurant) |
| counterpart_country | string | ISO 3166-1 alpha-2 country code of the counterpart |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"amount"
],
"properties": {
"amount": {
"type": "number",
"description": "Net amount (ex-VAT) to calculate VAT on",
"exclusiveMinimum": 0
},
"is_b2b": {
"type": "boolean",
"default": false,
"description": "Whether the transaction is business-to-business"
},
"region": {
"enum": [
"mainland",
"azores",
"madeira"
],
"type": "string",
"default": "mainland",
"description": "Portuguese tax region"
},
"category": {
"type": "string",
"description": "Portuguese tax category code (e.g. office_supplies, food_restaurant)"
},
"counterpart_country": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "ISO 3166-1 alpha-2 country code of the counterpart"
}
},
"additionalProperties": false
}Suggest Portuguese tax categories for uncategorised Xero expenses. Returns category, VAT tier, deductibility, and VAT breakdown per transaction.
| Argument | Type | Description |
|---|---|---|
| region | string | Portuguese tax region |
| to_date | string | End date filter (YYYY-MM-DD) |
| from_date | string | Start date filter (YYYY-MM-DD) |
| api_key_hash* | string | Customer API key hash identifying Xero token |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"api_key_hash"
],
"properties": {
"region": {
"enum": [
"mainland",
"azores",
"madeira"
],
"type": "string",
"default": "mainland",
"description": "Portuguese tax region"
},
"to_date": {
"type": "string",
"description": "End date filter (YYYY-MM-DD)"
},
"from_date": {
"type": "string",
"description": "Start date filter (YYYY-MM-DD)"
},
"api_key_hash": {
"type": "string",
"description": "Customer API key hash identifying Xero token"
}
},
"additionalProperties": false
}Apply confirmed reconciliation matches to Xero. Marks matched bank transactions as reconciled.
| Argument | Type | Description |
|---|---|---|
| matches* | array | Array of confirmed statement-to-transaction matches |
| api_key_hash* | string | Customer API key hash identifying Xero token |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"matches",
"api_key_hash"
],
"properties": {
"matches": {
"type": "array",
"items": {
"type": "object",
"required": [
"statement_line_id",
"bank_transaction_id"
],
"properties": {
"statement_line_id": {
"type": "string"
},
"bank_transaction_id": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "Array of confirmed statement-to-transaction matches"
},
"api_key_hash": {
"type": "string",
"description": "Customer API key hash identifying Xero token"
}
},
"additionalProperties": false
}Create a DRAFT invoice in Xero with VAT preview. Returns line totals and tax amounts for review before sending.
| Argument | Type | Description |
|---|---|---|
| notes | string | Notes for internal use |
| currency | string | Currency code (defaults to EUR) |
| due_date* | string | Due date (YYYY-MM-DD) |
| reference | string | Invoice reference number |
| line_items* | array | Invoice line items |
| api_key_hash* | string | Customer API key hash identifying Xero token |
| contact_name* | string | Invoice recipient name |
| contact_email* | string | Invoice recipient email address |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contact_name",
"contact_email",
"line_items",
"due_date",
"api_key_hash"
],
"properties": {
"notes": {
"type": "string",
"description": "Notes for internal use"
},
"currency": {
"type": "string",
"default": "EUR",
"description": "Currency code (defaults to EUR)"
},
"due_date": {
"type": "string",
"description": "Due date (YYYY-MM-DD)"
},
"reference": {
"type": "string",
"description": "Invoice reference number"
},
"line_items": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"amount"
],
"properties": {
"amount": {
"type": "number",
"description": "Unit amount (ex-VAT)"
},
"category": {
"type": "string",
"description": "Portuguese tax category for automatic VAT lookup (e.g. professional_services, software_licenses)"
},
"quantity": {
"type": "number",
"default": 1,
"description": "Quantity (defaults to 1)"
},
"tax_type": {
"type": "string",
"description": "Xero tax type override (e.g. OUTPUT2, EXEMPTOUTPUT)"
},
"description": {
"type": "string",
"description": "Line item description"
},
"account_code": {
"type": "string",
"default": "200",
"description": "Xero account code (defaults to 200 - Sales)"
}
},
"additionalProperties": false
},
"description": "Invoice line items"
},
"api_key_hash": {
"type": "string",
"description": "Customer API key hash identifying Xero token"
},
"contact_name": {
"type": "string",
"description": "Invoice recipient name"
},
"contact_email": {
"type": "string",
"format": "email",
"description": "Invoice recipient email address"
}
},
"additionalProperties": false
}Generate a financial report: P&L, Balance Sheet, Cash Flow (indirect method from balance sheet deltas), or VAT Summary with Portuguese SAF-T filing hints.
| Argument | Type | Description |
|---|---|---|
| to_date | string | End date (YYYY-MM-DD, defaults to today) |
| from_date | string | Start date (YYYY-MM-DD, defaults to 1st of current month) |
| report_type* | string | Report type to generate |
| api_key_hash* | string | Customer API key hash identifying Xero token |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"report_type",
"api_key_hash"
],
"properties": {
"to_date": {
"type": "string",
"description": "End date (YYYY-MM-DD, defaults to today)"
},
"from_date": {
"type": "string",
"description": "Start date (YYYY-MM-DD, defaults to 1st of current month)"
},
"report_type": {
"enum": [
"pnl",
"balance_sheet",
"cash_flow",
"vat_summary"
],
"type": "string",
"description": "Report type to generate"
},
"api_key_hash": {
"type": "string",
"description": "Customer API key hash identifying Xero token"
}
},
"additionalProperties": false
}Health check. Returns server status and optional echo.
| Argument | Type | Description |
|---|---|---|
| echo | string | Optional string to echo back |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"echo": {
"type": "string",
"description": "Optional string to echo back"
}
},
"additionalProperties": false
}Match bank statement lines against unreconciled Xero transactions. Returns confidence-scored matches (>=0.8 matched, 0.5-0.8 suggested, <0.5 unmatched).
| Argument | Type | Description |
|---|---|---|
| to_date | string | End date filter (YYYY-MM-DD) |
| from_date | string | Start date filter (YYYY-MM-DD) |
| api_key_hash* | string | Customer API key hash identifying Xero token |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"api_key_hash"
],
"properties": {
"to_date": {
"type": "string",
"description": "End date filter (YYYY-MM-DD)"
},
"from_date": {
"type": "string",
"description": "Start date filter (YYYY-MM-DD)"
},
"api_key_hash": {
"type": "string",
"description": "Customer API key hash identifying Xero token"
}
},
"additionalProperties": false
}Authorise a DRAFT invoice and email it to the contact via Xero. Two-step: sets status to AUTHORISED then triggers email.
| Argument | Type | Description |
|---|---|---|
| invoice_id* | string | Xero InvoiceID to authorise and send |
| api_key_hash* | string | Customer API key hash identifying Xero token |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"invoice_id",
"api_key_hash"
],
"properties": {
"invoice_id": {
"type": "string",
"description": "Xero InvoiceID to authorise and send"
},
"api_key_hash": {
"type": "string",
"description": "Customer API key hash identifying Xero token"
}
},
"additionalProperties": false
}