
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"
]
}
}
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"
}
]