Xero MCP Server

by john-zhang-dev
Verified
import { XeroClientSession } from "../XeroApiClient.js"; import { AuthenticateTool } from "../Tools/Authenticate.js"; import { IRequestMiddleware } from "./IRequestMiddleware.js"; export const XeroAuthMiddleware: IRequestMiddleware = async (request, next) => { const { name } = request.params; if (name === AuthenticateTool.requestSchema.name) { return await AuthenticateTool.requestHandler(request); } if (!XeroClientSession.isAuthenticated()) { return Promise.resolve({ content: [ { type: "text", text: "You must authenticate with Xero first", }, ], }); } const tenantId = XeroClientSession.activeTenantId(); if (!tenantId) { throw new Error("No tenant selected"); } return next(request); };