Skip to main content
Glama
Selenium39
by Selenium39

MCP Server for Creem.io

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

Related MCP server: whmcs-mcp-server

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 key

  • CREEM_TEST_MODE (optional): Set to true to use test mode (default: false)

Getting Your API Key

  1. Go to the Creem Dashboard

  2. Navigate to the "Developers" section in the top navbar

  3. Click the eye icon to reveal your API key

  4. 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 name

  • price (required): Price in cents (e.g., 1000 = $10.00)

  • billing_type (required): "one-time" or "recurring"

  • description (optional): Product description

  • currency (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 ID

  • request_id (optional): Custom tracking ID

  • success_url (optional): Redirect URL after payment

  • customer_email (optional): Pre-fill customer email

  • customer_name (optional): Pre-fill customer name

  • discount_code (optional): Apply discount code

  • units (optional): Number of seats/units

  • metadata (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 email

  • customer_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)

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 ID

  • items (required): Array of items with id and units

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 ID

  • product_id (required): New product ID

  • update_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 key

  • instance_name (required): Unique device identifier

deactivate_license

Deactivate a license instance.

Parameters:

  • key (required): License key

  • instance_id (required): Instance ID

validate_license

Validate a license key.

Parameters:

  • key (required): License key

  • instance_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 value

  • currency (optional): For fixed discounts

  • max_redemptions (optional): Usage limit

  • expires_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 product

  • page_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_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:

  1. Set CREEM_TEST_MODE=true in your environment

  2. Use test API key from your Creem dashboard

  3. 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

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

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

Report Bug · Request Feature · GitHub

Available Tools

19 tools
activate_licenseB

Activate a license key for a specific instance/device

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesLicense key to activate
instance_nameYesUnique identifier for the device/installation

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYesSubscription ID to cancel

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesProduct ID to create checkout for
request_idNoOptional request ID to track the payment in your system
success_urlNoURL to redirect after successful payment
customer_emailNoPre-fill customer email
customer_nameNoPre-fill customer name
discount_codeNoApply discount code
unitsNoNumber of seats/units for seat-based billing
metadataNoCustom metadata to attach to the checkout

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_discountB

Create a discount code

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesDiscount code (e.g., SUMMER50)
typeYesDiscount type
valueYesDiscount value (percentage: 0-100, fixed: amount in cents)
currencyNoCurrency for fixed discounts (default: EUR)
max_redemptionsNoMaximum number of times code can be used
expires_atNoExpiration date (ISO 8601 format)

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProduct name
descriptionNoProduct description
priceYesPrice in cents (e.g., 1000 = $10.00)
currencyNoCurrency code (default: EUR)EUR
billing_typeYesBilling type
billing_periodNoBilling period for recurring products (e.g., every-month, every-year)
tax_categoryNoTax category (default: saas)saas
image_urlNoProduct image URL

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesLicense key
instance_idYesInstance ID to deactivate

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
discount_idYesDiscount ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
checkout_idYesCheckout session ID

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoCustomer email address
customer_idNoCustomer ID

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesDiscount code

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesProduct ID to retrieve

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYesSubscription ID

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
page_numberNoPage number (default: 1)
page_sizeNoNumber of items per page (default: 50)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
page_numberNoPage number (default: 1)
page_sizeNoNumber of items per page (default: 50, max: 100)

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idNoFilter by product ID
page_numberNoPage number (default: 1)
page_sizeNoNumber of items per page (default: 50)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYesSubscription ID
itemsYesArray of subscription items to update

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYesSubscription ID
product_idYesNew product ID to upgrade/downgrade to
update_behaviorNoHow to handle the upgradeproration-charge

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesLicense key to validate
instance_idYesInstance ID received during activation

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

A3.5/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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