# SparkPay (dev.sparkpay/sparkpay): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/dev.sparkpay%2Fsparkpay/versions/latest)
- Connected to: https://sparkpay.dev/api/mcp/mcp
- Homepage: https://sparkpay.dev/
- Scoring rules: v2
- Tools: 25
- Average: 44.8 / 100 (Cloudy)
- Near-identical pairs: 0

This page shows how SparkPay (dev.sparkpay/sparkpay)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `list_referrals`: 26 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: app_id, status, limit, include_samples.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument include_samples is unclear.
  - Minor: Says nothing about what it returns.
- `list_coupons`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: app_id, active_only, limit.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument active_only is unclear.
  - Minor: Says nothing about what it returns.
- `list_recent_payments`: 32 / 100
  - Major: Arguments without a description: app_id, limit, include_samples.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument include_samples is unclear.
  - Minor: Says nothing about what it returns.
- `revenue_by_app`: 34 / 100
  - Major: Arguments without a description: include_samples.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument include_samples is unclear.
  - Minor: Says nothing about what it returns.
- `list_subscriptions`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: app_id, status, payment_type, limit, include_samples.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument include_samples is unclear.
- `plan_app_kit`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: app_name.
  - Minor: String arguments with no constraint or example: app_name.
- `get_customer`: 39 / 100
  - Major: Arguments without a description: email, app_id.
  - Minor: String arguments with no constraint or example: email, app_id.
- `list_recent_cancellations`: 39 / 100
  - Major: Arguments without a description: app_id, limit, include_samples.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument include_samples is unclear.
  - Minor: Says nothing about what it returns.
- `update_plan_pricing`: 39 / 100
  - Major: Arguments without a description: app_id, updates, updates[].tier, updates[].payment_type, updates[].amount_cents, updates[].monthly_amount_cents, dry_run.
  - Minor: String arguments with no constraint or example: app_id, updates[].tier.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Says nothing about what it returns.
- `create_app_kit`: 40 / 100
  - Major: Arguments without a description: app_name, answers, answers.plan_catalog, answers.plan_catalog[].tier, answers.plan_catalog[].name, answers.plan_catalog[].monthly_price, answers.plan_catalog[].yearly_price, answers.plan_catalog[].payment_type, answers.plan_catalog[].amount, answers.plan_catalog[].trial_days, answers.success_url, answers.cancel_url, answers.trial_days, answers.confirm_overwrite, answers.push_mode.
  - Minor: String arguments with no constraint or example: app_name, answers.plan_catalog[].tier, answers.plan_catalog[].name, answers.success_url, answers.cancel_url.
  - Minor: The meaning of the boolean argument answers.confirm_overwrite is unclear.
  - Minor: The meaning of the boolean argument answers.push_mode is unclear.
- `list_plans`: 40 / 100
  - Major: Arguments without a description: app_id, include_stripe_ids.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: The meaning of the boolean argument include_stripe_ids is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `delete_coupon`: 45 / 100
  - Major: Arguments without a description: app_id, code, confirm_used, dry_run.
  - Minor: String arguments with no constraint or example: app_id, code.
  - Minor: The meaning of the boolean argument confirm_used is unclear.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Says nothing about what it returns.
- `invite_to_coupon`: 47 / 100
  - Major: Arguments without a description: app_id, code, emails, source, enforce_invite_only, dry_run.
  - Minor: String arguments with no constraint or example: app_id, code, source.
  - Minor: The meaning of the boolean argument enforce_invite_only is unclear.
  - Minor: The meaning of the boolean argument dry_run is unclear.
- `revenue_summary`: 49 / 100
  - Major: Arguments without a description: app_id, include_samples.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument include_samples is unclear.
- `archive_plan`: 50 / 100
  - Major: Arguments without a description: app_id, tier, dry_run.
  - Minor: String arguments with no constraint or example: app_id, tier.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `create_coupon`: 50 / 100
  - Major: Arguments without a description: app_id, code, discount_percent, description, expires_at, max_uses, applies_to_tiers, listed, confirm_high_discount, dry_run.
  - Minor: String arguments with no constraint or example: app_id, code, description, expires_at.
  - Minor: The meaning of the boolean argument listed is unclear.
  - Minor: The meaning of the boolean argument confirm_high_discount is unclear.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Says nothing about what it returns.
- `list_coupon_invites`: 50 / 100
  - Major: Arguments without a description: app_id, code.
  - Minor: String arguments with no constraint or example: app_id, code.
- `bulk_create_coupon`: 52 / 100
  - Major: Arguments without a description: app_ids, code, discount_percent, description, expires_at, max_uses, applies_to_tiers, listed, confirm_high_discount, dry_run.
  - Minor: String arguments with no constraint or example: code, description, expires_at.
  - Minor: The meaning of the boolean argument listed is unclear.
  - Minor: The meaning of the boolean argument confirm_high_discount is unclear.
  - Minor: The meaning of the boolean argument dry_run is unclear.
- `list_apps`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `revoke_coupon_invite`: 52 / 100
  - Major: Arguments without a description: app_id, code, email, reason, dry_run.
  - Minor: String arguments with no constraint or example: app_id, code, email, reason.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Says nothing about what it returns.
- `update_plan_limits`: 52 / 100
  - Major: Arguments without a description: app_id, updates, mode, dry_run.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Says nothing about what it returns.
- `setup_pricing_page`: 53 / 100
  - Major: Arguments without a description: app_id, stage, dry_run, tier, domain, price_suggestions, price_suggestions[].tier, price_suggestions[].label, price_suggestions[].amount_cents, price_suggestions[].billing, price_suggestions[].recommended, price_suggestions[].rationale, discount_percent, coupon_code, faq_drafts, faq_drafts[].question, faq_drafts[].answer.
  - Minor: String arguments with no constraint or example: app_id, tier, domain, price_suggestions[].tier, price_suggestions[].label, price_suggestions[].rationale, coupon_code, faq_drafts[].question, faq_drafts[].answer.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: The meaning of the boolean argument price_suggestions[].recommended is unclear.
- `update_plan_meta`: 55 / 100
  - Major: Arguments without a description: app_id, tier, name, is_elite, recommended, dry_run.
  - Minor: String arguments with no constraint or example: app_id, tier, name.
  - Minor: The meaning of the boolean argument is_elite is unclear.
  - Minor: The meaning of the boolean argument recommended is unclear.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Says nothing about what it returns.
- `set_coupon_listed`: 57 / 100
  - Major: Arguments without a description: app_id, code, listed, listed_from, dry_run.
  - Minor: String arguments with no constraint or example: app_id, code, listed_from.
  - Minor: The meaning of the boolean argument listed is unclear.
  - Minor: The meaning of the boolean argument dry_run is unclear.
- `bulk_delete_coupon`: 62 / 100
  - Major: Arguments without a description: app_ids, code, confirm_used, dry_run.
  - Minor: String arguments with no constraint or example: code.
  - Minor: The meaning of the boolean argument confirm_used is unclear.
  - Minor: The meaning of the boolean argument dry_run is unclear.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
