Skip to main content
Glama

whop-mcp

A community-built Model Context Protocol (MCP) server for the Whop.com Company API. It enables AI assistants (Claude, Cursor, etc.) to fully manage your Whop business — payments, memberships, products, promo codes, affiliates, and more.

✨ Features

  • 🔐 Secure API key authentication via environment variable

  • 📦 Full TypeScript with strict type-safety

  • 🔄 Automatic retry & rate-limit handling

  • 🛡️ Comprehensive error handling (401, 403, 404, 429)

  • 🚀 Works with Claude Desktop, Cursor, and any MCP-compatible client

  • 📡 stdio transport (works as a CLI binary or subprocess)


Related MCP server: VoIPBin MCP Server

⚙️ Quick Start

Install in VS Code

Install the whop-mcp server in VS Code with one click:

Note: Replace YOUR_WHOP_API_KEY_HERE with your actual Company API key from the Whop Developer Dashboard.

Install in Claude Desktop

Add to your Claude Desktop config file:

macOS/Linux: ~/.config/claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "whop": {
      "command": "npx",
      "args": ["-y", "@furkankoykiran/whop-mcp"],
      "env": {
        "WHOP_API_KEY": "YOUR_WHOP_API_KEY_HERE"
      }
    }
  }
}

Install in Cursor

Add to your Cursor MCP settings (Cursor Settings -> MCP Servers):

{
  "whop": {
    "command": "npx",
    "args": ["-y", "whop-mcp"],
    "env": {
      "WHOP_API_KEY": "YOUR_WHOP_API_KEY_HERE"
    }
  }
}

🔑 Getting Your API Key

  1. Go to https://whop.com/dashboard/developer

  2. Click Create in the Company API Keys section

  3. Give your key a name (e.g. "Claude Integration")

  4. Select the appropriate permissions (Payments, Memberships, Products, etc.)

  5. Copy the key — you'll never see it again!


💰 Available Tools

💰 Payments & Finance

Tool

Description

list_payments

List payments with filters (status, product, date range, pagination)

get_payment

Get full details of a specific payment

refund_payment

Issue a full or partial refund for a payment

retry_payment

Retry a failed payment attempt

void_payment

Void an open/uncollected payment

get_financial_summary

High-level revenue, refund, and fee summary

🪪 Memberships & Licenses

Tool

Description

list_memberships

List memberships with filters (status, product, user, validity)

get_membership

Get full membership details including license key and expiry

validate_license

Validate a license key and check if its membership is active

add_free_days

Extend a membership by adding free days

cancel_membership

Cancel a membership at period end

terminate_membership

Immediately revoke a membership

update_membership

Update metadata on a membership

📦 Products & Catalog

Tool

Description

list_products

List all products with plans and experiences

get_product

Get full product details, plans, and experiences

create_product

Create a new product

update_product

Update product name, visibility, or description

delete_product

Delete a product permanently

list_plans

List all pricing plans for a product

🎟️ Promo Codes & Discounts

Tool

Description

list_promo_codes

List all promo codes with optional status filter

get_promo_code

Get details of a specific promo code

create_promo_code

Create a new discount code (% or $ off)

update_promo_code

Update an existing promo code (status, expiry, etc.)

delete_promo_code

Permanently delete a promo code

🤝 Affiliates

Tool

Description

list_affiliates

List all affiliates with commission and earnings data

get_affiliate

Get detailed stats for a specific affiliate

get_affiliate_summary

Aggregate affiliate program performance with top performers

👥 Customers & Reviews

Tool

Description

get_user

Look up a Whop user by username or user ID

search_users_by_email

Find customers by email address

list_reviews

Fetch customer reviews with optional star rating filter

get_review_stats

Aggregate review statistics (avg rating, distribution)


▶️ Example Prompts

Once connected, you can ask your AI assistant:

  • "Show me all payments from the last 30 days"

  • "Refund payment pay_123abc"

  • "Add 7 free days to membership mem_456def"

  • "Create a 20% off promo code called SUMMER20 that expires December 31, 2025"

  • "What's my average customer review rating?"

  • "Who are my top 5 affiliates by earnings?"

  • "Validate license key ABC-1234-XYZ"


🔧 Development

# Install deps
npm install

# Run in dev mode (auto-reload)
npm run dev

# Build
npm run build

# Test manually
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | WHOP_API_KEY=test node dist/index.js

🤝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

📄 License

This project is licensed under the MIT License.


⚠️ Disclaimer: This is a community-led project and is NOT an official Whop.com product. It is not affiliated with, endorsed by, or supported by Whop.com. Always test in a non-production environment before running actions like refunds or membership terminations.

Available Tools

32 tools
add_free_daysC

