Jake Shore e4a40298e4 Full cleanup: 65 servers compile clean, 15 new builds, TSC fixes across all existing servers
- Built from scratch: apollo, chargebee, datadog, greenhouse, lever, loom, pandadoc, salesloft, sendgrid, supabase, typeform, webflow, zoho-crm, twilio, reonomy
- TSC fixes: brevo, google-console, housecall-pro, meta-ads, rippling, bamboohr, close, fieldedge, freshdesk, helpscout, toast, touchbistro, hubspot, notion, quickbooks, airtable, gusto, intercom, linear, monday, salesforce, shopify, square, wave, xero
- Entry points added: close, touchbistro
- All 65 active servers compile with 0 TypeScript errors
- 4 specialty servers skipped (competitor-research, compliance-grc, n8n-apps, product-analytics)
2026-02-14 04:37:01 -05:00

104 lines
3.1 KiB
TypeScript

/**
* Chargebee Plan Tools
*/
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
export const listPlansTool: Tool = {
name: 'list_plans',
description: 'Lists subscription plans from Chargebee with pagination support. Use when the user wants to view available pricing plans, review plan configurations, or display plan options to customers. Returns paginated results showing plan names, pricing, billing periods, trial settings, and status. Up to 100 plans per page.',
inputSchema: {
type: 'object',
properties: {
limit: {
type: 'number',
description: 'Number of plans per page (max 100)',
default: 100,
},
offset: {
type: 'string',
description: 'Pagination offset from previous response',
},
status: {
type: 'string',
enum: ['active', 'archived'],
description: 'Filter by plan status',
},
},
},
_meta: {
category: 'plans',
access_level: 'read',
complexity: 'low',
},
};
export const getPlanTool: Tool = {
name: 'get_plan',
description: 'Retrieves a single plan by ID from Chargebee. Use when the user asks for detailed plan information including pricing model, billing period, trial settings, setup costs, and metadata. Returns complete plan configuration with all pricing tiers if applicable.',
inputSchema: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The unique ID of the plan to retrieve',
},
},
required: ['id'],
},
_meta: {
category: 'plans',
access_level: 'read',
complexity: 'low',
},
};
export const listAddonsTool: Tool = {
name: 'list_addons',
description: 'Lists add-ons from Chargebee with pagination support. Use when the user wants to view available add-on products, review pricing, or display add-on options to customers. Returns paginated results showing add-on names, pricing models, charge types (recurring/one-time), and status. Up to 100 add-ons per page.',
inputSchema: {
type: 'object',
properties: {
limit: {
type: 'number',
description: 'Number of add-ons per page (max 100)',
default: 100,
},
offset: {
type: 'string',
description: 'Pagination offset from previous response',
},
status: {
type: 'string',
enum: ['active', 'archived'],
description: 'Filter by add-on status',
},
},
},
_meta: {
category: 'plans',
access_level: 'read',
complexity: 'low',
},
};
export const getAddonTool: Tool = {
name: 'get_addon',
description: 'Retrieves a single add-on by ID from Chargebee. Use when the user asks for detailed add-on information including pricing, billing period, charge type, and metadata. Returns complete add-on configuration.',
inputSchema: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The unique ID of the add-on to retrieve',
},
},
required: ['id'],
},
_meta: {
category: 'plans',
access_level: 'read',
complexity: 'low',
},
};