Xero MCP Server

resmi

Berinteraksi dengan data akuntansi di bisnis Anda menggunakan server MCP resmi kami

Dokumentasi

Server MCP Xero

Ini adalah implementasi server Model Context Protocol (MCP) untuk Xero. Server ini menyediakan jembatan antara protokol MCP dan API Xero, memungkinkan akses terstandarisasi ke fitur akuntansi dan bisnis Xero.

Fitur

  • Autentikasi Xero OAuth2 dengan koneksi kustom
  • Manajemen kontak
  • Manajemen Bagan Akun
  • Pembuatan dan manajemen faktur
  • Kepatuhan protokol MCP

Prasyarat

  • Node.js (v18 atau lebih tinggi)
  • npm atau pnpm
  • Akun pengembang Xero dengan kredensial API

Dokumen dan Tautan

Penyiapan

Buat Akun Xero

Jika Anda belum memiliki akun dan organisasi Xero, Anda dapat membuatnya dengan mendaftar di sini menggunakan uji coba gratis.

Kami menyarankan untuk memulai dengan Perusahaan Demo karena sudah dilengkapi dengan beberapa data sampel yang telah dimuat sebelumnya. Setelah masuk, beralihlah ke sana menggunakan dropdown di kiri atas dan pilih "Perusahaan Demo". Anda dapat mengatur ulang data di Perusahaan Demo, atau mengubah negara, kapan saja dengan menggunakan dropdown di kiri atas dan menavigasi ke Xero Saya.

CATATAN: Untuk menggunakan kueri khusus Penggajian, wilayahnya harus NZ atau UK.

Autentikasi

Ada 2 mode autentikasi yang didukung di server MCP Xero:

1. Koneksi Kustom

Ini adalah pilihan yang lebih baik untuk pengujian dan pengembangan yang memungkinkan Anda menentukan id klien dan rahasia untuk organisasi tertentu. Ini juga merupakan pendekatan yang direkomendasikan jika Anda mengintegrasikan ini ke klien MCP pihak ketiga seperti Claude Desktop.

Mengonfigurasi akun Pengembang Xero Anda

Siapkan Koneksi Kustom dengan mengikuti petunjuk ini: https://developer.xero.com/documentation/guides/oauth2/custom-connections/

Cakupan yang Diperlukan

Koneksi kustom memerlukan cakupan yang berbeda tergantung pada kapan koneksi tersebut dibuat. Semua cakupan dalam daftar yang relevan harus ditambahkan ke koneksi kustom Anda:

Koneksi Kustom DibuatCakupan yang Diperlukan
Sebelum 29 Apr 2026SCOPES_V1 (izin gabungan)
Mulai 29 Apr 2026SCOPES_V2 (izin terperinci)

Catatan: Server MCP secara otomatis mencoba cakupan V1 terlebih dahulu dan beralih ke V2 jika diperlukan.

Anda dapat mengganti ini dengan mengatur variabel lingkungan XERO_SCOPES ke daftar cakupan yang dipisahkan spasi.

Mengintegrasikan server MCP dengan Claude Desktop

Untuk menambahkan server MCP ke Claude, buka Pengaturan > Pengembang > Edit konfigurasi dan tambahkan yang berikut ke file claude_desktop_config.json Anda:

{
  "mcpServers": {
    "xero": {
      "command": "npx",
      "args": ["-y", "@xeroapi/xero-mcp-server@latest"],
      "env": {
        "XERO_CLIENT_ID": "your_client_id_here",
        "XERO_CLIENT_SECRET": "your_client_secret_here",
        "XERO_SCOPES": "accounting.invoices accounting.contacts accounting.settings"
      }
    }
  }
}

Variabel XERO_SCOPES bersifat opsional. Jika dihilangkan, cakupan default yang tercantum di atas akan digunakan.

CATATAN: Jika Anda menggunakan Node Version Manager bagian "command": "npx" ubah menjadi path lengkap ke executable, yaitu: your_home_directory/.nvm/versions/node/v22.14.0/bin/npx di Mac / Linux atau "your_home_directory\\.nvm\\versions\\node\\v22.14.0\\bin\\npx" di Windows

2. Token Pembawa

Ini adalah pilihan yang lebih baik jika Anda ingin mendukung beberapa akun Xero saat runtime dan mengizinkan klien MCP untuk menjalankan alur autentikasi (seperti PKCE) sesuai kebutuhan. Dalam hal ini, gunakan konfigurasi berikut:

{
  "mcpServers": {
    "xero": {
      "command": "npx",
      "args": ["-y", "@xeroapi/xero-mcp-server@latest"],
      "env": {
        "XERO_CLIENT_BEARER_TOKEN": "your_bearer_token"
      }
    }
  }
}

CATATAN: XERO_CLIENT_BEARER_TOKEN akan diutamakan daripada XERO_CLIENT_ID jika ditentukan.

Cakupan yang Diperlukan untuk Token Pembawa

Saat mendapatkan token pembawa, Anda harus meminta cakupan yang sesuai. Cakupan yang Anda minta harus:

Catatan: Beberapa cakupan sedang dihentikan demi cakupan yang lebih terperinci. Lihat dokumentasi Cakupan Xero OAuth 2.0 untuk detail tentang jadwal penghentian.

