Server definition
- Hash
- sha256:e8fb9044899291e808d9626853cfee71d84bc3472374c3f623d5efb1ba873c81
- What it is
- What a remote MCP server returned when asked what it offers: 9 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Apply confirmed Portuguese tax categories to Xero transactions. Updates AccountCode and TaxType.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key_hash": {
"description": "Customer API key hash identifying Xero token",
"type": "string"
},
"categories": {
"description": "Array of transaction-to-category assignments",
"items": {
"additionalProperties": false,
"properties": {
"category_code": {
"type": "string"
},
"region": {
"enum": [
"mainland",
"azores",
"madeira"
],
"type": "string"
},
"transaction_id": {
"type": "string"
}
},
"required": [
"transaction_id",
"category_code"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"categories",
"api_key_hash"
],
"type": "object"
},
"name": "apply_categories",
"outputSchema": null
},
{
"description": "Calculate Portuguese VAT for a given amount, category, and region. Supports Mainland, Azores, and Madeira rates. Detects intra-community B2B reverse charge.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"amount": {
"description": "Net amount (ex-VAT) to calculate VAT on",
"exclusiveMinimum": 0,
"type": "number"
},
"category": {
"description": "Portuguese tax category code (e.g. office_supplies, food_restaurant)",
"type": "string"
},
"counterpart_country": {
"description": "ISO 3166-1 alpha-2 country code of the counterpart",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"is_b2b": {
"default": false,
"description": "Whether the transaction is business-to-business",
"type": "boolean"
},
"region": {
"default": "mainland",
"description": "Portuguese tax region",
"enum": [
"mainland",
"azores",
"madeira"
],
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
},
"name": "calculate_vat",
"outputSchema": null
},
{
"description": "Suggest Portuguese tax categories for uncategorised Xero expenses. Returns category, VAT tier, deductibility, and VAT breakdown per transaction.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key_hash": {
"description": "Customer API key hash identifying Xero token",
"type": "string"
},
"from_date": {
"description": "Start date filter (YYYY-MM-DD)",
"type": "string"
},
"region": {
"default": "mainland",
"description": "Portuguese tax region",
"enum": [
"mainland",
"azores",
"madeira"
],
"type": "string"
},
"to_date": {
"description": "End date filter (YYYY-MM-DD)",
"type": "string"
}
},
"required": [
"api_key_hash"
],
"type": "object"
},
"name": "categorise_expenses",
"outputSchema": null
},
{
"description": "Apply confirmed reconciliation matches to Xero. Marks matched bank transactions as reconciled.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key_hash": {
"description": "Customer API key hash identifying Xero token",
"type": "string"
},
"matches": {
"description": "Array of confirmed statement-to-transaction matches",
"items": {
"additionalProperties": false,
"properties": {
"bank_transaction_id": {
"type": "string"
},
"statement_line_id": {
"type": "string"
}
},
"required": [
"statement_line_id",
"bank_transaction_id"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"matches",
"api_key_hash"
],
"type": "object"
},
"name": "confirm_reconciliation",
"outputSchema": null
},
{
"description": "Create a DRAFT invoice in Xero with VAT preview. Returns line totals and tax amounts for review before sending.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key_hash": {
"description": "Customer API key hash identifying Xero token",
"type": "string"
},
"contact_email": {
"description": "Invoice recipient email address",
"format": "email",
"type": "string"
},
"contact_name": {
"description": "Invoice recipient name",
"type": "string"
},
"currency": {
"default": "EUR",
"description": "Currency code (defaults to EUR)",
"type": "string"
},
"due_date": {
"description": "Due date (YYYY-MM-DD)",
"type": "string"
},
"line_items": {
"description": "Invoice line items",
"items": {
"additionalProperties": false,
"properties": {
"account_code": {
"default": "200",
"description": "Xero account code (defaults to 200 - Sales)",
"type": "string"
},
"amount": {
"description": "Unit amount (ex-VAT)",
"type": "number"
},
"category": {
"description": "Portuguese tax category for automatic VAT lookup (e.g. professional_services, software_licenses)",
"type": "string"
},
"description": {
"description": "Line item description",
"type": "string"
},
"quantity": {
"default": 1,
"description": "Quantity (defaults to 1)",
"type": "number"
},
"tax_type": {
"description": "Xero tax type override (e.g. OUTPUT2, EXEMPTOUTPUT)",
"type": "string"
}
},
"required": [
"description",
"amount"
],
"type": "object"
},
"type": "array"
},
"notes": {
"description": "Notes for internal use",
"type": "string"
},
"reference": {
"description": "Invoice reference number",
"type": "string"
}
},
"required": [
"contact_name",
"contact_email",
"line_items",
"due_date",
"api_key_hash"
],
"type": "object"
},
"name": "draft_invoice",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key_hash": {
"description": "Customer API key hash identifying Xero token",
"type": "string"
},
"from_date": {
"description": "Start date (YYYY-MM-DD, defaults to 1st of current month)",
"type": "string"
},
"report_type": {
"description": "Report type to generate",
"enum": [
"pnl",
"balance_sheet",
"cash_flow",
"vat_summary"
],
"type": "string"
},
"to_date": {
"description": "End date (YYYY-MM-DD, defaults to today)",
"type": "string"
}
},
"required": [
"report_type",
"api_key_hash"
],
"type": "object"
},
"name": "generate_report",
"outputSchema": null
},
{
"description": "Health check. Returns server status and optional echo.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"echo": {
"description": "Optional string to echo back",
"type": "string"
}
},
"type": "object"
},
"name": "health",
"outputSchema": null
},
{
"description": "Match bank statement lines against unreconciled Xero transactions. Returns confidence-scored matches (>=0.8 matched, 0.5-0.8 suggested, <0.5 unmatched).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key_hash": {
"description": "Customer API key hash identifying Xero token",
"type": "string"
},
"from_date": {
"description": "Start date filter (YYYY-MM-DD)",
"type": "string"
},
"to_date": {
"description": "End date filter (YYYY-MM-DD)",
"type": "string"
}
},
"required": [
"api_key_hash"
],
"type": "object"
},
"name": "reconcile_transactions",
"outputSchema": null
},
{
"description": "Authorise a DRAFT invoice and email it to the contact via Xero. Two-step: sets status to AUTHORISED then triggers email.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key_hash": {
"description": "Customer API key hash identifying Xero token",
"type": "string"
},
"invoice_id": {
"description": "Xero InvoiceID to authorise and send",
"type": "string"
}
},
"required": [
"invoice_id",
"api_key_hash"
],
"type": "object"
},
"name": "send_invoice",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:e8fb9044899291e808d9626853cfee71d84bc3472374c3f623d5efb1ba873c81 | sha256sum