Extend a membership by adding free days to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
membership_idYesThe membership ID to extend.
daysYesNumber of free days to add.

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 should disclose side effects or requirements. It only states the action without explaining what happens to the membership (e.g., if already expired, impact on billing) or needed permissions.

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, effectively conveying the core action. It is appropriately concise given the tool's simplicity.

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 too minimal for a mutation tool. No output schema, no annotations, so it should explain expected behavior, side effects, or return value. Currently lacks completeness.

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 already describes both parameters (membership_id, days) with 100% coverage. The description adds the term 'free days' but does not clarify 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 the tool extends a membership by adding free days, which is specific. However, it does not differentiate from sibling tools like update_membership, which could also modify membership duration.

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 update_membership or cancel_membership. The description lacks context on prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_membershipA

Cancel a membership at period end (member retains access until expiry).

ParametersJSON Schema
NameRequiredDescriptionDefault
membership_idYesThe membership ID to cancel.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description adds key behavior: member retains access until expiry. However, lacks details on reversibility, permissions, 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 essential information. No wasted words, 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 tool (1 param, no output schema, no annotations) the description provides necessary behavioral context. Could optionally mention that it's a mutation, but overall adequate.

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% for the single parameter. Description does not add any extra meaning beyond the schema's description of membership_id.

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?

Clear verb (cancel) and resource (membership). Explicitly states 'at period end' which distinguishes from immediate cancellation tools like terminate_membership.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While it states 'at period end', it does not explicitly contrast with siblings like terminate_membership. The context implies graceful cancellation, but lacks direct when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_productA

Create a new product in your Whop company catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProduct name.
visibilityNoProduct visibility (default: visible).visible
descriptionNoProduct description (optional).
headlessNoWhether the product is headless (no Whop storefront).

TDQS

A3.5/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 any behavioral traits beyond the action itself, such as destructive nature, permissions required, 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?

The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for the tool's simplicity.

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?

The description is minimal but adequate for a simple create operation. However, it does not mention what the tool returns (e.g., created product details), leaving some gap in completeness 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 description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond what is in the schema, earning a baseline of 3.

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 'Create' and the resource 'a new product in your Whop company catalog', distinguishing it from siblings like 'update_product' and 'delete_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?

No explicit when-to-use or when-not-to-use guidance is provided. The description implies usage for creating a product but doesn't mention alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_promo_codeB

Create a new promo code with discount configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe promo code string customers will enter at checkout (e.g. SAVE20).
discount_typeYesType of discount: percentage (%) or dollar ($).
discount_amountYesDiscount value. For percentage, use 0-100. For dollar, use amount in cents.
currencyNoCurrency code for dollar discounts (e.g. USD). Required for dollar type.
quantityNoMax number of times this code can be used. Omit for unlimited.
expiry_dateNoExpiry date as ISO 8601 string (e.g. 2025-12-31). Omit for no expiry.
product_idsNoRestrict code to specific product IDs. Omit for all products.
plan_idsNoRestrict code to specific plan IDs. Omit for all plans.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits but only states 'Create new...'. No information on idempotency, error behavior (e.g., duplicate code), authorization needs, or side effects is included.

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, front-loaded sentence with no wasted words. It is appropriately concise, though could benefit from a brief additional clause.

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 an 8-parameter creation tool without annotations or output schema, the description is too minimal. It does not address return values, validation behavior, or error cases, leaving an agent 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 coverage is 100%, so parameters are already well-documented. The description adds high-level context ('with discount configuration') but no additional meaning beyond 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 uses a specific verb-resource pair ('Create a new promo code') and mentions 'discount configuration', clearly differentiating it from sibling tools like delete_promo_code or update_promo_code.

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?

While the description implies creation usage, it provides no explicit guidance on when to use this tool versus alternatives (e.g., update_promo_code) or prerequisites like checking for existing codes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_productA

Delete a product from your catalog. This action is irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesThe product ID to delete.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses irreversibility, a key behavioral trait. However, with no annotations provided, it fails to mention potential side effects on related data (e.g., orders, memberships), authorization needs, or whether the operation is synchronous.

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 extremely concise with two short sentences, front-loading the main action. Every word is essential and no extraneous information is present.

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 tool with one parameter and no output schema, the description covers the key action and irreversibility. However, it lacks mention of prerequisites or post-conditions, leaving gaps for an AI agent unfamiliar with the system.

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 product_id described as 'The product ID to delete.' The description adds no extra semantic value beyond the schema's own description, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Delete' and resource 'product' are explicitly stated, making the action unmistakable. It clearly distinguishes from sibling tools like create_product and update_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 notes the action is irreversible, implying caution, but does not specify when to use this tool versus alternatives (e.g., when a product should be removed from catalog vs. deactivated). No prerequisites or context for safe usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_promo_codeA