accounting.transactions (Deprecated)
accounting.transactions.read (Deprecated)
accounting.invoices
accounting.invoices.read
accounting.payments
accounting.payments.read
accounting.banktransactions
accounting.banktransactions.read
accounting.manualjournals
accounting.manualjournals.read
accounting.reports.read (Deprecated)
accounting.reports.aged.read
accounting.reports.balancesheet.read
accounting.reports.profitandloss.read
accounting.reports.trialbalance.read
accounting.contacts 
accounting.settings 
payroll.settings 
payroll.employees 
payroll.timesheets

Perintah MCP yang Tersedia

  • list-accounts: Mengambil daftar akun
  • list-contacts: Mengambil daftar kontak dari Xero
  • list-credit-notes: Mengambil daftar nota kredit
  • list-invoices: Mengambil daftar faktur
  • list-items: Mengambil daftar item
  • list-manual-journals: Mengambil daftar jurnal manual
  • list-organisation-details: Mengambil detail tentang organisasi
  • list-profit-and-loss: Mengambil laporan laba rugi
  • list-quotes: Mengambil daftar penawaran
  • list-tax-rates: Mengambil daftar tarif pajak
  • list-payments: Mengambil daftar pembayaran
  • list-trial-balance: Mengambil laporan neraca saldo
  • list-bank-transactions: Mengambil daftar transaksi rekening bank
  • list-payroll-employees: Mengambil daftar Karyawan Penggajian
  • list-report-balance-sheet: Mengambil laporan neraca
  • list-payroll-employee-leave: Mengambil catatan cuti Karyawan Penggajian
  • list-payroll-employee-leave-balances: Mengambil saldo cuti Karyawan Penggajian
  • list-payroll-employee-leave-types: Mengambil daftar jenis cuti Penggajian
  • list-payroll-leave-periods: Mengambil daftar periode cuti Karyawan Penggajian
  • list-payroll-leave-types: Mengambil daftar semua jenis cuti yang tersedia di Xero Penggajian
  • list-timesheets: Mengambil daftar Timesheet Penggajian
  • list-aged-receivables-by-contact: Mengambil piutang yang telah jatuh tempo untuk kontak
  • list-aged-payables-by-contact: Mengambil utang yang telah jatuh tempo untuk kontak
  • list-contact-groups: Mengambil daftar grup kontak
  • list-tracking-categories: Mengambil daftar kategori pelacakan
  • create-bank-transaction: Membuat transaksi bank baru
  • create-contact: Membuat kontak baru
  • create-credit-note: Membuat nota kredit baru
  • create-invoice: Membuat faktur baru
  • create-item: Membuat item baru
  • create-manual-journal: Membuat jurnal manual baru
  • create-payment: Membuat pembayaran baru
  • create-quote: Membuat penawaran baru
  • create-payroll-timesheet: Membuat Timesheet Penggajian baru
  • create-tracking-category: Membuat kategori pelacakan baru
  • create-tracking-option: Membuat opsi pelacakan baru
  • update-bank-transaction: Memperbarui transaksi bank yang ada
  • update-contact: Memperbarui kontak yang ada
  • update-invoice: Memperbarui faktur draf yang ada
  • update-item: Memperbarui item yang ada
  • update-manual-journal: Memperbarui jurnal manual yang ada
  • update-quote: Memperbarui penawaran draf yang ada
  • update-credit-note: Memperbarui nota kredit draf yang ada
  • update-tracking-category: Memperbarui kategori pelacakan yang ada
  • update-tracking-options: Memperbarui opsi pelacakan
  • update-payroll-timesheet-line: Memperbarui baris pada Timesheet Penggajian yang ada
  • approve-payroll-timesheet: Menyetujui Timesheet Penggajian
  • revert-payroll-timesheet: Mengembalikan Timesheet Penggajian yang disetujui
  • add-payroll-timesheet-line: Menambahkan baris baru pada Timesheet Penggajian yang ada
  • delete-payroll-timesheet: Menghapus Timesheet Penggajian yang ada
  • get-payroll-timesheet: Mengambil Timesheet Penggajian yang ada

Untuk dokumentasi API terperinci, silakan merujuk ke Spesifikasi Protokol MCP.

Untuk Pengembang

Instalasi

# Using npm
npm install

# Using pnpm
pnpm install

Jalankan build

# Using npm
npm run build

# Using pnpm
pnpm build

Integrasi dengan Claude Desktop

Untuk menautkan server MCP Xero Anda dalam pengembangan ke Claude Desktop, buka Pengaturan > Pengembang > Edit konfigurasi dan tambahkan yang berikut ke file claude_desktop_config.json Anda:

CATATAN: Untuk Windows, pastikan path args meng-escape \ di antara folder, yaitu "C:\\projects\xero-mcp-server\\dist\\index.js"

{
  "mcpServers": {
    "xero": {
      "command": "node",
      "args": ["insert-your-file-path-here/xero-mcp-server/dist/index.js"],
      "env": {
        "XERO_CLIENT_ID": "your_client_id_here",
        "XERO_CLIENT_SECRET": "your_client_secret_here"
      }
    }
  }
}

Lisensi

MIT

Keamanan

Harap jangan melakukan commit file .env Anda atau kredensial sensitif apa pun ke kontrol versi (ini disertakan dalam .gitignore sebagai default yang aman.)