Environment:
Bolt AI (macOS, latest version) MCP Server: @xeroapi/xero-mcp-server@latest (via npx) Auth: Bearer token with full scopes Node: v22.x via NVM Summary: When Bolt passes parameters to an MCP tool, any numeric value nested inside an array or object is incorrectly serialised as a boolean (true/false) rather than a number. This breaks all MCP tools that accept arrays containing numeric fields.
Affected tools (confirmed):
create-invoice — fails on lineItems[0].quantity and lineItems[0].unitAmount list-invoices — fails on page parameter list-bank-transactions — fails on page list-quotes — fails on page list-credit-notes — fails on page Working tools (no nested numeric params):
list-organisation-details list-accounts list-contacts list-trial-balance list-tax-rates create-contact Error returned:
JSON { "code": -32602, "message": "Input validation error: Invalid arguments for tool create-invoice", "details": [ { "code": "invalid_type", "expected": "number", "received": "boolean", "path": ["lineItems", 0, "quantity"], "message": "Expected number, received boolean" } ] } Reproduction steps:
Connect Xero MCP server via bearer token Ask the assistant to create an invoice with a line item (quantity: 1, unitAmount: 4495) Observe the MCP error — quantity is received as boolean instead of number Expected behaviour: Numeric values inside nested arrays/objects should be serialised as numbers in the JSON payload sent to the MCP server.
Likely cause: A type coercion issue in Bolt's parameter serialisation layer. The value 1 appears to be converted to true during JSON encoding when it sits inside an array. Top-level numeric parameters (not nested) work fine, suggesting the bug is specific to how Bolt handles nested structures before passing them to the MCP transport.
Please authenticate to join the conversation.
In Progress
BoltAI Mac v2
MCP
About 19 hours ago

AndySoAI
Get notified by email when there are changes.
In Progress
BoltAI Mac v2
MCP
About 19 hours ago

AndySoAI
Get notified by email when there are changes.