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 Public API
- Xero API Explorer
- Xero OpenAPI Specs
- เอกสาร Xero-Node Public API SDK
- เอกสารสำหรับนักพัฒนา
การตั้งค่า
สร้างบัญชี 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 เม.ย. 2026 | SCOPES_V1 (สิทธิ์แบบรวม) |
| ตั้งแต่ 29 เม.ย. 2026 | SCOPES_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: ดึงรายการผู้ติดต่อจาก Xerolist-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: ดึงรายการพนักงาน Payrolllist-report-balance-sheet: ดึงรายงานงบดุลlist-payroll-employee-leave: ดึงบันทึกการลาของพนักงาน Payrolllist-payroll-employee-leave-balances: ดึงยอดคงเหลือการลาของพนักงาน Payrolllist-payroll-employee-leave-types: ดึงรายการประเภทการลา Payrolllist-payroll-leave-periods: ดึงรายการรอบการลาของพนักงาน Payrolllist-payroll-leave-types: ดึงรายการประเภทการลาทั้งหมดที่มีใน Xero Payrolllist-timesheets: ดึงรายการใบบันทึกเวลา Payrolllist-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: อนุมัติใบบันทึกเวลา Payrollrevert-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 เป็นค่าเริ่มต้นที่ปลอดภัย)