Permanently delete a promo code. This cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
promo_code_idYesThe promo code ID to delete.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It clearly states the destructive nature ('Permanently delete', 'cannot be undone'), which is critical behavioral transparency. However, it omits potential side effects like cascading deactivations or authentication requirements, but for a simple delete operation this is acceptable.

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 extremely concise, consisting of two short sentences with no extraneous words. The key information (action and consequence) is front-loaded, making it efficient for an AI agent to parse.

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 one-parameter delete tool without output schema, the description is largely complete. It covers the action and irreversibility. A minor gap is whether the promo code can be deleted if it is in use, but this is not critical for basic usage.

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 provides complete coverage (100%) for the single parameter, including a description. The tool description does not add any additional semantic information about the parameter 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 'delete' and the resource 'promo code', distinguishing it from sibling tools like 'update_promo_code' or 'get_promo_code'. The action is unambiguous.

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 mentions permanence and irreversibility, which implies careful usage, but it does not explicitly state when to use this tool versus alternatives such as 'update_promo_code' for deactivation. No alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_affiliateC

Get detailed statistics for a specific affiliate partner by their affiliate ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
affiliate_idYesThe affiliate ID (e.g. aff_xxxx).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist. Description only mentions 'detailed statistics' but does not specify return fields, idempotency, rate limits, or side effects. Minimal behavioral context.

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, direct, no unnecessary words. Efficiently conveys core purpose.

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?

Tool is simple with one required param and no output schema. Description provides basic purpose but lacks details on output behavior. Adequate but could mention read-only or idempotent nature.

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% for the single parameter. Description adds no extra meaning beyond what the schema already provides (e.g., example aff_xxxx). Baseline 3 for high coverage.

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?

Description clearly states verb (Get), resource (detailed statistics for a specific affiliate partner), and identifier (affiliate ID). It is distinct from siblings like get_affiliate_summary, though not explicitly contrasted.

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 list_affiliates or get_affiliate_summary. No prerequisites or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_affiliate_summaryA

Get an aggregate summary of all affiliate performance: total sales, earnings, and top performers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/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 the full burden. It indicates a read-only operation returning aggregate data but does not disclose whether results are cached, real-time, or require specific permissions. For a simple summary tool, this is adequate but not richly transparent.

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 15 words, efficiently conveying the tool's purpose and output. No filler or redundant information is present.

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 parameterless tool with a clear purpose, the description is mostly sufficient. It explains the output but could benefit from mentioning the output structure or type (e.g., object with specific fields). However, given the simplicity, a score of 4 is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the input schema is fully covered. The description adds meaning by specifying the contents of the output (total sales, earnings, top performers), which compensates for the lack of output schema according to the baseline guideline for 0 parameters.

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 'Get' and identifies the resource 'aggregate summary of all affiliate performance', listing included fields (total sales, earnings, top performers). This clearly distinguishes it from sibling tools like 'get_affiliate' (individual) and 'list_affiliates' (list without summary).

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 aggregate summaries but does not explicitly state when to use this tool versus alternatives like 'get_affiliate' or 'get_financial_summary'. No exclusion criteria or alternative recommendations are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_financial_summaryB

Get a high-level financial summary: total revenue, refunds, fees, and payment breakdown by status.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNoCompany ID to scope the summary.
after_dateNoISO 8601 start date (e.g. 2024-01-01).
before_dateNoISO 8601 end date (e.g. 2024-12-31).

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must fully disclose behavioral traits. It only lists output contents but does not mention side effects, authentication needs, rate limits, or whether the operation is read-only. The absence of any behavioral notes leaves significant gaps.

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, front-loaded with verb and resource, no waste. Efficiently conveys the tool's purpose.

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?

No output schema exists, so the description should detail return structure. It lists summary components but lacks specifics on grouping, pagination, or defaults for optional parameters. Incomplete for a tool with three optional parameters.

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 well-described parameters (company_id, after_date, before_date). The description does not add extra 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb ('Get') and the resource ('high-level financial summary') and lists key components (total revenue, refunds, fees, payment breakdown by status), distinguishing it from sibling tools like get_affiliate_summary or list_payments.

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 explicit when-to-use or when-not-to-use guidance is provided. The description implies it's for high-level summaries, but doesn't mention alternatives or context for filtering (e.g., use get_payment for individual payments).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_membershipB

Get detailed information about a specific membership by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
membership_idYesThe membership ID (e.g. mem_xxxx).

TDQS

B3.4/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 carry the full burden of behavioral disclosure. While it states 'detailed information', it does not specify what information is included (e.g., plan, dates, status). It also fails to note that this is a read-only operation with no side effects. For a fetch tool, this is insufficient 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, complete sentence that conveys the core functionality without any fluff. It is perfectly sized for a simple retrieval operation.

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 lack of an output schema and no annotations, the description should provide more detail about what the returned 'detailed information' includes. Without this, an agent cannot anticipate the response structure, which is critical for a get operation. The description is too minimal for a tool with zero additional context.

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 for its single parameter 'membership_id', with a clear description. The tool description echoes the need for an ID but adds no additional semantic value beyond what the schema already provides. 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 action ('Get detailed information') and the resource ('specific membership') with the identifier ('by its ID'). This immediately distinguishes it from sibling tools like 'list_memberships' (which returns multiple) and 'update_membership' (which modifies).

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 via a membership ID, which is sufficient for a straightforward get-by-ID operation. However, it provides no explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or context that would help an agent decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_paymentA

