We're creating invoices for clients with varying default currencies (e.g., EUR). The MCP create-invoice tool doesn't pass currencyCode to the Xero API, so invoices default to the organisation's base currency (GBP) rather than the contact's currency.
Current behavior:
Contact is set up with default currency EUR
Invoice created via MCP defaults to GBP
Proposed solution:
Either:
Add currencyCode as an optional parameter to the tool schema
Have the tool look up the contact's DefaultCurrency and pass it automatically
const CreateInvoiceTool = CreateXeroTool(
"create-invoice",
"Create an invoice in Xero...",
{
contactId: z.string().describe("The ID of the contact..."),
currencyCode: z.string().describe("Currency code (e.g., EUR, USD). If not specified, could default to contact's currency.").optional(), // <-- suggested addition
lineItems: z.array(lineItemSchema),
type: z.enum(["ACCREC", "ACCPAY"])...,
// ...
},
Question: Should the MCP pass this explicitly, or should the Xero API inherit the contact's default currency when CurrencyCode is omitted?
Thanks for a great MCP - loving the progress!