본문으로 건너뛰기
cccskills
무료GitHub에 공개

xero-mcp

Use the Xero MCP server — troubleshoot its self-refreshing OAuth2 token file, maintain the local best-of-breed server build, and pick up other operational notes for working with Xero MCP tools. Use when Xero MCP tools fail with authentication errors, before starting any Xero workflow, when adding or updating upstream xero-mcp-server PRs, or for general guidance on Xero MCP usage.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(7)

  • SKILL.md4.7 KB
  • references/authentication.md6.4 KB
  • references/local-server.md5.3 KB
  • references/manual-journals.md3.8 KB
  • references/mcp-vs-browser.md3.8 KB
  • references/searching-records.md4.2 KB
  • scripts/xero-oauth11.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Xero MCP

Covers usage of the Xero MCP server, including authentication (OAuth2 bearer tokens) and related operational notes.

For browser-driven automation of the Xero web UI (not via MCP), see the separate xero-browser skill instead.

MCP vs browser — which to use (READ FIRST)

Before any Xero data task, read references/mcp-vs-browser.md. It is the single source of truth for choosing MCP tools vs the browser Account Transactions report (shared with the xero-browser skill — do not duplicate its content here). Key rule: Xero MCP has no per-account transaction endpoint, so a single account's full ledger comes from the browser report, never from paginating list-manual-journals.

Authentication

The server reads a self-refreshing OAuth2 token file on every tool call, so tokens never need refreshing by hand and the agent session never needs restarting for auth. Several agents (Claude Code, Pi, OpenCode) share the file safely: refreshes are serialised by a lock, so each expiry is refreshed exactly once. They also share Xero's rate limits — "Too many requests to Xero" is not an auth failure; avoid fanning out many parallel Xero calls and retry after a moment.

On an auth error: diagnose — do NOT limp to workarounds

An "Authentication failed" / 401 from a Xero MCP tool is not a routine expiry any more. Do not retry blindly, and do not switch to a browser / block-explorer / Cryptio workaround "to keep moving": the MCP path is far faster and more reliable. Instead, read references/authentication.md — the usual causes are a scope the token lacks (one tool fails, others work) or a refresh token unused for 60 days (every tool fails), which needs the user to run the browser OAuth flow.

The ONLY time a browser fallback is right is when the data genuinely isn't available via MCP at all (e.g. a per-account transaction ledger — see references/mcp-vs-browser.md).

Also read references/authentication.md for first-time setup, after revoking and re-authorizing the Xero app, or when changing scopes, or to understand or check how several agents share the token. It covers the xero-oauth script, .env configuration, the multi-agent refresh protocol, Xero app registration, the refresh-vs-full-flow choice, and the scopes newer tools need.

The server is a local best-of-breed build

Upstream @xeroapi/xero-mcp-server is effectively unmaintained, so the configs run a local build that merges ~28 reviewed upstream PRs plus local fixes (xero-node v20, token-file locking). Tools and behaviour therefore differ from upstream's README. For which PRs are in, how to rebuild after changes, and how to add a new upstream PR, see references/local-server.md.

Searching for records

The MCP list-* tools paginate at 10 records per page by default; most accept pageSize (up to 100). Absence on page 1 is not absence in Xero. Before concluding a record is missing, search by ID directly or page exhaustively.

See references/searching-records.md for the rules around list-manual-journals, list-invoices, list-bank-transactions, and list-contacts.

Manual journals (create / update / void)

The schema descriptions for create-manual-journal and update-manual-journal are misleading on at least two points:

  • lineAmountTypes: "NO_TAX" is rejected by the Xero API (use the default — omit the field — which serialises as NoTax).
  • update-manual-journal says "Only works on draft manual journals", but in practice mutates POSTED MJs (narration, date, lines, status).

This makes the void-and-replace pattern (create new POSTED MJ referencing the old UUID, then update the old to status: VOIDED) viable via MCP without touching the web UI.

The response strings from the write tools also render input params verbatim and show line items as [object Object] — so always confirm state with list-manual-journals manualJournalId=<uuid> after every write before trusting it.

See references/manual-journals.md for the full void-and-replace recipe, common error messages, and the token-expiry coupling that bites multi-step MJ workflows.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Applies local reliability, viewport, tab-safety, stale-ref, widget, and browser-boundary lessons to every agent-browser automation. Use alongside the upstream agent-browser skill whenever navigating, clicking, filling, testing, extracting, taking screenshots, or debugging any website with agent-browser.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aspiers/ai-config152026년 10월 9일 업데이트

Size the agent-browser Chromium window to fill its current screen, leaving a configurable bottom margin for the desktop panel. Use before any agent-browser automation that needs the full screen visible without elements overlapping or scrolling off (e.g. Xero, dense web apps).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aspiers/ai-config152026년 10월 9일 업데이트

Create Claude Code slash commands, OpenCode command files, Pi prompt templates, and Codex custom prompts that delegate to the right subagent or skill. Use when creating new commands, porting commands across agent platforms, or refactoring existing commands to follow platform conventions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aspiers/ai-config152026년 10월 9일 업데이트

Adds or changes allowed commands in AI agent permission configs for OpenCode and Claude Code. Use when a command needs adding to an agent's allow list, when permission settings for existing commands need changing, when setting up a new AI tool that requires command permissions, or when the user asks to stop being prompted for a particular command.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aspiers/ai-config152026년 10월 9일 업데이트

bc

무료

Creates a Beads issue for a described problem or piece of work without doing the work itself. Use when the user invokes `/bc` or `$bc`, or asks to file, log, or record a bead for something. To also carry out the work, use the `bx` skill instead.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aspiers/ai-config152026년 10월 9일 업데이트

bdr

무료

Stores a persistent memory or learning with `bd remember` so it survives across sessions. Use when the user invokes `/bdr` or `$bdr`, or asks to remember, note, or persist an insight in a Beads workspace.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aspiers/ai-config152026년 10월 9일 업데이트

aspiers의 스킬 모두 보기

이 스킬의 문제 신고