Get detailed information about a specific payment by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_idYesThe payment ID (e.g. pay_xxxx).

TDQS

A3.5/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 auth requirements, rate limits, or whether the action is read-only. The term 'detailed information' is vague and does not clarify the scope of the response.

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 front-loads the action and resource. No unnecessary words or redundancy.

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?

Given the low complexity (one param, no output schema), the description minimally defines the tool's purpose but lacks specifics about the response structure or 'detailed information'. It is adequate but not comprehensive.

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% for the single parameter payment_id, which already includes an example. The tool description does not add extra meaning beyond the schema, 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 uses specific verb 'Get' and resource 'detailed information about a specific payment', clearly distinguishing it from sibling tools like list_payments (list) and refund/retry/void (mutations).

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 does not explicitly state when to use this tool vs alternatives, but the purpose is implied by the name and context. No guidance on prerequisites or exclusion cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_productB

Get detailed information about a specific product including its plans and experiences.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesThe product ID (e.g. prod_xxxx).

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description fails to disclose side effects, authorization needs, rate limits, or whether it's a read-only operation. The brief description only implies a safe retrieval.

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, clear sentence with no redundant words. It is appropriately 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?

For a single-parameter get tool with no output schema, the description hints at return structure (plans and experiences) and is mostly complete. It lacks mention of error conditions but is adequate.

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% for the single parameter product_id. The description adds context about 'plans and experiences' but does not add parameter-specific meaning beyond 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 clearly states the verb 'Get' and the resource 'detailed information about a specific product including its plans and experiences.' It distinguishes from siblings like get_membership, get_payment, etc.

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 list_products. There is no mention of prerequisites or avoided scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_promo_codeA

Get detailed information about a specific promo code by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
promo_code_idYesThe promo code ID (e.g. promo_xxxx).

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It indicates a read operation ('Get detailed information') but does not disclose any behavioral traits such as authentication needs, rate limits, or side effects. It is adequate for a simple get but lacks depth.

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 contains all necessary information. No wasted words, and the key action and resource are 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?

For a simple get tool with one parameter and no output schema, the description is fairly complete. It could mention that it returns detailed information or include a brief note about the return format, but it is sufficient for an agent to understand the basic purpose.

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 one parameter well-described. The description adds the example format 'promo_xxxx' but the schema already states 'e.g. promo_xxxx'. Thus the description adds minimal meaning beyond 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 clearly specifies the action ('Get'), the resource ('detailed information about a specific promo code'), and the identifier ('by its ID'). It distinguishes from sibling tools like create_promo_code, delete_promo_code, list_promo_codes.

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 a specific promo code ID is known, but does not explicitly state when to use it versus alternatives like list_promo_codes, or provide any exclusions or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_review_statsA

Get aggregate review statistics for your company: average rating, distribution by star count.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idNoScope stats to a specific product 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 carries the burden. It discloses that the tool returns aggregate stats for the company, but doesn't explicitly state it's a read-only operation or mention any authentication requirements. 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, clear sentence that front-loads the core purpose. No unnecessary words, making it 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?

Given the tool has only one optional parameter and no output schema or annotations, the description is mostly complete. It could mention the structure of the return (e.g., 'returns an object with averageRating and ratingDistribution'), but still adequate.

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 a well-described optional 'product_id' parameter. The description adds little beyond the schema, simply restating the tool's purpose. No additional semantics or usage context for the parameter.

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 tool retrieves aggregate review statistics (average rating, distribution by star count) for the company, which distinguishes it from siblings like 'list_reviews' that likely return individual reviews.

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 explicit guidance on when to use this tool vs alternatives. The description implies it's for company-level stats, but does not mention when to prefer it over, e.g., 'get_product' or 'list_reviews', nor does it set exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_userB

Look up a Whop user by their username or numeric user ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesUsername (e.g. john) or user ID (e.g. user_xxxx) to look up.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only says 'look up', implying a read operation, but it does not disclose any behavioral traits such as permissions needed, rate limits, or whether the user info is detailed or minimal.

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, efficient sentence with no wasted words, front-loading the core purpose.

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 lookup tool with one parameter and no output schema, the description is minimally adequate. However, it lacks any hint about the return structure or fields retrieved, which could be helpful given the number of sibling tools.

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 the description matches the schema's parameter description, but adds no extra meaning beyond what the schema already provides.

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 tool looks up a Whop user by username or numeric user ID, using a specific verb and resource, distinguishing it from sibling tools that handle other entities.

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 search_users_by_email, which also retrieves users. The description does not specify context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_affiliatesB

List all affiliate partners for your Whop company with their commission and earnings data.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter affiliates by status.
pageNoPage number.
perNoItems per page.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavior. It does not mention pagination, read-only nature, auth requirements, or rate limits. Only states it lists data, but lacks behavioral context beyond what schema implies.

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, to the point, no wasted words. Could be slightly improved by hinting at pagination, but overall efficient.

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?

