UNPKG

@airwallex/developer-mcp

Version:

MCP server for AI agents that assist developers integrating with the Airwallex platform

55 lines (54 loc) 7.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildServer = void 0; const node_sdk_1 = require("@airwallex/node-sdk"); const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js"); const config_1 = require("./constants/config"); const AirTrackerClient_1 = require("./services/AirTrackerClient"); const createBillingPrice_1 = require("./tools/createBillingPrice"); const createPaymentLink_1 = require("./tools/createPaymentLink"); const createTransfer_1 = require("./tools/createTransfer"); const getFxQuote_1 = require("./tools/getFxQuote"); const index_1 = require("./tools/index"); const listBeneficiaries_1 = require("./tools/listBeneficiaries"); const listPaymentLinks_1 = require("./tools/listPaymentLinks"); const listTransfers_1 = require("./tools/listTransfers"); const simulateTransferResult_1 = require("./tools/simulateTransferResult"); const withTelemetry_1 = require("./utils/withTelemetry"); const awxEnv = "demo"; const disableTelemetry = process.env.DISABLE_TELEMETRY === "true" || process.env.DISABLE_TELEMETRY === "1"; const buildServer = ({ appVersion, integrationBestPracticesContent, }) => { const server = new mcp_js_1.McpServer({ name: "Airwallex", version: appVersion, }); const airTrackerClient = new AirTrackerClient_1.AirTrackerClient(config_1.BASE_URLS.telemetry, awxEnv, appVersion); server.registerTool(index_1.retrieveDocsToolConfig.name, index_1.retrieveDocsToolConfig, (0, withTelemetry_1.withToolTelemetry)(index_1.retrieveDocsToolConfig.name, async (args) => (0, index_1.executeRetrieveDocs)(args, appVersion), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(index_1.readBestPracticesToolConfig.name, index_1.readBestPracticesToolConfig, (0, withTelemetry_1.withToolTelemetry)(index_1.readBestPracticesToolConfig.name, async () => (0, index_1.executeReadBestPractices)(integrationBestPracticesContent), { disableTelemetry, telemetryClient: airTrackerClient })); if (process.env.AIRWALLEX_SANDBOX_CLIENT_ID && process.env.AIRWALLEX_SANDBOX_API_KEY) { const airwallex = new node_sdk_1.Airwallex({ apiKey: process.env.AIRWALLEX_SANDBOX_API_KEY, clientId: process.env.AIRWALLEX_SANDBOX_CLIENT_ID, env: "demo", }); server.registerTool(index_1.listGlobalAccountsToolConfig.name, index_1.listGlobalAccountsToolConfig, (0, withTelemetry_1.withToolTelemetry)(index_1.listGlobalAccountsToolConfig.name, async () => (0, index_1.executeListGlobalAccounts)(airwallex), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(index_1.getAccountBalancesToolConfig.name, index_1.getAccountBalancesToolConfig, (0, withTelemetry_1.withToolTelemetry)(index_1.getAccountBalancesToolConfig.name, async () => (0, index_1.executeGetAccountBalances)(airwallex), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(index_1.simulateDepositToolConfig.name, index_1.simulateDepositToolConfig, (0, withTelemetry_1.withToolTelemetry)(index_1.simulateDepositToolConfig.name, async (args) => (0, index_1.executeSimulateDeposit)(airwallex, args), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(index_1.listBillingProductsToolConfig.name, index_1.listBillingProductsToolConfig, (0, withTelemetry_1.withToolTelemetry)(index_1.listBillingProductsToolConfig.name, async () => (0, index_1.executeListBillingProducts)(airwallex), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(index_1.listBillingPricesToolConfig.name, index_1.listBillingPricesToolConfig, (0, withTelemetry_1.withToolTelemetry)(index_1.listBillingPricesToolConfig.name, async (args) => (0, index_1.executeListBillingPrices)(airwallex, args), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(index_1.createBillingProductToolConfig.name, index_1.createBillingProductToolConfig, (0, withTelemetry_1.withToolTelemetry)(index_1.createBillingProductToolConfig.name, async (args) => (0, index_1.executeCreateBillingProduct)(airwallex, args), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(createBillingPrice_1.createBillingPriceToolConfig.name, createBillingPrice_1.createBillingPriceToolConfig, (0, withTelemetry_1.withToolTelemetry)(createBillingPrice_1.createBillingPriceToolConfig.name, async (args) => (0, createBillingPrice_1.executeCreateBillingPrice)(airwallex, args), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(index_1.createBillingCheckoutToolConfig.name, index_1.createBillingCheckoutToolConfig, (0, withTelemetry_1.withToolTelemetry)(index_1.createBillingCheckoutToolConfig.name, async (args) => (0, index_1.executeCreateBillingCheckout)(airwallex, args), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(getFxQuote_1.getFxQuoteToolConfig.name, getFxQuote_1.getFxQuoteToolConfig, (0, withTelemetry_1.withToolTelemetry)(getFxQuote_1.getFxQuoteToolConfig.name, async (args) => (0, getFxQuote_1.executeGetFxQuote)(airwallex, args), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(listTransfers_1.listTransfersToolConfig.name, listTransfers_1.listTransfersToolConfig, (0, withTelemetry_1.withToolTelemetry)(listTransfers_1.listTransfersToolConfig.name, async () => (0, listTransfers_1.executeListTransfers)(airwallex), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(createTransfer_1.createTransferToolConfig.name, createTransfer_1.createTransferToolConfig, (0, withTelemetry_1.withToolTelemetry)(createTransfer_1.createTransferToolConfig.name, async (args) => (0, createTransfer_1.executeCreateTransfer)(airwallex, args), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(listBeneficiaries_1.listBeneficiariesToolConfig.name, listBeneficiaries_1.listBeneficiariesToolConfig, (0, withTelemetry_1.withToolTelemetry)(listBeneficiaries_1.listBeneficiariesToolConfig.name, async () => (0, listBeneficiaries_1.executeListBeneficiaries)(airwallex), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(simulateTransferResult_1.simulateTransferUpdateToolConfig.name, simulateTransferResult_1.simulateTransferUpdateToolConfig, (0, withTelemetry_1.withToolTelemetry)(simulateTransferResult_1.simulateTransferUpdateToolConfig.name, async (args) => (0, simulateTransferResult_1.executeSimulateTransferUpdate)(airwallex, args), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(createPaymentLink_1.createPaymentLinkToolConfig.name, createPaymentLink_1.createPaymentLinkToolConfig, (0, withTelemetry_1.withToolTelemetry)(createPaymentLink_1.createPaymentLinkToolConfig.name, async (args) => (0, createPaymentLink_1.executeCreatePaymentLink)(airwallex, args), { disableTelemetry, telemetryClient: airTrackerClient })); server.registerTool(listPaymentLinks_1.listPaymentLinksToolConfig.name, listPaymentLinks_1.listPaymentLinksToolConfig, (0, withTelemetry_1.withToolTelemetry)(listPaymentLinks_1.listPaymentLinksToolConfig.name, async () => (0, listPaymentLinks_1.executeListPaymentLinks)(airwallex), { disableTelemetry, telemetryClient: airTrackerClient })); } return server; }; exports.buildServer = buildServer;