mcp-server-creem
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-creemCreate a checkout for customer jane@example.com for product prod_abc123"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server for Creem.io
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
Related MCP server: whmcs-mcp-server
Installation
npm install mcp-server-creemOr install from source:
git clone https://github.com/Selenium39/mcp-server-creem.git
cd mcp-server-creem
npm install
npm run buildConfiguration
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.jsonAvailable 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": "user@example.com",
"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: "customer@example.com",
success_url: "https://myapp.com/welcome"
});
// 3. Redirect customer to checkout.checkout_urlManaging 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 environmentUse 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 devResources
Support
Email: support@creem.io
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 support@creem.io.
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
Available Tools
19 toolsactivate_licenseB
Activate a license key for a specific instance/device
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | License key to activate | |
| instance_name | Yes | Unique identifier for the device/installation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors like side effects or idempotency. It only states 'activate' without explaining what happens if the key is already active or any destructive potential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and to the point. No redundancy, but could benefit from slight expansion for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple activation tool with no output schema, the description is minimally adequate but lacks details on success/failure responses or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions are adequate. The description adds no additional semantics beyond what the schema provides, earning the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (activate) and the resource (license key for instance/device), and it distinguishes from siblings like deactivate_license and validate_license.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives; no prerequisites or context for activation. The description implies it is for new activations but does not specify exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_subscriptionC
Cancel an active subscription
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes | Subscription ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose side effects (e.g., proration, refunds, access revocation, impact on invoices). The verb 'Cancel' implies termination but lacks detail on what that entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (3 words). While concise, it is under-specified and fails to front-load critical information like behavior, requirements, or exceptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with no output schema and no annotations, the description should clarify what happens after cancellation (e.g., is it immediate, reversible, what about related resources). It does not, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with one parameter (subscription_id) described in the schema. The tool description adds no extra meaning beyond what the schema already provides. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Cancel') and the resource ('an active subscription'). It distinguishes from sibling tools like 'activate_license' or 'update_subscription', but does not specify nuances like whether it cancels immediately or at period end.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives (e.g., deactivate_license, update_subscription, customer portal). The agent receives no contextual clues about prerequisites or post-conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_checkoutB
Create a checkout session for a product. Returns a checkout URL to redirect customers to.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID to create checkout for | |
| request_id | No | Optional request ID to track the payment in your system | |
| success_url | No | URL to redirect after successful payment | |
| customer_email | No | Pre-fill customer email | |
| customer_name | No | Pre-fill customer name | |
| discount_code | No | Apply discount code | |
| units | No | Number of seats/units for seat-based billing | |
| metadata | No | Custom metadata to attach to the checkout |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects (e.g., creating a session), authentication requirements, rate limits, or error handling. The return of a URL is stated, but other behavioral aspects are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at two sentences. The first sentence conveys the core purpose, and the second clarifies the return value. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, no output schema, no annotations), the description is too brief. It lacks context about the checkout flow, how to handle the returned URL, expected behavior on errors, and relationships with other tools. Considerable room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 8 parameters are described in the schema (100% coverage), so the description adds no additional meaning beyond what the schema provides. The baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (create) and resource (checkout session for a product), and mentions the return value (checkout URL). Easily distinguishable from sibling tools like get_checkout or create_product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for initiating a payment flow, but provides no explicit guidance on when to use this tool versus alternatives like get_checkout or create_customer_portal_link. No when-not-to-use or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_customer_portal_linkA
Generate a customer portal login link for a customer to manage their subscriptions
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It states 'Generate a login link' but does not clarify if this is a read-only operation, if the link is time-limited, or any side effects. The behavior beyond action is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant words. It efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with no output schema, the description is adequate but lacks details on the output format (e.g., the link is a URL) and any side effects. It is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the single parameter 'customer_id' with coverage 100%. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Generate' and the resource 'customer portal login link', and states the purpose 'for a customer to manage their subscriptions'. This distinguishes it from sibling tools like 'create_checkout' or 'get_customer'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (when a customer needs to manage subscriptions) but does not explicitly state when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_discountB
Create a discount code
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Discount code (e.g., SUMMER50) | |
| type | Yes | Discount type | |
| value | Yes | Discount value (percentage: 0-100, fixed: amount in cents) | |
| currency | No | Currency for fixed discounts (default: EUR) | |
| max_redemptions | No | Maximum number of times code can be used | |
| expires_at | No | Expiration date (ISO 8601 format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as side effects, idempotency, or error conditions (e.g., duplicate code).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence) but lacks structure that adds value. It is minimally adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no output schema, and no annotations, the description is too minimal. It does not explain return values or business context (e.g., that a discount code is created and can be used later).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters, so baseline is 3. The description adds no additional meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a discount code' clearly states the verb and resource, distinguishing it from sibling tools like get_discount (read) and delete_discount (delete).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like create_checkout or when not to use it. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_productB
Create a new product in Creem. Products can be one-time payments or recurring subscriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Product name | |
| description | No | Product description | |
| price | Yes | Price in cents (e.g., 1000 = $10.00) | |
| currency | No | Currency code (default: EUR) | EUR |
| billing_type | Yes | Billing type | |
| billing_period | No | Billing period for recurring products (e.g., every-month, every-year) | |
| tax_category | No | Tax category (default: saas) | saas |
| image_url | No | Product image URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description should disclose behavioral traits such as idempotency, error handling, or creation side effects. It only mentions the type of product (one-time/recurring) but omits details like whether duplicate names are allowed or if the product is immediately active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action, no redundant information. However, it could include more details without becoming overly long. Still, it is concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters and no output schema, the description is incomplete. It lacks context on return values, error states, parameter interactions (e.g., billing_period required for recurring), and required permissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal value beyond the schema. It touches on billing_type by mentioning one-time/recurring, but this is already clear from the enum. Baseline is 3 due to high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'create a new product' and the platform 'Creem', and distinguishes between one-time and recurring subscriptions, which differentiates it from sibling tools like search_products or get_product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention that for listing products one should use search_products, or any prerequisites like authentication requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deactivate_licenseB
Deactivate a license key instance
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | License key | |
| instance_id | Yes | Instance ID to deactivate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose behavioral traits like destructive nature, reversibility, or side effects. 'Deactivate' implies mutation but lacks detail on consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no superfluous words. It is front-loaded but could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal for a mutation tool with no output schema. It does not explain return values, success/failure conditions, or prerequisites, leaving agents underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter descriptions for 'key' and 'instance_id'. The description adds no extra semantic value beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'deactivate' with a clear resource 'license key instance', making the tool's purpose unambiguous. It effectively distinguishes from sibling tools like 'activate_license'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'cancel_subscription' or 'delete_discount'. The description does not mention use cases or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_discountC
Delete a discount code
| Name | Required | Description | Default |
|---|---|---|---|
| discount_id | Yes | Discount ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility. 'Delete a discount code' implies a destructive action, but it does not disclose whether the deletion is permanent, reversible, or has side effects (e.g., affecting active discounts or related entities).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that succinctly states the tool's purpose with no wasted words. It is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the simplicity of a deletion tool, the description lacks context on the outcome (e.g., permanence, effects on usage). With no output schema or annotations, the description should provide more behavioral context to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes the single parameter 'discount_id' with 100% coverage. The description adds no further meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a discount code' clearly states the action (delete) and the resource (discount code), making the purpose unambiguous. However, it does not differentiate from sibling tools like 'deactivate_license' or 'cancel_subscription', which could be similar in effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines are provided indicating when to use this tool versus alternatives like 'deactivate_license' or 'cancel_subscription'. The description lacks context on prerequisites or scenarios where deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checkoutA
Retrieve checkout session details by ID
| Name | Required | Description | Default |
|---|---|---|---|
| checkout_id | Yes | Checkout session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavior. It states 'retrieve', indicating a read-only operation, but doesn't discuss error handling (e.g., invalid ID) or permissions. While the behavior is partially clear, additional context like idempotency or potential null results would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It efficiently conveys the tool's purpose and required input, maintaining a front-loaded structure that is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no output schema), the description adequately covers the core action. However, it could be more complete by explicitly stating the return format (e.g., 'Returns a checkout session object'), though the verb 'details' implies that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (one parameter well-described as 'Checkout session ID'). The description adds no extra meaning beyond the schema, simply restating that retrieval is by ID. Thus, it meets the baseline but doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Retrieve' and the resource 'checkout session details by ID'. It distinguishes itself from siblings like create_checkout, get_customer, etc., as it specifically targets retrieving a checkout session using its unique ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to fetch checkout details by ID, but it lacks explicit guidance on when not to use it or alternatives. For instance, it doesn't mention that to list all checkouts, one would need a different tool, nor does it explain prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customerA
Retrieve customer details by email or customer ID
| Name | Required | Description | Default |
|---|---|---|---|
| No | Customer email address | ||
| customer_id | No | Customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read operation but does not disclose auth requirements, rate limits, or return format. Basic adequacy with room for improvement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that conveys the essential information without any unnecessary words. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with no output schema, the description adequately covers purpose and identification methods. It could mention what details are returned, but it is not a major gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% as both parameters have descriptions. The description reiterates the schema info without adding new meaning beyond 'by email or customer ID'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Retrieve' and identifies the resource 'customer details', clearly distinguishing from sibling tools like list_customers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that either email or customer ID can be used, but provides no explicit guidance on when to use this tool versus alternatives like search or list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_discountC
Retrieve discount code details
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Discount code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits, but it only states a generic retrieval action. It does not mention read-only nature, authentication needs, error handling, or response format, leaving essential behavioral aspects unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it is too brief and lacks structure. While brevity is valued, the description could be more informative without becoming verbose. It earns a moderate score for being concise but not optimally structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is incomplete. It does not specify what 'details' are returned, and without annotations, it fails to cover behavioral context such as idempotency or error responses. More completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'code' described as 'Discount code', so the schema handles semantics. The description adds no extra meaning beyond what the schema already provides, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Retrieve') and resource ('discount code details'), making the tool's purpose immediately understandable. However, it does not elaborate on what specific details are returned, which slightly limits clarity. Among siblings, it is distinct from create/delete tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'create_discount' or 'delete_discount'. The description lacks context about prerequisites or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productA
Retrieve details of a specific product by ID
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It indicates a read operation ('Retrieve') but does not disclose auth requirements, rate limits, or edge cases. For a simple get, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 8 words, directly stating the tool's purpose with no extraneous information. It is perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter input and lack of output schema, the description sufficiently conveys what the tool does and what input is needed. No further detail is strictly necessary for a basic retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with product_id having a description in the schema. The tool description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Retrieve details of a specific product by ID', using a specific verb and resource, and implicitly distinguishes from sibling tools like search_products which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a product ID, but provides no explicit guidance on when to use this tool versus alternatives like search_products, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscriptionA
Retrieve subscription details by ID
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes | Subscription ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It only says 'Retrieve', but doesn't disclose whether it requires authentication, what happens on invalid ID, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveying purpose directly, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal but functional for a simple retrieval. Could mention return value structure or common use case, especially given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one parameter with description 'Subscription ID'. Description adds no extra meaning; schema coverage is 100%, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve', the resource 'subscription details', and the identifier 'by ID', distinguishing it from sibling tools like activate_license or cancel_subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like get_customer or list_subscriptions. With 18 sibling tools, explicit context would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_customersC
List all customers
| Name | Required | Description | Default |
|---|---|---|---|
| page_number | No | Page number (default: 1) | |
| page_size | No | Number of items per page (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides minimal behavioral context: only that it lists customers. It lacks details on expected data volume, sorting, or limitations, leaving the agent uninformed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence front-loads the core purpose. However, it could be expanded slightly without losing brevity to include pagination context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated list tool, the description omits details on return format, ordering, or data scope. Since there is no output schema, the description should compensate but fails to do so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters documented. The description adds no additional semantic value beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all customers, differentiating from sibling tools like get_customer. However, it does not mention pagination details present in the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_customer for a specific customer. No explicit when-not or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsC
Search and list all products
| Name | Required | Description | Default |
|---|---|---|---|
| page_number | No | Page number (default: 1) | |
| page_size | No | Number of items per page (default: 50, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It fails to mention pagination behavior, default sorting, or that it returns all products (implied by 'all'). No mention of rate limits or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence and concise, but it is too brief, lacking key details. It could be restructured to front-load core purpose while adding essential context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about the return value, search scope, or filtering. It is incomplete for a tool that likely returns a list of products.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for its two parameters (page_number, page_size) with defaults. The description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search and list all products' clearly states the verb 'search' and resource 'products', indicating it retrieves product listings. However, it does not differentiate from sibling tools like 'get_product' or 'create_product'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives like 'get_product' or 'search_transactions'. There is no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_transactionsC
Search and list transactions
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | No | Filter by product ID | |
| page_number | No | Page number (default: 1) | |
| page_size | No | Number of items per page (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden for behavioral disclosure. It only says 'Search and list transactions' without revealing behavior like authentication needs, rate limits, or scope of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundancy. It is concise, though it could be slightly expanded to add value without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks explanation of return values or behavioral details, despite having no output schema. For a search tool, this is incomplete; it should describe pagination behavior or response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds no additional meaning beyond the parameter names and defaults. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Search and list transactions,' clearly indicating the action and resource. However, it does not differentiate from the sibling tool 'search_products,' which is a missed opportunity for clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description omits any context about prerequisites, suitability, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_subscriptionC
Update subscription (e.g., change number of seats/units)
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes | Subscription ID | |
| items | Yes | Array of subscription items to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It implies mutation ('update') but provides no details on idempotency, permissions, partial failure behavior, or side effects like proration. The example only hints at seat changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, which is efficient. However, it could be slightly expanded with minimal additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain return values or success conditions. It also lacks preconditions (e.g., subscription must be active) and does not address how this fits with sibling tools like 'get_subscription' or 'cancel_subscription'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with clear descriptions for subscription_id and items, including nested fields. The description adds marginal value by giving an example of units as seats, but it does not explain item id or array semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update subscription' with an example 'change number of seats/units', which specifies the verb and resource. It distinguishes from siblings like 'cancel_subscription' but could differentiate better from 'upgrade_subscription', which might imply a specific type of update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is a sibling 'upgrade_subscription' that could be confused; the description does not explain when to use update over upgrade or other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upgrade_subscriptionC
Upgrade or downgrade a subscription to a different product
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes | Subscription ID | |
| product_id | Yes | New product ID to upgrade/downgrade to | |
| update_behavior | No | How to handle the upgrade | proration-charge |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action 'upgrade or downgrade' without explaining side effects, required permissions, or implications like charges or product replacement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately conveys the action. It has no wasted words, but could be more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and no output schema, the description is somewhat minimal. It explains the basic action but lacks details on return values, error conditions, or context for when this tool is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the parameter descriptions already present in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'upgrade or downgrade' and the resource 'subscription' to a specific product. It is unambiguous but does not differentiate from the sibling tool 'update_subscription', which could be confused.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'cancel_subscription', 'create_checkout', or 'update_subscription'. There is no context for prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_licenseB
Validate if a license key is active and valid
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | License key to validate | |
| instance_id | Yes | Instance ID received during activation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It implies a read-only validation but does not disclose whether the operation has side effects, is idempotent, or returns specific details beyond an active/inactive status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the essential purpose without unnecessary words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lacks information about the return value (e.g., boolean, license details). This is a significant gap for a simple validation tool, making it incomplete for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions, achieving 100% coverage. The description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'validate' and the resource 'license key', and distinguishes from sibling tools like activate_license and deactivate_license, which perform different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to validate vs. activate or deactivate a license. The description only states the purpose without any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action (activate, deactivate, validate, cancel, update, upgrade, create, get, list, search) on a specific resource (license, subscription, checkout, discount, product, customer, transaction). There is no overlap in functionality, and descriptions clearly differentiate them.
All tool names follow a consistent verb_object pattern with underscores (e.g., activate_license, create_checkout, list_customers). The verbs are varied but always come first, and the naming is predictable across the entire set.
19 tools cover the essential operations for a payment, subscription, and licensing platform without being excessive. Each tool serves a clear purpose, and the count is well-scoped for the domain.
The tool surface covers core CRUD and lifecycle operations for products, subscriptions, licenses, discounts, and customers. Minor gaps exist (e.g., no product update/delete, no direct subscription creation via tool), but these are acceptable given the checkout-based flow.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- mcpOAuthcom.stripe
MCP server integrating with Stripe - tools for customers, products, payments, and more.
MCP server for Lemon Squeezy — stores, products, orders, subscriptions, license keys.
The official MCP Server for the Mux API
Personal MCP server for humans who create. Proof of authorship, license control.
Related MCP Servers
- AlicenseBqualityCmaintenanceAn MCP server implementation that integrates with LicenseSpring APIs, providing comprehensive license management and customer operations capabilities.1823MIT
- AlicenseBqualityBmaintenanceMCP server to help manage a WHMCS installation.624220MIT
- AlicenseBqualityDmaintenanceUniversal billing gateway for MCP servers. Add Stripe subscription billing to any MCP server with one line of code. Supports tiered plans, usage tracking, and automatic access control.11MIT
- AlicenseDqualityDmaintenanceMCP server for managing Pterodactyl game panel resources (users, servers, nodes, locations, etc.) via the Application API.503MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Selenium39/mcp-server-creem'
If you have feedback or need assistance with the MCP directory API, please join our Discord server