Server Creem
FreeNot checkedMCP server for Creem.io providing tools to manage subscriptions, products, payments, license keys, and more through the Creem API.
About
MCP server for Creem.io providing tools to manage subscriptions, products, payments, license keys, and more through the Creem API.
README
npm version License: MIT GitHub issues GitHub stars
A Model Context Protocol (MCP) server for Creem.io - the payment partner for SaaS businesses. This server provides tools to manage subscriptions, products, payments, and more through the Creem API.
Features
- Product Management: Create, retrieve, and search products
- Checkout Sessions: Generate payment links and checkout sessions
- Subscription Management: Handle recurring subscriptions, upgrades, and cancellations
- Customer Management: Manage customers and generate portal links
- License Keys: Activate, validate, and deactivate software licenses
- Discount Codes: Create and manage discount codes
- Transactions: Search and retrieve payment transactions
- Test Mode: Full support for Creem's test environment
Installation
npm install mcp-server-creem
Or install from source:
git clone https://github.com/Selenium39/mcp-server-creem.git
cd mcp-server-creem
npm install
npm run build
Configuration
Environment Variables
Set the following environment variables:
CREEM_API_KEY(required): Your Creem API keyCREEM_TEST_MODE(optional): Set totrueto use test mode (default:false)
Getting Your API Key
- Go to the Creem Dashboard
- Navigate to the "Developers" section in the top navbar
- Click the eye icon to reveal your API key
- Copy and save it securely
MCP Settings Configuration
Add this to your MCP settings file (e.g., claude_desktop_config.json):
{
"mcpServers": {
"creem": {
"command": "node",
"args": ["/path/to/mcp-server-creem/build/index.js"],
"env": {
"CREEM_API_KEY": "your-api-key-here",
"CREEM_TEST_MODE": "true"
}
}
}
}
For Claude Desktop on macOS, the config file is typically at:
~/Library/Application Support/Claude/claude_desktop_config.json
Available Tools
Product Management
create_product
Create a new product (one-time or subscription).
Parameters:
name(required): Product nameprice(required): Price in cents (e.g., 1000 = $10.00)billing_type(required): "one-time" or "recurring"description(optional): Product descriptioncurrency(optional): Currency code (default: "EUR")billing_period(optional): For recurring products (e.g., "every-month", "every-year")tax_category(optional): Tax category (default: "saas")image_url(optional): Product image URL
Example:
{
"name": "Pro Plan",
"description": "Professional subscription",
"price": 2900,
"currency": "USD",
"billing_type": "recurring",
"billing_period": "every-month"
}
get_product
Retrieve product details by ID.
Parameters:
product_id(required): Product ID
search_products
List all products.
Parameters:
page_number(optional): Page number (default: 1)page_size(optional): Items per page (default: 50, max: 100)
Checkout Sessions
create_checkout
Create a checkout session for a product.
Parameters:
product_id(required): Product IDrequest_id(optional): Custom tracking IDsuccess_url(optional): Redirect URL after paymentcustomer_email(optional): Pre-fill customer emailcustomer_name(optional): Pre-fill customer namediscount_code(optional): Apply discount codeunits(optional): Number of seats/unitsmetadata(optional): Custom metadata object
Example:
{
"product_id": "prod_abc123",
"customer_email": "[email protected]",
"success_url": "https://myapp.com/success",
"metadata": {
"user_id": "12345",
"plan": "pro"
}
}
get_checkout
Retrieve checkout session details.
Parameters:
checkout_id(required): Checkout session ID
Customer Management
get_customer
Get customer details by email or ID.
Parameters:
email(optional): Customer emailcustomer_id(optional): Customer ID
list_customers
List all customers.
Parameters:
page_number(optional): Page number (default: 1)page_size(optional): Items per page (default: 50)
create_customer_portal_link
Generate a customer portal login link.
Parameters:
customer_id(required): Customer ID
Subscription Management
get_subscription
Retrieve subscription details.
Parameters:
subscription_id(required): Subscription ID
cancel_subscription
Cancel an active subscription.
Parameters:
subscription_id(required): Subscription ID
update_subscription
Update subscription (e.g., change seats).
Parameters:
subscription_id(required): Subscription IDitems(required): Array of items withidandunits
Example:
{
"subscription_id": "sub_xyz789",
"items": [
{
"id": "sitem_abc123",
"units": 5
}
]
}
upgrade_subscription
Upgrade or downgrade to a different product.
Parameters:
subscription_id(required): Subscription IDproduct_id(required): New product IDupdate_behavior(optional): "proration-charge-immediately", "proration-charge", or "proration-none"
License Key Management
activate_license
Activate a license key for a device/instance.
Parameters:
key(required): License keyinstance_name(required): Unique device identifier
deactivate_license
Deactivate a license instance.
Parameters:
key(required): License keyinstance_id(required): Instance ID
validate_license
Validate a license key.
Parameters:
key(required): License keyinstance_id(required): Instance ID
Discount Codes
create_discount
Create a discount code.
Parameters:
code(required): Discount code (e.g., "SUMMER50")type(required): "percentage" or "fixed"value(required): Discount valuecurrency(optional): For fixed discountsmax_redemptions(optional): Usage limitexpires_at(optional): Expiration date (ISO 8601)
Example:
{
"code": "LAUNCH50",
"type": "percentage",
"value": 50,
"max_redemptions": 100
}
get_discount
Retrieve discount details.
Parameters:
code(required): Discount code
delete_discount
Delete a discount code.
Parameters:
discount_id(required): Discount ID
Transactions
search_transactions
Search and list transactions.
Parameters:
product_id(optional): Filter by productpage_number(optional): Page number (default: 1)page_size(optional): Items per page (default: 50)
Usage Examples
Creating a Product and Checkout
// 1. Create a product
const product = await create_product({
name: "Premium Plan",
price: 4900,
billing_type: "recurring",
billing_period: "every-month"
});
// 2. Create checkout session
const checkout = await create_checkout({
product_id: product.id,
customer_email: "[email protected]",
success_url: "https://myapp.com/welcome"
});
// 3. Redirect customer to checkout.checkout_url
Managing Subscriptions
// Get subscription details
const subscription = await get_subscription({
subscription_id: "sub_abc123"
});
// Update seat count
await update_subscription({
subscription_id: "sub_abc123",
items: [{
id: "sitem_xyz789",
units: 10
}]
});
// Cancel subscription
await cancel_subscription({
subscription_id: "sub_abc123"
});
License Key Workflow
// Activate license
const activated = await activate_license({
key: "LICENSE-KEY-HERE",
instance_name: "user-macbook-pro"
});
// Validate on app startup
const isValid = await validate_license({
key: "LICENSE-KEY-HERE",
instance_id: activated.instance[0].id
});
// Deactivate when transferring
await deactivate_license({
key: "LICENSE-KEY-HERE",
instance_id: activated.instance[0].id
});
Test Mode
To test your integration without real payments:
- Set
CREEM_TEST_MODE=truein your environment - Use test API key from your Creem dashboard
- Use test card:
4242 4242 4242 4242(any CVV/expiry)
All functionality works the same in test mode, but no real charges occur.
Error Handling
The server returns detailed error messages:
{
"content": [{
"type": "text",
"text": "Error: Creem API Error (401): Invalid API key"
}],
"isError": true
}
Common errors:
- 401: Invalid API key
- 403: Forbidden - check permissions
- 404: Resource not found
- 400: Invalid parameters
Development
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run watch
# Run in development
npm run dev
Resources
Support
- Email: [email protected]
- Discord: Join Community
- Documentation: docs.creem.io
License
MIT
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
Security
Never commit your API keys. Always use environment variables. Report security issues to [email protected].
Sponsored By
This project is proudly supported by ChatTempMail
ChatTempMail - Professional temporary email service for developers and testers.
🚀 Looking for more MCP servers? Check out mcp-server-tempmail - A powerful MCP server for managing temporary email addresses!
Made with ❤️ for the MCP community
Install Server Creem in Claude Desktop, Claude Code & Cursor
unyly install mcp-server-creemInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add mcp-server-creem -- npx -y mcp-server-creemFAQ
Is Server Creem MCP free?
Yes, Server Creem MCP is free — one-click install via Unyly at no cost.
Does Server Creem need an API key?
No, Server Creem runs without API keys or environment variables.
Is Server Creem hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Server Creem in Claude Desktop, Claude Code or Cursor?
Open Server Creem on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Server Creem with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
