Xero MCP Server
resmiBerinteraksi 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
- Dokumentasi API Publik Xero
- Xero API Explorer
- Spesifikasi OpenAPI Xero
- Dokumentasi SDK API Publik Xero-Node
- Dokumentasi Pengembang
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 Dibuat | Cakupan yang Diperlukan |
|---|---|
| Sebelum 29 Apr 2026 | SCOPES_V1 (izin gabungan) |
| Mulai 29 Apr 2026 | SCOPES_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_SCOPESke 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 akunlist-contacts: Mengambil daftar kontak dari Xerolist-credit-notes: Mengambil daftar nota kreditlist-invoices: Mengambil daftar fakturlist-items: Mengambil daftar itemlist-manual-journals: Mengambil daftar jurnal manuallist-organisation-details: Mengambil detail tentang organisasilist-profit-and-loss: Mengambil laporan laba rugilist-quotes: Mengambil daftar penawaranlist-tax-rates: Mengambil daftar tarif pajaklist-payments: Mengambil daftar pembayaranlist-trial-balance: Mengambil laporan neraca saldolist-bank-transactions: Mengambil daftar transaksi rekening banklist-payroll-employees: Mengambil daftar Karyawan Penggajianlist-report-balance-sheet: Mengambil laporan neracalist-payroll-employee-leave: Mengambil catatan cuti Karyawan Penggajianlist-payroll-employee-leave-balances: Mengambil saldo cuti Karyawan Penggajianlist-payroll-employee-leave-types: Mengambil daftar jenis cuti Penggajianlist-payroll-leave-periods: Mengambil daftar periode cuti Karyawan Penggajianlist-payroll-leave-types: Mengambil daftar semua jenis cuti yang tersedia di Xero Penggajianlist-timesheets: Mengambil daftar Timesheet Penggajianlist-aged-receivables-by-contact: Mengambil piutang yang telah jatuh tempo untuk kontaklist-aged-payables-by-contact: Mengambil utang yang telah jatuh tempo untuk kontaklist-contact-groups: Mengambil daftar grup kontaklist-tracking-categories: Mengambil daftar kategori pelacakancreate-bank-transaction: Membuat transaksi bank barucreate-contact: Membuat kontak barucreate-credit-note: Membuat nota kredit barucreate-invoice: Membuat faktur barucreate-item: Membuat item barucreate-manual-journal: Membuat jurnal manual barucreate-payment: Membuat pembayaran barucreate-quote: Membuat penawaran barucreate-payroll-timesheet: Membuat Timesheet Penggajian barucreate-tracking-category: Membuat kategori pelacakan barucreate-tracking-option: Membuat opsi pelacakan baruupdate-bank-transaction: Memperbarui transaksi bank yang adaupdate-contact: Memperbarui kontak yang adaupdate-invoice: Memperbarui faktur draf yang adaupdate-item: Memperbarui item yang adaupdate-manual-journal: Memperbarui jurnal manual yang adaupdate-quote: Memperbarui penawaran draf yang adaupdate-credit-note: Memperbarui nota kredit draf yang adaupdate-tracking-category: Memperbarui kategori pelacakan yang adaupdate-tracking-options: Memperbarui opsi pelacakanupdate-payroll-timesheet-line: Memperbarui baris pada Timesheet Penggajian yang adaapprove-payroll-timesheet: Menyetujui Timesheet Penggajianrevert-payroll-timesheet: Mengembalikan Timesheet Penggajian yang disetujuiadd-payroll-timesheet-line: Menambahkan baris baru pada Timesheet Penggajian yang adadelete-payroll-timesheet: Menghapus Timesheet Penggajian yang adaget-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.)