mcpengine/servers/xero/TOOLS_SUMMARY.md

4.0 KiB

Xero MCP Server - Tool Summary

Total Tools: 84

All tool files successfully created and TypeScript compilation passes with no errors.

Tool Categories (13 files)

1. src/tools/invoices.ts (9 tools)

  • xero_list_invoices
  • xero_get_invoice
  • xero_create_invoice
  • xero_update_invoice
  • xero_void_invoice
  • xero_delete_invoice
  • xero_email_invoice
  • xero_add_invoice_attachment
  • xero_get_invoice_attachments

2. src/tools/contacts.ts (8 tools)

  • xero_list_contacts
  • xero_get_contact
  • xero_create_contact
  • xero_update_contact
  • xero_archive_contact
  • xero_list_contact_groups
  • xero_create_contact_group
  • xero_add_contact_to_group

3. src/tools/accounts.ts (6 tools)

  • xero_list_accounts
  • xero_get_account
  • xero_create_account
  • xero_update_account
  • xero_archive_account
  • xero_delete_account

4. src/tools/bank-transactions.ts (5 tools)

  • xero_list_bank_transactions
  • xero_get_bank_transaction
  • xero_create_bank_transaction
  • xero_update_bank_transaction
  • xero_void_bank_transaction

5. src/tools/payments.ts (10 tools)

  • xero_list_payments
  • xero_get_payment
  • xero_create_payment
  • xero_delete_payment
  • xero_list_prepayments
  • xero_get_prepayment
  • xero_allocate_prepayment
  • xero_list_overpayments
  • xero_get_overpayment
  • xero_allocate_overpayment

6. src/tools/bills.ts (6 tools)

  • xero_list_bills
  • xero_get_bill
  • xero_create_bill
  • xero_update_bill
  • xero_void_bill
  • xero_delete_bill

7. src/tools/credit-notes.ts (6 tools)

  • xero_list_credit_notes
  • xero_get_credit_note
  • xero_create_credit_note
  • xero_update_credit_note
  • xero_void_credit_note
  • xero_allocate_credit_note

8. src/tools/purchase-orders.ts (5 tools)

  • xero_list_purchase_orders
  • xero_get_purchase_order
  • xero_create_purchase_order
  • xero_update_purchase_order
  • xero_delete_purchase_order

9. src/tools/quotes.ts (5 tools)

  • xero_list_quotes
  • xero_get_quote
  • xero_create_quote
  • xero_update_quote
  • xero_convert_quote_to_invoice

10. src/tools/reports.ts (8 tools)

  • xero_get_profit_and_loss
  • xero_get_balance_sheet
  • xero_get_trial_balance
  • xero_get_bank_summary
  • xero_get_aged_receivables
  • xero_get_aged_payables
  • xero_get_executive_summary
  • xero_get_budget_summary

11. src/tools/employees.ts (4 tools)

  • xero_list_employees
  • xero_get_employee
  • xero_create_employee
  • xero_update_employee

12. src/tools/payroll.ts (8 tools)

  • xero_list_pay_runs
  • xero_get_pay_run
  • xero_list_pay_slips
  • xero_get_pay_slip
  • xero_list_leave_applications
  • xero_create_leave_application
  • xero_list_timesheets
  • xero_create_timesheet

Note: Payroll tools are placeholder implementations pending full Xero Payroll API integration (requires separate authentication).

13. src/tools/tax-rates.ts (4 tools)

  • xero_list_tax_rates
  • xero_get_tax_rate
  • xero_create_tax_rate
  • xero_update_tax_rate

Key Features

Modular Architecture

  • Each category in its own file for maintainability
  • Central index (src/tools/index.ts) aggregates all tools
  • Unified handler routing based on tool name patterns

Zod Validation

  • All tool inputs validated with Zod schemas
  • Type-safe parameter parsing
  • Clear error messages for invalid inputs

Xero API Compliance

  • PUT for updates (Xero uses PUT, not PATCH)
  • GUID-based IDs throughout
  • Support for batch operations via arrays
  • If-Modified-Since for efficient polling
  • Page-based pagination (max 100 records)
  • xero-tenant-id header handling (in client)

Tool Naming Convention

All tools follow the pattern: xero_verb_noun

Examples:

  • xero_list_invoices
  • xero_create_contact
  • xero_get_balance_sheet
  • xero_allocate_prepayment

Compilation Status

TypeScript compilation successful (npx tsc --noEmit) No type errors All imports resolved All handlers implemented

Next Steps

  1. Test with real Xero API credentials
  2. Add integration tests
  3. Implement full Xero Payroll API support
  4. Add more advanced filtering/search capabilities
  5. Consider adding webhook support for real-time updates