mcp server iaptic

Local 2025-08-31 23:25:56 0

A server for interacting with the Iaptic API, allowing AI models like Claude to query customer, purchase, and transaction data, as well as retrieve statistical insights.


smithery badge

A Model Context Protocol server for interacting with the Iaptic API. This server allows Claude or other AIs to interact with your Iaptic data to answer questions about your customers, purchases, transactions, and statistics.

Installation

Installing via Smithery

To install Iaptic for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install mcp-server-iaptic --client claude

Manual Installation

# Run directly with npx
npx mcp-server-iaptic --api-key YOUR_API_KEY --app-name YOUR_APP_NAME

# Or install globally
npm install -g mcp-server-iaptic
mcp-server-iaptic --api-key YOUR_API_KEY --app-name YOUR_APP_NAME

Usage with Claude Desktop

Add to your Claude Desktop configuration file:

{
  "iaptic": {
    "command": "npx",
    "args": [
      "mcp-server-iaptic",
      "--api-key", "your-api-key-here",
      "--app-name", "your-app-name-here"
    ]
  }
}

Available Tools

Customers

  • customer_list: List customers
  • customer_get: Get customer details by ID

Purchases

  • purchase_list: List purchases
  • limit: Maximum number of purchases to return (default: 100, max: 1000)
  • offset: Number of purchases to skip for pagination
  • startdate: Filter purchases after this date (ISO format, e.g. 2024-01-01)
  • enddate: Filter purchases before this date (ISO format, e.g. 2024-12-31)
  • customerId: Filter by customer ID
  • purchase_get: Get purchase details by ID

Transactions

  • transaction_list: List transactions with pagination and date filtering
  • limit: Maximum number of transactions to return (default: 100, max: 1000)
  • offset: Number of transactions to skip for pagination
  • startdate: Filter transactions after this date (ISO format, e.g. 2024-01-01)
  • enddate: Filter transactions before this date (ISO format, e.g. 2024-12-31)
  • purchaseId: Filter by purchase ID
  • transaction_get: Get transaction details by ID

Statistics

  • stats_get: Get general statistics about transactions and revenue
  • stats_app: Get app-specific statistics

Events

  • event_list: List recent events with pagination and date filtering
  • limit: Maximum number of events to return (default: 100)
  • offset: Number of events to skip for pagination
  • startdate: Filter events after this date (ISO format, e.g. 2024-01-01)
  • enddate: Filter events before this date (ISO format, e.g. 2024-12-31)

App Management

  • iaptic_switch_app: Switch to a different Iaptic app
  • appName: Name of the app to switch to
  • apiKey: API key for the app
  • iaptic_reset_app: Reset to the default Iaptic app
  • iaptic_current_app: Get information about the currently active app

Development

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build for production
npm run build

# Run production build
npm start

Requirements

  • Node.js >= 18
  • An Iaptic account with API credentials

License

MIT