Given no output schema, description should indicate response format. It mentions commission and earnings but not structure or pagination. With 3 simple params and full schema coverage, it's adequate but missing some context.

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 baseline is 3. Description adds no extra meaning beyond schema—parameters like 'status', 'page', 'per' are self-explanatory. No elaboration on how commission/earnings data is structured.

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 it lists affiliate partners with commission and earnings data, using specific verb 'list' and resource 'affiliate partners'. It distinguishes from siblings like 'get_affiliate' and 'get_affiliate_summary'.

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?

Implied usage is to list all affiliates, but no explicit guidance on when to use this vs alternatives like 'get_affiliate' for a single affiliate. No exclusions or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_membershipsA

List all memberships for your Whop company with optional filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idNoFilter by product ID.
plan_idNoFilter by plan ID.
user_idNoFilter by user ID.
statusNoFilter by membership status.
validNoFilter by validity (true = currently active).
pageNoPage number.
perNoItems per page.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It indicates a read operation with no side effects, but does not disclose potential rate limits, authentication requirements, or exact return structure (pagination, count). Adequate but not detailed.

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, no unnecessary words, front-loaded with key action and resource. Efficient and clear.

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?

With 7 parameters and no output schema, the description lacks details on pagination behavior, result structure, or how to handle responses. While adequate for a simple list tool, it leaves gaps for effective invocation (e.g., how to iterate pages).

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 schema already documents all parameters. The description adds 'with optional filters' but does not provide additional meaning beyond what the schema conveys. 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 verb (List), resource (memberships), and scope (with optional filters). Distinguishes from sibling tools like get_membership, cancel_membership, etc., as a listing operation.

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?

Usage is implied from the description (use for listing memberships with filters), but no explicit guidance on when to use vs siblings (e.g., get_membership for a single membership, or cancel_membership for mutations).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_paymentsA

List all payments for your Whop company with optional filters (status, product, date range, pagination).

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNoFilter by company ID (e.g. biz_xxxx). Uses your API key's company by default.
product_idNoFilter by product ID.
plan_idNoFilter by plan ID.
statusNoFilter by payment status.
billing_reasonNoFilter by billing reason.
user_idNoFilter by user ID.
after_dateNoISO 8601 start date filter (e.g. 2024-01-01).
before_dateNoISO 8601 end date filter (e.g. 2024-12-31).
pageNoPage number (default 1).
perNoItems per page (1-100, default 25).

TDQS

A3.5/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 does not explicitly state that this is a read-only operation, nor does it disclose pagination behavior or any limitations. The word 'list' weakly implies read, but fails to provide safety or side-effect details.

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, front-loaded sentence with no redundant words. It efficiently conveys the core action and scope, earning its place without unnecessary detail.

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?

Despite 10 parameters and no output schema, the description is minimal. It does not mention the response format (e.g., paginated list of payment objects) or default ordering. Schema covers parameters, but the lack of output schema and additional behavioral context leaves some 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?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond labeling filters as 'optional'. The schema already documents each parameter and defaults (e.g., company_id default). No new semantics are provided.

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 resource ('payments'), action ('list'), and scope ('for your Whop company'). It distinguishes from siblings like get_payment (singular) and mutation tools. The optional filters are mentioned, reinforcing the purpose.

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 listing multiple payments but provides no explicit guidance on when to use this tool versus alternatives like get_payment for a single payment, or refund_payment for refunds. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_plansB

List all pricing plans for a specific product.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesThe product ID whose plans you want to list.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states the basic action. It does not disclose any behavioral traits such as pagination, rate limits, authorization needs, or whether the listing is exhaustive.

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 clear sentence with no unnecessary words. It is concise, though slightly more context could be added without losing conciseness.

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 no output schema and simple parameters, the description lacks information about the return format (e.g., what fields are in the plan list). This is a significant gap for an agent to use the tool correctly.

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 the schema already describes the product_id parameter. The description adds no additional meaning beyond what the schema provides.

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 'List' and the resource 'pricing plans for a specific product'. It distinguishes this tool from sibling listing tools that deal with different resources (e.g., list_products, list_memberships).

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 retrieving plans for a product but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_productsC

List all products in your Whop company catalog, including plans and experiences.

ParametersJSON Schema
NameRequiredDescriptionDefault
visibilityNoFilter by product visibility.
pageNoPage number.
perNoItems per page.

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 must convey behavioral traits. It states it lists products, implying a read operation, but does not disclose pagination behavior, rate limits, or authorization requirements. It lacks transparency for a tool with three parameters and default values.

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 wasted words. However, it could be slightly more informative without losing conciseness—for example, noting defaults or filtering options.

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?

