@paddle/paddle-mcp
Version:
MCP Server for Paddle Billing
54 lines (53 loc) • 2.07 kB
JavaScript
import { LogLevel, Paddle } from "@paddle/paddle-node-sdk";
import { createPrice, createProduct, createReport, listCustomers, listPrices, listProducts, listSubscriptions, listTransactions, } from "./functions.js";
class PaddleAPI {
paddle;
environment;
constructor(apiKey, environment) {
const paddle = new Paddle(apiKey, {
environment: environment,
logLevel: LogLevel.error,
});
this.paddle = paddle;
this.environment = environment;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
async run(method, arg) {
if (method === "create_product") {
const output = JSON.stringify(await createProduct(this.paddle, arg));
return output;
}
else if (method === "list_products") {
const output = JSON.stringify(await listProducts(this.paddle, arg));
return output;
}
else if (method === "create_price") {
const output = JSON.stringify(await createPrice(this.paddle, arg));
return output;
}
else if (method === "list_prices") {
const output = JSON.stringify(await listPrices(this.paddle, arg));
return output;
}
else if (method === "list_customers") {
const output = JSON.stringify(await listCustomers(this.paddle, arg));
return output;
}
else if (method === "list_transactions") {
const output = JSON.stringify(await listTransactions(this.paddle, arg));
return output;
}
else if (method === "list_subscriptions") {
const output = JSON.stringify(await listSubscriptions(this.paddle, arg));
return output;
}
else if (method === "create_report") {
const output = JSON.stringify(await createReport(this.paddle, arg, this.environment));
return output;
}
else {
throw new Error("Invalid method " + method);
}
}
}
export default PaddleAPI;