8 EU accounting (x402 USDC on Base): reconcile, VAT, invoicing. Free health.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://xero.api.ainode.tech/mcp9 tools · 490mshealthHealth check. Returns server status and optional echo.Health check. Returns server status and optional echo.
| Parameter | Type | Description |
|---|---|---|
| echo | string | Optional string to echo back |
reconcile_transactionsMatch bank statement lines against unreconciled Xero transactions. Returns confidence-scored matches (>=0.8 matched, 0.5-0.8 suggested, <0.5 unmatched).Match bank statement lines against unreconciled Xero transactions. Returns confidence-scored matches (>=0.8 matched, 0.5-0.8 suggested, <0.5 unmatched).
| Parameter | Type | Description |
|---|---|---|
| api_key_hash* | string | Customer API key hash identifying Xero token |
| from_date | string | Start date filter (YYYY-MM-DD) |
| to_date | string | End date filter (YYYY-MM-DD) |
confirm_reconciliationApply confirmed reconciliation matches to Xero. Marks matched bank transactions as reconciled.Apply confirmed reconciliation matches to Xero. Marks matched bank transactions as reconciled.
| Parameter | Type | Description |
|---|---|---|
| matches* | array | Array of confirmed statement-to-transaction matches |
| api_key_hash* | string | Customer API key hash identifying Xero token |
categorise_expensesSuggest Portuguese tax categories for uncategorised Xero expenses. Returns category, VAT tier, deductibility, and VAT breakdown per transaction.Suggest Portuguese tax categories for uncategorised Xero expenses. Returns category, VAT tier, deductibility, and VAT breakdown per transaction.
| Parameter | Type | Description |
|---|---|---|
| api_key_hash* | string | Customer API key hash identifying Xero token |
| from_date | string | Start date filter (YYYY-MM-DD) |
| to_date | string | End date filter (YYYY-MM-DD) |
| region | string | Portuguese tax region |
apply_categoriesApply confirmed Portuguese tax categories to Xero transactions. Updates AccountCode and TaxType.Apply confirmed Portuguese tax categories to Xero transactions. Updates AccountCode and TaxType.
| Parameter | Type | Description |
|---|---|---|
| categories* | array | Array of transaction-to-category assignments |
| api_key_hash* | string | Customer API key hash identifying Xero token |
calculate_vatCalculate Portuguese VAT for a given amount, category, and region. Supports Mainland, Azores, and Madeira rates. Detects intra-community B2B reverse charge.Calculate Portuguese VAT for a given amount, category, and region. Supports Mainland, Azores, and Madeira rates. Detects intra-community B2B reverse charge.
| Parameter | Type | Description |
|---|---|---|
| amount* | number | Net amount (ex-VAT) to calculate VAT on |
| category | string | Portuguese tax category code (e.g. office_supplies, food_restaurant) |
| region | string | Portuguese tax region |
| is_b2b | boolean | Whether the transaction is business-to-business |
| counterpart_country | string | ISO 3166-1 alpha-2 country code of the counterpart |
draft_invoiceCreate a DRAFT invoice in Xero with VAT preview. Returns line totals and tax amounts for review before sending.Create a DRAFT invoice in Xero with VAT preview. Returns line totals and tax amounts for review before sending.
| Parameter | Type | Description |
|---|---|---|
| contact_name* | string | Invoice recipient name |
| contact_email* | string | Invoice recipient email address |
| line_items* | array | Invoice line items |
| due_date* | string | Due date (YYYY-MM-DD) |
| currency | string | Currency code (defaults to EUR) |
| reference | string | Invoice reference number |
| notes | string | Notes for internal use |
| api_key_hash* | string | Customer API key hash identifying Xero token |
send_invoiceAuthorise a DRAFT invoice and email it to the contact via Xero. Two-step: sets status to AUTHORISED then triggers email.Authorise a DRAFT invoice and email it to the contact via Xero. Two-step: sets status to AUTHORISED then triggers email.
| Parameter | Type | Description |
|---|---|---|
| invoice_id* | string | Xero InvoiceID to authorise and send |
| api_key_hash* | string | Customer API key hash identifying Xero token |
generate_reportGenerate a financial report: P&L, Balance Sheet, Cash Flow (indirect method from balance sheet deltas), or VAT Summary with Portuguese SAF-T filing hints.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.
| Parameter | Type | Description |
|---|---|---|
| report_type* | string | Report type to generate |
| from_date | string | Start date (YYYY-MM-DD, defaults to 1st of current month) |
| to_date | string | End date (YYYY-MM-DD, defaults to today) |
| api_key_hash* | string | Customer API key hash identifying Xero token |
9 of 9 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
8 EU accounting (x402 USDC on Base): reconcile, VAT, invoicing. Free health.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.