Given the three parameters are fully described in the schema and no output schema exists, the description is minimally adequate. It covers the basic resource but lacks details on return format, pagination defaults, or filtering behavior, leaving gaps for an agent.

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 baseline is 3. The description adds no extra meaning beyond the schema; it does not explain how parameters like visibility or pagination interact. The description's 'including plans and experiences' adds context but not parameter details.

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 uses 'List products' as verb+resource, and specifies scope as 'in your Whop company catalog, including plans and experiences.' This distinguishes it from sibling tools like get_product (single product) and list_plans (only plans), but does not explicitly differentiate from other listing 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 usage guidance is provided. There is no mention of when to use this tool versus alternatives like list_plans or search tools. The agent is left to infer context from the name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_promo_codesB

List all promo codes for your Whop company, with optional filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter promo codes by status.
pageNoPage number.
perNoItems per page.

TDQS

B3.1/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 fully disclose behavior. It implies a read operation but does not mention pagination details, rate limits, or that the result is a list of promo code objects. This lack of detail hinders an AI agent from understanding the full behavior.

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 sentence that efficiently conveys the purpose. However, it could be improved by adding a second sentence about pagination or default ordering without becoming overly long.

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 listing tool with 3 parameters, no output schema, and no annotations, the description is too minimal. It omits return format, pagination behavior, and any ordering or limitations, leaving the agent with incomplete context.

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% description coverage for all three parameters (status, page, per). The description adds only that filters are optional, which is already implied by the schema. No additional semantic value beyond 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 clearly states the verb 'List', the resource 'promo codes', and the scope 'for your Whop company'. It also mentions optional filters, which differentiates it from sibling tools like 'get_promo_code' (single) and 'create_promo_code' (creation).

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 (e.g., 'get_promo_code' for a single code). It does not state when not to use it or provide context about prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_reviewsB

Fetch the latest customer reviews left for your Whop company or a specific product.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idNoFilter reviews by product ID.
min_ratingNoFilter reviews with rating >= this value (1-5).
pageNoPage number.
perNoItems per page.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description only mentions 'Fetch' implying read-only, but lacks details on authentication, rate limits, ordering, or side effects. The word 'latest' suggests sorting but is not explained.

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?

One concise sentence that conveys the core purpose without excess. Front-loaded with key action and resource.

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 4 parameters, pagination, and no output schema, the description is too sparse. Lacks details on pagination behavior, response format, sorting, and error conditions.

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 with descriptions. The tool description adds minimal value beyond schema examples (e.g., 'for your Whop company or a specific product' hints at product_id usage).

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?

Clearly states 'Fetch the latest customer reviews' with specific verb and resource. Distinguishes between company-wide and product-specific reviews, matching the optional product_id parameter. No sibling tool directly overlaps.

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 get_review_stats. No prerequisites or contextual usage hints provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingA

Check server connectivity and uptime

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It transparently states the tool checks connectivity and uptime, implying a non-destructive read operation. No contradictions exist, and the description is adequate for this simple tool.

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 extraneous words. Every word serves a purpose, making it highly concise and 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 tool has no parameters, no output schema, and a simple purpose, the description is contextually complete. It could optionally mention return value format (e.g., status message), but this is not critical for a ping tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are 0 parameters, and the schema is empty. The description does not need to add parameter semantics. Baseline for 0 parameters is 4, and the description meets this standard.

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 'Check server connectivity and uptime' uses a specific verb ('check') and resource ('server connectivity and uptime'), clearly distinguishing it from all sibling CRUD and action tools. No sibling tool has a purpose related to connectivity checks.

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 explicit guidance on when to use this tool versus alternatives is provided. The context is simple enough that usage is implied (e.g., before other operations), but explicit instructions could improve clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refund_paymentA

Issue a full or partial refund for a payment. Use with caution — this action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_idYesThe payment ID to refund (e.g. pay_xxxx).
amountNoRefund amount in cents. Omit for a full refund.
reasonNoReason for the refund.

TDQS

A3.7/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 fully disclose behavior. It mentions irreversibility but does not describe other effects like payment status changes, confirmation steps, or side effects beyond the refund itself.

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 extremely concise with two sentences. The first sentence states the purpose, the second adds a key caution. No unnecessary words.

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?

Given the presence of siblings and no output schema, the description covers the basic purpose and a warning but lacks details on return values, error conditions, or post-refund state. It is adequate but not thorough.

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 schema already explains each parameter. The description adds no additional meaning beyond the schema; it repeats the full/partial refund concept which is already implied by omitting the amount.

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 ('Issue a full or partial refund for a payment'), specifying the verb and resource. It distinguishes this tool from siblings like 'void_payment' or 'retry_payment' by mentioning partial refunds.

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 includes a caution that the action cannot be undone, which provides minimal guidance. However, it does not explicitly state when to use this tool versus alternatives, nor does it give prerequisites or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retry_paymentB