[
  {
    "description": "List customers from your Iaptic account.n- Returns a paginated list of customers with their purchase statusn- Each customer includes:n  - Application usernamen  - Last purchase informationn  - Subscription status (active/lapsed)n  - Renewal intentn  - Trial/introductory period statusn- Use limit and offset for pagination (default: 100 customers per page)n- Results are ordered by creation date (newest first)",
    "inputSchema": {
      "properties": {
        "limit": {
          "description": "Maximum number of customers to return (default: 100)",
          "type": "number"
        },
        "offset": {
          "description": "Number of customers to skip for pagination",
          "type": "number"
        }
      },
      "type": "object"
    },
    "name": "customer_list"
  },
  {
    "description": "Get detailed information about a specific customer.n- Returns complete customer profile including:n  - Application usernamen  - Purchase historyn  - Active and expired subscriptionsn  - Last purchase detailsn  - Subscription renewal statusn  - Trial and introductory period informationn- Required: customerId parameter",
    "inputSchema": {
      "properties": {
        "customerId": {
          "description": "Unique identifier of the customer",
          "type": "string"
        }
      },
      "required": [
        "customerId"
      ],
      "type": "object"
    },
    "name": "customer_get"
  },
  {
    "description": "Manually associate a customer with a purchase.n- Links a purchase to a specific customern- Takes priority over receipt validation linksn- Useful for manual purchase managementn- Purchase format should be "platform:purchaseId", for example apple:123109519983n- Required: customerId and purchaseId",
    "inputSchema": {
      "properties": {
        "customerId": {
          "description": "Application username of the customer",
          "type": "string"
        },
        "purchaseId": {
          "description": "ID of the purchase to associate",
          "type": "string"
        }
      },
      "required": [
        "customerId",
        "purchaseId"
      ],
      "type": "object"
    },
    "name": "customer_add_purchase"
  },
  {
    "description": "Get customer's subscription status.n- Returns active subscription details if anyn- Includes:n  - Subscription status and expiryn  - Payment and renewal informationn  - Trial/introductory period statusn- Simpler alternative to customer_get for subscription-only apps",
    "inputSchema": {
      "properties": {
        "customerId": {
          "description": "Application username of the customer",
          "type": "string"
        }
      },
      "required": [
        "customerId"
      ],
      "type": "object"
    },
    "name": "customer_subscription"
  },
  {
    "description": "Get customer's transaction history.n- Returns list of all transactionsn- Includes:n  - Payment detailsn  - Transaction statusn  - Associated purchasesn  - Timestamps",
    "inputSchema": {
      "properties": {
        "customerId": {
          "description": "Application username of the customer",
          "type": "string"
        }
      },
      "required": [
        "customerId"
      ],
      "type": "object"
    },
    "name": "customer_transactions"
  },
  {
    "description": "List purchases from your Iaptic account.n- Returns a paginated list of purchasesn- Use limit and offset for pagination (default: 100 per page)n- Filter by date range using startdate and enddate (ISO format)n- Filter by customerId to see purchases from a specific customern- Results include purchase status, product info, and transaction detailsn- Results are ordered by purchase date (newest first)",
    "inputSchema": {
      "properties": {
        "customerId": {
          "description": "Filter purchases by customer ID",
          "type": "string"
        },
        "enddate": {
          "description": "Filter purchases before this date (ISO format, e.g. 2024-12-31)",
          "type": "string"
        },
        "limit": {
          "description": "Maximum number of purchases to return (default: 100, max: 1000)",
          "type": "number"
        },
        "offset": {
          "description": "Number of purchases to skip for pagination",
          "type": "number"
        },
        "startdate": {
          "description": "Filter purchases after this date (ISO format, e.g. 2024-01-01)",
          "type": "string"
        }
      },
      "type": "object"
    },
    "name": "purchase_list"
  },
  {
    "description": "Get detailed information about a specific purchase.n- Returns complete purchase details including:n  - Product informationn  - Purchase statusn  - Associated transactionsn  - Customer informationn  - Subscription details (if applicable)n- Required: purchaseId parameter",
    "inputSchema": {
      "properties": {
        "purchaseId": {
          "description": "Unique identifier of the purchase",
          "type": "string"
        }
      },
      "required": [
        "purchaseId"
      ],
      "type": "object"
    },
    "name": "purchase_get"
  },
  {
    "description": "List financial transactions from your Iaptic account.n- Returns a paginated list of transactionsn- Use limit and offset for pagination (default: 100 per page)n- Filter by date range using startdate and enddate (ISO format)n- Filter by purchaseId to see transactions for a specific purchasen- Results include transaction status, amount, currency, and payment detailsn- Results are ordered by transaction date (newest first)n- Important: Use date filtering to avoid retrieving too many records",
    "inputSchema": {
      "properties": {
        "enddate": {
          "description": "Filter transactions before this date (ISO format, e.g. 2024-12-31)",
          "type": "string"
        },
        "limit": {
          "description": "Maximum number of transactions to return (default: 100, max: 1000)",
          "type": "number"
        },
        "offset": {
          "description": "Number of transactions to skip for pagination",
          "type": "number"
        },
        "purchaseId": {
          "description": "Filter transactions by purchase ID",
          "type": "string"
        },
        "startdate": {
          "description": "Filter transactions after this date (ISO format, e.g. 2024-01-01)",
          "type": "string"
        }
      },
      "type": "object"
    },
    "name": "transaction_list"
  },
  {
    "description": "Get detailed information about a specific transaction.n- Returns complete transaction details including:n  - Transaction statusn  - Amount and currencyn  - Payment method detailsn  - Associated purchase informationn  - Customer informationn  - Timestamps and audit datan- Required: transactionId parameter",
    "inputSchema": {
      "properties": {
        "transactionId": {
          "description": "Unique identifier of the transaction",
          "type": "string"
        }
      },
      "required": [
        "transactionId"
      ],
      "type": "object"
    },
    "name": "transaction_get"
  },
  {
    "description": "Get general transactions, revenue and usage statistics from your Iaptic account.n- Returns aggregated metrics including:n  - Total revenuen  - Number of active subscriptionsn  - Customer growth metricsn  - Transaction success ratesn  - Revenue by product typen- Data is aggregated across all your applications",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "stats_get"
  },
  {
    "description": "Get statistics specific to your application.n- Returns app-specific metrics including:n  - App revenue and growthn  - Active subscriptions for this appn  - Customer metrics for this appn  - Product performance statisticsn  - Transaction metricsn- Uses the app name provided during server initialization",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "stats_app"
  },
  {
    "description": "Get available Stripe products and prices.n- Returns list of products with their associated pricesn- Each product includes:n  - Product ID and display namen  - Description and metadatan  - Available pricing offersn  - Subscription terms if applicablen- Results are cached for 5 minutes",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "stripe_prices"
  },
  {
    "description": "List recent events from your Iaptic account.n- Returns a paginated list of system eventsn- Events include:n  - Receipt validationsn  - Platform notifications (Apple/Google/etc)n  - Webhook deliveriesn  - Purchase status changesn  - Subscription renewalsn- Use limit and offset for paginationn- Results ordered by date (newest first)",
    "inputSchema": {
      "properties": {
        "enddate": {
          "description": "Filter events before this date (ISO format, e.g. 2024-12-31)",
          "type": "string"
        },
        "limit": {
          "description": "Maximum number of events to return (default: 100)",
          "type": "number"
        },
        "offset": {
          "description": "Number of events to skip for pagination",
          "type": "number"
        },
        "startdate": {
          "description": "Filter events after this date (ISO format, e.g. 2024-01-01)",
          "type": "string"
        }
      },
      "type": "object"
    },
    "name": "event_list"
  },
  {
    "description": "Switch to a different Iaptic app.n- Allows temporarily using a different app's credentialsn- All subsequent API calls will use the new app name and API keyn- If using a master key, only the app name needs to be changedn- Useful for managing multiple apps in the same sessionn- Required: appName parameter (apiKey required only if not using master key)",
    "inputSchema": {
      "properties": {
        "apiKey": {
          "description": "API key for the app (not required if using master key)",
          "type": "string"
        },
        "appName": {
          "description": "Name of the app to switch to",
          "type": "string"
        }
      },
      "required": [
        "appName"
      ],
      "type": "object"
    },
    "name": "iaptic_switch_app"
  },
  {
    "description": "Reset to the default Iaptic app.n- Reverts to the original app credentials provided during server initializationn- All subsequent API calls will use the default app name and API keyn- Use this after using iaptic_switch_app to return to the default app",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "iaptic_reset_app"
  },
  {
    "description": "Get information about the currently active Iaptic app.n- Returns the current app namen- Indicates whether using default or custom credentialsn- Shows if using a master key for authentication",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "iaptic_current_app"
  }
]