Xero MCP Server

ทางการ

โต้ตอบกับข้อมูลทางบัญชีในธุรกิจของคุณโดยใช้เซิร์ฟเวอร์ MCP อย่างเป็นทางการของเรา

เอกสาร

Xero MCP Server

นี่คือการติดตั้งเซิร์ฟเวอร์ Model Context Protocol (MCP) สำหรับ Xero ซึ่งทำหน้าที่เป็นสะพานเชื่อมระหว่างโปรโตคอล MCP และ API ของ Xero ช่วยให้เข้าถึงฟีเจอร์ทางบัญชีและธุรกิจของ Xero ได้อย่างเป็นมาตรฐาน

ฟีเจอร์

  • การยืนยันตัวตนด้วย Xero OAuth2 พร้อมการเชื่อมต่อแบบกำหนดเอง
  • การจัดการผู้ติดต่อ
  • การจัดการผังบัญชี
  • การสร้างและจัดการใบแจ้งหนี้
  • การปฏิบัติตามโปรโตคอล MCP

ข้อกำหนดเบื้องต้น

  • Node.js (v18 หรือสูงกว่า)
  • npm หรือ pnpm
  • บัญชีผู้พัฒนา Xero พร้อมข้อมูลประจำตัว API

เอกสารและลิงก์

การตั้งค่า

สร้างบัญชี Xero

หากคุณยังไม่มีบัญชีและองค์กร Xero คุณสามารถสร้างได้โดยสมัคร ที่นี่ โดยใช้รุ่นทดลองใช้ฟรี

เราแนะนำให้ใช้บริษัทตัวอย่าง (Demo Company) ในการเริ่มต้น เนื่องจากมีข้อมูลตัวอย่างที่โหลดไว้ล่วงหน้า เมื่อคุณเข้าสู่ระบบแล้ว ให้สลับไปใช้โดยใช้เมนูแบบเลื่อนลงที่มุมซ้ายบนและเลือก "Demo Company" คุณสามารถรีเซ็ตข้อมูลในบริษัทตัวอย่าง หรือเปลี่ยนประเทศได้ตลอดเวลา โดยใช้เมนูแบบเลื่อนลงที่มุมซ้ายบนและไปที่ My Xero

หมายเหตุ: หากต้องการใช้คำค้นหาที่เฉพาะเจาะจงกับ Payroll ภูมิภาคควรเป็น NZ หรือ UK

การยืนยันตัวตน

เซิร์ฟเวอร์ Xero MCP รองรับโหมดการยืนยันตัวตน 2 โหมด:

1. การเชื่อมต่อแบบกำหนดเอง (Custom Connections)

นี่เป็นตัวเลือกที่ดีกว่าสำหรับการทดสอบและพัฒนา ซึ่งช่วยให้คุณระบุ client id และ secrets สำหรับองค์กรเฉพาะได้ นอกจากนี้ยังเป็นแนวทางที่แนะนำ หากคุณกำลังรวมสิ่งนี้เข้ากับไคลเอนต์ MCP ของบุคคลที่สาม เช่น Claude Desktop

การกำหนดค่าบัญชีผู้พัฒนา Xero ของคุณ

ตั้งค่าการเชื่อมต่อแบบกำหนดเองตามคำแนะนำเหล่านี้: https://developer.xero.com/documentation/guides/oauth2/custom-connections/

ขอบเขตที่จำเป็น

การเชื่อมต่อแบบกำหนดเองต้องการขอบเขตที่แตกต่างกัน ขึ้นอยู่กับเวลาที่สร้าง ต้องเพิ่มขอบเขตทั้งหมดในรายการที่เกี่ยวข้องลงในการเชื่อมต่อแบบกำหนดเองของคุณ:

การเชื่อมต่อแบบกำหนดเองที่สร้างขอบเขตที่จำเป็น
ก่อน 29 เม.ย. 2026SCOPES_V1 (สิทธิ์แบบรวม)
ตั้งแต่ 29 เม.ย. 2026SCOPES_V2 (สิทธิ์แบบละเอียด)

หมายเหตุ: เซิร์ฟเวอร์ MCP จะลองใช้ขอบเขต V1 ก่อนโดยอัตโนมัติ และถอยกลับไปใช้ V2 หากจำเป็น

คุณสามารถแทนที่สิ่งเหล่านี้ได้โดยการตั้งค่าตัวแปรสภาพแวดล้อม XERO_SCOPES เป็นรายการขอบเขตที่คั่นด้วยช่องว่าง

การรวมเซิร์ฟเวอร์ MCP เข้ากับ Claude Desktop

หากต้องการเพิ่มเซิร์ฟเวอร์ MCP ไปยัง Claude ให้ไปที่ Settings > Developer > Edit config และเพิ่มสิ่งต่อไปนี้ลงในไฟล์ 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 Version Manager "command": "npx" ให้เปลี่ยนส่วนนั้นเป็นพาธแบบเต็มไปยังไฟล์ปฏิบัติการ เช่น: your_home_directory/.nvm/versions/node/v22.14.0/bin/npx บน Mac / Linux หรือ "your_home_directory\\.nvm\\versions\\node\\v22.14.0\\bin\\npx" บน Windows

2. Bearer Token

นี่เป็นตัวเลือกที่ดีกว่า หากคุณต้องการรองรับบัญชี 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 หากกำหนดไว้

ขอบเขตที่จำเป็นสำหรับ Bearer Token

เมื่อขอรับ bearer token คุณต้องขอขอบเขตที่เหมาะสม ขอบเขตที่คุณขอควรเป็น:

หมายเหตุ: ขอบเขตบางส่วนกำลังถูกยกเลิกเพื่อสนับสนุนขอบเขตที่ละเอียดยิ่งขึ้น ดู เอกสาร Xero OAuth 2.0 Scopes สำหรับรายละเอียดเกี่ยวกับระยะเวลาการยกเลิก

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: ดึงรายการพนักงาน Payroll
  • list-report-balance-sheet: ดึงรายงานงบดุล
  • list-payroll-employee-leave: ดึงบันทึกการลาของพนักงาน Payroll
  • list-payroll-employee-leave-balances: ดึงยอดคงเหลือการลาของพนักงาน Payroll
  • list-payroll-employee-leave-types: ดึงรายการประเภทการลา Payroll
  • list-payroll-leave-periods: ดึงรายการรอบการลาของพนักงาน Payroll
  • list-payroll-leave-types: ดึงรายการประเภทการลาทั้งหมดที่มีใน Xero Payroll
  • list-timesheets: ดึงรายการใบบันทึกเวลา Payroll
  • 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: สร้างใบบันทึกเวลา Payroll ใหม่
  • 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: อัปเดตรายการในใบบันทึกเวลา Payroll ที่มีอยู่
  • approve-payroll-timesheet: อนุมัติใบบันทึกเวลา Payroll
  • revert-payroll-timesheet: ย้อนกลับใบบันทึกเวลา Payroll ที่อนุมัติแล้ว
  • add-payroll-timesheet-line: เพิ่มรายการใหม่ในใบบันทึกเวลา Payroll ที่มีอยู่
  • delete-payroll-timesheet: ลบใบบันทึกเวลา Payroll ที่มีอยู่
  • get-payroll-timesheet: ดึงใบบันทึกเวลา Payroll ที่มีอยู่

สำหรับเอกสาร 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 ให้ไปที่ Settings > Developer > Edit config และเพิ่มสิ่งต่อไปนี้ลงในไฟล์ 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 เป็นค่าเริ่มต้นที่ปลอดภัย)