Retry a failed payment attempt for a given payment ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_idYesThe payment ID to retry (e.g. pay_xxxx).

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 carries full burden but only states the action. It fails to disclose whether retrying triggers a new charge, idempotency, or any side effects. This is insufficient for a payment operation.

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 with no wasted words. Front-loaded and efficient.

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 single-param tool, the description is minimal but missing behavioral details. Without output schema, more context on return values or error states would improve completeness.

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 already documents the parameter with a clear description and example. The description adds no extra semantic value, so baseline 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 specifies the action ('retry') and the resource ('failed payment attempt'), distinguishing it from payment-related siblings like refund or void. However, it does not elaborate on the exact meaning of retry.

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 retry versus using alternatives like refund_payment or void_payment. The description lacks context on 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_users_by_emailC

Search for Whop users who have purchased from your company, filtered by email address.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address to search for.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It doesn't disclose whether the tool returns a single user or a list, what fields are in the response, or what happens if no match is found. Lacks details on authentication or rate limits.

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 that front-loads the purpose and context. No unnecessary wording. Appropriate length for a simple tool.

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?

Given low complexity (1 param, no output schema), the description is minimally adequate. However, it lacks details about output format and behavior on no results, which are important for the agent to use correctly. Sibling tools and context don't fill this gap.

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?

Parameter 'email' has 100% schema description coverage. The description adds no extra value beyond restating 'filtered by email address.' Schema already explains it's an email address to search for, so description is adequate but not enhancing.

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 searches for Whop users who have purchased from the user's company, filtered by email. It distinguishes from sibling tools like 'get_user' (likely by ID) and 'list_memberships' by specifying the email filter and the purchaser context.

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 explicit guidance on when to use this tool versus alternatives. For example, it doesn't mention that 'get_user' requires a user ID or that this tool only works for purchasers. The agent must infer usage from the description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

terminate_membershipB

Immediately terminate a membership and revoke all access. This is permanent.

ParametersJSON Schema
NameRequiredDescriptionDefault
membership_idYesThe membership ID to terminate immediately.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses the action is immediate and permanent, indicating destructiveness. However, it omits details like required permissions or whether it triggers downstream 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?

Two concise, front-loaded sentences with no superfluous information. Every word adds value.

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 single-parameter, no-output-schema tool, the description covers the essential action. It is nearly complete but could mention prerequisites or confirmations.

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 the parameter description is clear: 'The membership ID to terminate immediately.' The tool description adds no additional meaning 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 it terminates a membership and revokes all access, emphasizing permanence. However, it does not explicitly differentiate from the sibling tool 'cancel_membership', leaving ambiguity about when to use each.

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 'cancel_membership'. The description mentions permanence but lacks explicit when-to-use or when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_membershipB

Update metadata or notes on a membership record.

ParametersJSON Schema
NameRequiredDescriptionDefault
membership_idYesThe membership ID to update.
metadataNoKey-value metadata to store on the membership.

TDQS

B3.1/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 side effects, authorization requirements, or whether the operation is reversible. For a mutation tool, this is insufficient behavioral information.

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 with no unnecessary words, directly conveying the tool's purpose. Excellent 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?

Tool has no output schema and uses a nested object parameter. The description does not explain return values or usage patterns for the metadata object. Adequate but not comprehensive.

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 descriptions for both parameters. The description adds 'notes' which is not in the schema, but overall does not provide significant additional meaning beyond the schema. 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?

Description clearly states the verb 'update' and resource 'membership record', and specifies scope as 'metadata or notes'. It distinguishes from sibling tools like cancel_membership or terminate_membership, though does not explicitly differentiate.

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 cancel_membership or terminate_membership. Context or conditions for usage are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_productA

Update an existing product's name, visibility, or description.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesThe product ID to update.
nameNoNew product name.
visibilityNoNew visibility.
descriptionNoNew description.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It indicates mutation but does not disclose side effects (e.g., impact of visibility changes), idempotency, permission requirements, or whether only provided fields are updated. Minimal disclosure beyond the action.

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, efficient sentence that is front-loaded with the action and lists the fields. No unnecessary words.

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 mutation tool with 4 parameters and no output schema, the description is adequate but lacks behavioral context such as whether it performs partial updates and what the response contains. The schema covers parameter semantics, so it is minimally 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?

Schema description coverage is 100%, so the description adds no new meaning beyond what the schema already provides. Baseline of 3 is appropriate given 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 explicitly states the verb 'update' and the resource 'product', and lists the specific fields (name, visibility, description) that can be updated. It clearly distinguishes this from sibling tools like 'create_product' (creation) and 'delete_product' (deletion).

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 an existing product's name, visibility, or description needs modification, but it provides no explicit guidance on when not to use it (e.g., for bulk updates) or alternatives among siblings like 'update_membership'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_promo_codeB

Update an existing promo code (e.g. disable it or change expiry).

