Xero MCP Server

官方

使用我們的官方 MCP 伺服器與您企業中的會計資料進行互動

文件

Xero MCP 伺服器

這是一個為 Xero 實作的模型上下文協定 (Model Context Protocol, MCP) 伺服器。它在 MCP 協定與 Xero 的 API 之間提供橋樑,允許以標準化方式存取 Xero 的會計與商業功能。

功能特色

  • 使用自訂連線的 Xero OAuth2 驗證
  • 聯絡人管理
  • 會計科目表管理
  • 發票建立與管理
  • MCP 協定合規

先決條件

  • Node.js (v18 或更高版本)
  • npm 或 pnpm
  • 一個擁有 API 憑證的 Xero 開發者帳戶

文件與連結

設定

建立 Xero 帳戶

如果您還沒有 Xero 帳戶和組織,可以透過免費試用在此註冊來建立一個。

我們建議從示範公司 (Demo Company) 開始,因為它已預先載入一些範例資料。登入後,使用左上角的下拉選單切換到「示範公司」。您可以隨時使用左上角的下拉選單前往我的 Xero 來重設示範公司的資料或變更國家/地區。

注意:若要使用薪資相關查詢,地區應為紐西蘭 (NZ) 或英國 (UK)。

驗證

Xero MCP 伺服器支援兩種驗證模式:

1. 自訂連線

這是測試與開發的較佳選擇,可讓您為特定組織指定用戶端 ID 與密鑰。 若您要將此整合到第三方 MCP 用戶端(如 Claude Desktop),這也是建議的做法。

設定您的 Xero 開發者帳戶

請依照以下指示設定自訂連線:https://developer.xero.com/documentation/guides/oauth2/custom-connections/

必要範圍

自訂連線根據建立時間需要不同的範圍。相關清單中的所有範圍都必須新增到您的自訂連線:

自訂連線建立時間必要範圍
2026 年 4 月 29 日之前SCOPES_V1 (捆綁權限)
自 2026 年 4 月 29 日起SCOPES_V2 (細粒度權限)

注意: MCP 伺服器會自動先嘗試 V1 範圍,必要時再退回使用 V2。

您可以透過將 XERO_SCOPES 環境變數設定為以空格分隔的範圍清單來覆寫這些設定。

將 MCP 伺服器與 Claude Desktop 整合

若要將 MCP 伺服器新增到 Claude,請前往「設定」>「開發者」>「編輯設定」,並將以下內容新增到您的 claude_desktop_config.json 檔案:

{
  "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"
      }
    }
  }
}

XERO_SCOPES 變數是選用的。若省略,將使用上述列出的預設範圍。

注意:如果您使用 Node 版本管理器 "command": "npx" 區段,請將其變更為執行檔的完整路徑,例如:Mac / Linux 上為 your_home_directory/.nvm/versions/node/v22.14.0/bin/npx,或 Windows 上為 "your_home_directory\\.nvm\\versions\\node\\v22.14.0\\bin\\npx"

2. 承載權杖

若您需要在執行階段支援多個 Xero 帳戶,並允許 MCP 用戶端視需要執行驗證流程(例如 PKCE),這是較佳的選擇。 在此情況下,請使用以下設定:

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

注意:若已定義 XERO_CLIENT_BEARER_TOKEN,它將優先於 XERO_CLIENT_ID

承載權杖的必要範圍

取得承載權杖時,您必須請求適當的範圍。您應請求的範圍如下:

注意: 部分範圍正被棄用,改為更細粒度的範圍。有關棄用時程的詳細資訊,請參閱 Xero OAuth 2.0 範圍文件

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

可用的 MCP 指令

  • list-accounts:擷取帳戶清單
  • list-contacts:從 Xero 擷取聯絡人清單
  • list-credit-notes:擷取貸項通知單清單
  • list-invoices:擷取發票清單
  • list-items:擷取項目清單
  • list-manual-journals:擷取手動日記帳清單
  • list-organisation-details:擷取組織詳細資訊
  • list-profit-and-loss:擷取損益報表
  • list-quotes:擷取報價單清單
  • list-tax-rates:擷取稅率清單
  • list-payments:擷取付款清單
  • list-trial-balance:擷取試算表報表
  • list-bank-transactions:擷取銀行帳戶交易清單
  • list-payroll-employees:擷取薪資員工清單
  • list-report-balance-sheet:擷取資產負債表報表
  • list-payroll-employee-leave:擷取薪資員工的休假記錄
  • list-payroll-employee-leave-balances:擷取薪資員工的休假餘額
  • list-payroll-employee-leave-types:擷取薪資休假類型清單
  • list-payroll-leave-periods:擷取薪資員工的休假期間清單
  • list-payroll-leave-types:擷取 Xero 薪資中所有可用的休假類型清單
  • list-timesheets:擷取薪資工時表清單
  • list-aged-receivables-by-contact:擷取聯絡人的應收帳款帳齡
  • list-aged-payables-by-contact:擷取聯絡人的應付帳款帳齡
  • list-contact-groups:擷取聯絡人群組清單
  • list-tracking-categories:擷取追蹤類別清單
  • create-bank-transaction:建立新的銀行交易
  • create-contact:建立新的聯絡人
  • create-credit-note:建立新的貸項通知單
  • create-invoice:建立新的發票
  • create-item:建立新的項目
  • create-manual-journal:建立新的手動日記帳
  • create-payment:建立新的付款
  • create-quote:建立新的報價單
  • create-payroll-timesheet:建立新的薪資工時表
  • create-tracking-category:建立新的追蹤類別
  • create-tracking-option:建立新的追蹤選項
  • update-bank-transaction:更新現有的銀行交易
  • update-contact:更新現有的聯絡人
  • update-invoice:更新現有的草稿發票
  • update-item:更新現有的項目
  • update-manual-journal:更新現有的手動日記帳
  • update-quote:更新現有的草稿報價單
  • update-credit-note:更新現有的草稿貸項通知單
  • update-tracking-category:更新現有的追蹤類別
  • update-tracking-options:更新追蹤選項
  • update-payroll-timesheet-line:更新現有薪資工時表上的行項目
  • approve-payroll-timesheet:核准薪資工時表
  • revert-payroll-timesheet:撤銷已核准的薪資工時表
  • add-payroll-timesheet-line:在現有薪資工時表上新增行項目
  • delete-payroll-timesheet:刪除現有的薪資工時表
  • get-payroll-timesheet:擷取現有的薪資工時表

如需詳細的 API 文件,請參閱 MCP 協定規格

開發者專區

安裝

# Using npm
npm install

# Using pnpm
pnpm install

執行建置

# Using npm
npm run build

# Using pnpm
pnpm build

與 Claude Desktop 整合

若要將開發中的 Xero MCP 伺服器連結到 Claude Desktop,請前往「設定」>「開發者」>「編輯設定」,並將以下內容新增到您的 claude_desktop_config.json 檔案:

注意:對於 Windows,請確保 args 路徑在資料夾之間使用 \ 進行跳脫,例如 "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"
      }
    }
  }
}

授權

MIT

安全性

請勿將您的 .env 檔案或任何敏感憑證提交到版本控制(它已作為安全預設值包含在 .gitignore 中)。