ParametersJSON Schema
NameRequiredDescriptionDefault
promo_code_idYesThe promo code ID to update.
statusNoNew status.
quantityNoNew usage limit.
expiry_dateNoNew expiry date as ISO 8601 string.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full burden. It only states 'update' with two examples, but does not disclose mutation behavior, idempotency, authorization needs, or effects of omitting fields.

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, front-loaded with the verb, and contains no fluff. It is slightly minimal but efficient.

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 4 parameters, no output schema, no annotations, and numerous sibling tools, the description is insufficient. It fails to explain behavior for optional fields, field interactions, or expected outcomes.

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 baseline is 3. The description adds marginal value by exemplifying 'disable it' (status) and 'change expiry' (expiry_date), but does not elaborate on quantity or promo_code_id beyond 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 states 'Update an existing promo code' with specific examples (disable it or change expiry), clearly identifying the verb and resource, and differentiating from sibling tools like create, delete, get, and list.

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 when to use (to modify an existing promo code) but lacks explicit guidance on prerequisites, alternatives, or when not to use. No exclusionary context is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_licenseA

Validate a license key and check if it maps to an active, valid membership.

ParametersJSON Schema
NameRequiredDescriptionDefault
license_keyYesThe license key string to validate.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It mentions validation and membership check but does not state whether the tool is read-only, requires permissions, or handles invalid keys. Minimal but not explicit.

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, front-loaded with verb, zero unnecessary words. Highly efficient.

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?

Given simplicity (1 param, no output schema), description is adequate but does not mention return value format or error behavior. Could be slightly more 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?

Schema coverage is 100% and already describes the parameter. The description adds no extra meaning beyond the schema. Baseline of 3 applies.

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?

Clearly states verb 'validate', resource 'license key', and outcome 'check if it maps to an active, valid membership'. Differentiates from siblings as the only license validation tool.

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 explicit guidance on when to use this tool versus alternatives. Does not mention when not to use or provide any context for selection among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

void_paymentA

Void an open or uncollected payment. The payment must not yet be collected.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_idYesThe payment ID to void (e.g. pay_xxxx).

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only states the precondition and action, lacking details on side effects, reversibility, or error handling.

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?

Two sentences, efficient and front-loaded with essential information.

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?

Adequate for a simple void operation with one parameter, but lacks mention of error cases or what happens if payment already voided.

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 100% parameter coverage with description for payment_id; the tool description adds no extra parameter-level detail beyond the condition on the payment state.

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 'void', the resource 'payment', and specifies conditions 'open or uncollected', distinguishing it from sibling tools like refund_payment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the required condition 'payment must not yet be collected', but does not name alternative tools like refund_payment for collected payments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 32 tool updatesv1.1.2
    • First observedadd_free_days
    • First observedcancel_membership
    • First observedcreate_product
    • First observedcreate_promo_code
    • First observeddelete_product
    • First observeddelete_promo_code
    • First observedget_affiliate
    • First observedget_affiliate_summary
    • First observedget_financial_summary
    • First observedget_membership
    • First observedget_payment
    • First observedget_product
    • First observedget_promo_code
    • First observedget_review_stats
    • First observedget_user
    • First observedlist_affiliates
    • First observedlist_memberships
    • First observedlist_payments
    • First observedlist_plans
    • First observedlist_products
    • First observedlist_promo_codes
    • First observedlist_reviews
    • First observedping
    • First observedrefund_payment
    • First observedretry_payment
    • First observedsearch_users_by_email
    • First observedterminate_membership
    • First observedupdate_membership
    • First observedupdate_product
    • First observedupdate_promo_code
    • First observedvalidate_license
    • First observedvoid_payment

TDQS

A3.7/5.0

Scored across 32 tools

Disambiguation5/5

Each tool targets a distinct action on a specific resource. Cancel vs. terminate memberships and refund vs. void payments are clearly differentiated by description. No overlapping tool purposes.

Naming Consistency4/5

The vast majority use a consistent verb_noun pattern in snake_case (e.g., create_product, list_memberships). The only exception is 'ping', which is a single verb and slightly breaks the pattern.

Tool Count4/5

32 tools is above the typical 3-15 range but appropriate for a comprehensive commerce platform covering products, memberships, payments, affiliates, reviews, promo codes, users, and licenses. Slightly over but reasonable given the scope.

Completeness5/5

The tool set provides complete CRUD and lifecycle coverage for all major entities: products, memberships, payments, promo codes, affiliates, reviews, and users. Missing operations like update_affiliate are minor and non-essential.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server that provides a comprehensive interface for interacting with the ConnectWise Manage API, simplifying API discovery, execution, and management for both developers and AI assistants.
    7
    18
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI models to interact with VoIPBin's VoIP services, supporting features like call management, agent management, campaigns, conferences, and chat functionality.
    4
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    A Discord Model Context Protocol server that enables AI assistants to interact with Discord by sending messages, managing channels, handling forum posts, managing webhooks, and processing reactions.
    22
    82
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Model Context Protocol (MCP) server for the MetaWealth Asset Launch Dashboard. It enables AI assistants like ChatGPT and Claude to interact with the MWID Dashboard API for asset management, task tracking, and team collaboration.
    MIT