Skip to main content
Glama
revclamp

RevClamp MCP Server

Official

RevClamp MCP Server & CLI (revclamp-mcp)

RevClamp Enterprise — B2B Revenue & Compliance Guardrails

revclamp-mcp is the official Model Context Protocol (MCP) stdio bridge and CLI diagnostic client for RevClamp Enterprise. It connects Claude Desktop, Cursor, Windsurf, Cline, and CI pipelines to RevClamp's Streamable HTTP MCP endpoint (POST https://api.revclamp.com/api/mcp) with zero external npm dependencies.

Exposed MCP Tools (9)

Tool Name

Domain

Primary Capability

Mode

revclamp_audit_revenue_leakage

Stripe Billing & Usage

Runs a 90-day B2B revenue leakage and dispute readiness audit across subscriptions, usage events, and disputes

Stateless Sandbox or Workspace Key

revclamp_evaluate_ghost_usage

Stripe 2025-03-31.basil

Evaluates multi-subscription customer snapshots (has_more: false enforced) and 0–14d dunning grace windows for unpaid API/LLM bleed

Stateless Sandbox or Workspace Key

revclamp_stage_stripe_dispute_ce3

Visa 10.4 / CE 3.0

Evaluates 120d–365d prior undisputed charges (ip_subnet/device_id overlap) and stages a submit: false draft (<= 18,000 UTF-16 code units)

Stateless Sandbox or Workspace Key

revclamp_validate_eu_vat_vies

EU & XI B2B VAT

Normalizes 27 EU member states + Northern Ireland (XI) VAT IDs (GR -> EL) and evaluates VIES HTTP 200 errorWrappers holds

Stateless Sandbox or Workspace Key

revclamp_reconcile_b2b_net_terms

B2B Wholesale Net-30

Reconciles Net-15/30/60 upfront deposits and credit notes using integer EUR-cent accounting

Stateless Sandbox or Workspace Key

revclamp_verify_webhook_signature

Webhook HMAC-SHA256

Generates and verifies Stripe-Signature, X-Shopify-Hmac-Sha256, and X-RevClamp-Signature over raw UTF-8 bytes with 300s replay checks

Stateless Sandbox or Workspace Key

revclamp_calculate_roi_and_plan_fit

0% Take-Rate ROI & Plan Fit

Calculates monthly and annual B2B margin savings in integer USD cents vs. 25%–30% chargeback agencies and recommends the optimal tier

Stateless Sandbox or Workspace Key

revclamp_simulate_webhook_replay

Webhook Replay & FSM

Simulates 1–10 subscription lifecycle webhooks against a 72h deduplication Set and monotonic createdSec guard vs. naive arrival-order handlers

Stateless Sandbox or Workspace Key

revclamp_lint_dispute_evidence

Dispute Evidence UTF-16 & CE 3.0

Lints evidence[access_activity_log] payloads against the 18,000 UTF-16 code unit ceiling, non-destructive CE 3.0 markers, merchant note preservation, and CE 3.0 prior-charge qualification

Stateless Sandbox or Workspace Key

Related MCP server: CLI Anything Hub MCP

Quick Start (Claude Desktop / Cursor / Windsurf)

Add revclamp-mcp to your claude_desktop_config.json or .cursor/mcp.json. Omit REVCLAMP_API_KEY to run in Stateless Sandbox Mode (zero database writes), or pass your rg_live_... workspace key from https://revclamp.com/dashboard:

{
  "mcpServers": {
    "revclamp": {
      "command": "npx",
      "args": ["-y", "github:revclamp/revclamp-mcp"],
      "env": {
        "REVCLAMP_API_KEY": "rg_live_YOUR_WORKSPACE_KEY"
      }
    }
  }
}

Or connect directly via Streamable HTTP (JSON-RPC 2.0) without installing a local binary:

curl -sS -X POST https://api.revclamp.com/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

CLI Usage

# List all 9 MCP tools and JSON schemas
node index.mjs --list-tools

# Validate an EU or Northern Ireland (XI) B2B VAT ID (auto-converts Greece GR -> EL)
node index.mjs --check-vat GR123456789 DE

# Calculate 0% take-rate ROI and optimal flat-rate plan fit
node index.mjs --calc-roi 10000 600 25 250000

# Simulate out-of-order webhook replay and 72-hour deduplication state machine
node index.mjs --sim-replay out_of_order_stale_update_after_cancel

# Lint Stripe dispute evidence UTF-16 code units and non-destructive CE 3.0 markers
node index.mjs --lint-evidence valid_ce3_non_destructive

# Verify webhook HMAC-SHA256 using REVCLAMP_WEBHOOK_SECRET from environment
REVCLAMP_WEBHOOK_SECRET="whsec_test_secret_revclamp_sandbox_2026" node index.mjs --verify-webhook stripe

# Invoke Visa CE 3.0 readiness staging in Stateless Sandbox mode
node index.mjs --call revclamp_stage_stripe_dispute_ce3 '{"disputeId":"du_1Qxyz01","customerId":"cus_ent_88","disputeReason":"fraudulent"}'

Architecture & Engineering Deep-Dives (7 Post-Mortems & 8 Interactive Browser Tools)

1. Stripe 2025-03-31.basil Entitlement Guard & Visa CE 3.0 Two-Tier Routing

Stripe basil entitlement and CE 3.0 flowchart

2. EU VIES HTTP 200 OK Soft-Failure Circuit Breaker & B2B Net-Terms Reconciliation

EU VIES circuit breaker flowchart

3. Webhook HMAC-SHA256 Raw-Body Security, 72h Replay FSM & 0% Take-Rate ROI

Security & Resource Bounds

  • Strict Origin Pinning: Only connects to https://api.revclamp.com/api/mcp or https://revclamp.com/api/mcp over TLS (redirect: "error"). Rejects non-HTTPS protocols, embedded credentials, and untrusted origins.

  • Bounded Execution: Enforces a hard 10,000ms request timeout (AbortSignal.timeout) and a 32,768-byte request/response payload cap.

  • Full LLM Reference: https://revclamp.com/llms-full.txt

License

MIT © RevClamp Enterprise

Available Tools

9 tools
revclamp_audit_revenue_leakageAudit B2B Revenue Leakage & Dispute ReadinessA
Read-onlyIdempotent
Inspect

Run a deterministic 90-day B2B revenue leakage and chargeback readiness audit across Stripe subscriptions, AI/API usage telemetry events, and open disputes. Executes as a 100% read-only, stateless diagnostic with zero external Stripe mutations. Returns structuredContent containing ok, mode, statelessEphemeralAudit, tenantId, dunningGracePeriodDays, costPerEventCents, and audit (scannedCustomers, scannedEvents, ghostLeakEventsCount, affectedCustomersCount, estimatedBleedUsd, disputesEligibleForAutoEvidence). Use this tool for portfolio-wide multi-customer audits; use revclamp_evaluate_ghost_usage for single-customer entitlement checks or revclamp_stage_stripe_dispute_ce3 to build a single dispute's Visa CE 3.0 evidence bundle.

NameRequiredDescriptionDefault
disputesNoOptional array of up to 50 Stripe dispute objects (each with id like 'du_123', customer, amount in cents, reason such as 'fraudulent', and status such as 'needs_response').
customersNoOptional array of up to 50 Stripe customer snapshots (each with id like 'cus_123', optional email, subscriptions array or list object, and subscriptionsHasMore: false). Omit to run against workspace telemetry or deterministic sandbox fixtures.
usageEventsNoOptional array of up to 200 product/AI API usage telemetry events (each with stripe_customer_id or email, event_name, and occurredAtSec Unix timestamp in seconds).
costPerEventCentsNoEstimated marginal compute or API cost per leaked usage event in integer USD cents (valid range: 1 to 10000, default: 142 i.e. $1.42/event).
dunningGracePeriodDaysNoCustom dunning grace window in integer days (valid range: 0 to 14, default: 3) allowed after latest_invoice_failed_at before flagging past_due subscriptions as unpaid ghost usage.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is structured; the description nevertheless adds that execution is stateless and performs zero external Stripe mutations, which is real context beyond the annotations. It omits error/runtime behavior and any limits on execution time for large arrays, keeping it short of a 5.

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?

Three sentences, front-loaded with the verb and scope, then behavior, then routing guidance. The enumerated return fields are long but earn their place since no output schema exists; only the list of scanned/derived counters borders on verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema present, the description compensates by naming the structuredContent keys an agent will receive, and the schema already documents all five optional inputs including the omit-to-use-fixtures fallback. Combined with sibling routing, an agent has everything needed to invoke it 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 description coverage is 100% and every parameter carries a detailed description with ranges and defaults (costPerEventCents 1-10000 default 142, dunningGracePeriodDays 0-14 default 3), so the schema does the heavy lifting. The description adds no additional parameter semantics beyond echoing those two field names in the return payload.

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?

States a specific verb and resource set ('Run a deterministic 90-day B2B revenue leakage and chargeback readiness audit across Stripe subscriptions, AI/API usage telemetry events, and open disputes'), including the exact data sources scanned. An agent can tell this apart from the single-customer and single-dispute siblings without opening any schema.

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

Usage Guidelines5/5

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

Explicitly scopes usage ('portfolio-wide multi-customer audits') and names two alternatives with the condition that selects each: revclamp_evaluate_ghost_usage for single-customer entitlement checks and revclamp_stage_stripe_dispute_ce3 for a single dispute's CE 3.0 bundle. Nothing is left to inference.

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

revclamp_calculate_roi_and_plan_fitCalculate B2B 0% Take-Rate ROI & Optimal Plan FitA
Read-onlyIdempotent
Inspect

Deterministically calculate monthly and annual B2B margin savings using exact integer USD cents when replacing a 25%-30% contingency chargeback agency with RevClamp flat-rate 0% commission plans ($19 Starter, $59 Growth, $199 Scale). Evaluates monthlyWonDisputeUsd, monthlyGhostBleedUsd, contingencyTakeRatePercent, and monthlyUsageEvents to recommend the optimal tier. Returns structuredContent containing ok, mode, statelessEphemeralAudit, tenantId, recommendedTier, annualNetMarginSavedUsd, roiMultiple, and calculation.

NameRequiredDescriptionDefault
monthlyUsageEventsNoMonthly verified usage events across your workspace (integer 0 to 50000000, default: 250000) used to recommend Starter (<=100k), Growth (<=1M), or Scale (<=5M).
monthlyGhostBleedUsdNoMonthly unpaid AI/API or SaaS usage bleed stopped by RevClamp basil entitlement guards in USD (valid range: 0 to 10000000, default: 600).
monthlyWonDisputeUsdNoMonthly won Stripe chargeback volume in USD (valid range: 0 to 10000000, default: 10000) subject to legacy agency take-rate fees.
contingencyTakeRatePercentNoCompetitor chargeback agency contingency commission percentage (valid range: 1 to 50, default: 25 for 25% take-rate tools).

TDQS

A4.3/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds useful behavioral context by stating the calculation is deterministic, uses exact integer USD cents, and returns structuredContent fields including statelessEphemeralAudit and calculation.

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 front-loaded with the core calculation and plan-fit purpose, then covers inputs and return fields in three efficient sentences. The output field list is justified because no output schema exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The input schema is fully described, annotations cover safety and idempotency, and because there is no output schema the description usefully enumerates the key returned structuredContent fields. Nothing essential for correct invocation appears missing.

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 ranges, defaults, and tier thresholds for all four parameters. The description repeats the parameter names and their role in recommending a tier, but adds no parameter semantics 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 gives a specific verb and resource: calculate monthly and annual B2B margin savings and recommend the optimal RevClamp plan tier. It distinguishes the tool from sibling audit/evaluate tools by focusing on ROI calculation and plan fit rather than leakage auditing or usage evaluation.

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?

The description provides a clear usage context: replacing a 25%-30% contingency chargeback agency with RevClamp flat-rate plans. It does not explicitly name when-not to use it or name sibling alternatives, so it falls short of a 5.

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

revclamp_evaluate_ghost_usageEvaluate Single-Customer Stripe Basil Ghost UsageA
Read-onlyIdempotent
Inspect

Evaluate whether a specific customer's AI or API usage event constitutes unpaid ghost usage across multi-subscription Stripe 2025-03-31.basil state, enforcing fail-closed pagination (has_more must be explicitly false) and configurable 0-14 day dunning grace windows. Executes as a stateless, read-only entitlement evaluator with zero side effects. Returns structuredContent containing ok, mode, statelessEphemeralAudit, tenantId, and evaluation (isGhostLeak, isGhostUsage, reason). Use this tool for real-time per-customer entitlement gating; use revclamp_audit_revenue_leakage for batch multi-customer portfolio audits.

NameRequiredDescriptionDefault
customerIdYesRequired Stripe customer identifier to evaluate (format example: 'cus_9s6XKzkNRiz8i3', max 64 chars).
occurredAtSecNoOptional alias for usageTimestampSec: Unix epoch timestamp in integer seconds (e.g. 1761264000) when the usage event occurred (used when usageTimestampSec is omitted).
subscriptionsYesRequired Stripe customer subscriptions payload: either a Stripe list object ({ data: [...], has_more: false }) or a raw array of up to 50 subscription objects containing id, status ('active', 'trialing', 'past_due', 'canceled', 'unpaid'), current_period_end, or items.data[].current_period_end in Unix seconds.
usageTimestampSecNoOptional Unix epoch timestamp in integer seconds (e.g. 1761264000) when the AI/API usage event occurred (defaults to current server Unix timestamp if omitted).
subscriptionsHasMoreNoPagination completeness flag (boolean). Must be explicitly set to false when passing a raw subscriptions array so RevClamp can verify no active subscription was truncated on a later page.
dunningGracePeriodDaysNoDunning grace window in integer days (valid range: 0 to 14, default: 3) after latest_invoice_failed_at during which past_due subscriptions remain entitled.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description wisely focuses on what annotations cannot express: fail-closed pagination semantics ('has_more must be explicitly false') and the 0-14 day dunning grace window that keeps past_due subscriptions entitled. It also enumerates the structuredContent return keys. Minor deduction because it restates 'stateless, read-only, zero side effects', which the annotations already declare.

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?

Three sentences, front-loaded with the evaluation purpose, then the fail-closed/dunning behavior, then the return shape and sibling routing. It is dense and jargon-heavy ('Stripe 2025-03-31.basil'), but nearly every clause carries operational meaning and nothing is padded.

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?

With no output schema, the description compensates by listing the returned structuredContent keys (ok, mode, statelessEphemeralAudit, tenantId, evaluation fields). Combined with 100% schema coverage and rich annotations, an agent has enough to call it correctly; only the failure mode for a truncated page (error vs. ok=false) is left unspecified.

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 every parameter including defaults and ranges, making 3 the baseline. The description does add one cross-parameter constraint (raw arrays require subscriptionsHasMore=false to avoid truncation) and the 0-14 day grace window, but these largely restate what the individual field descriptions say.

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?

States a specific verb and resource: evaluates whether one customer's AI/API usage event is 'unpaid ghost usage' against multi-subscription Stripe basil state. It also names its scope (per-customer, real-time) explicitly against the batch sibling revclamp_audit_revenue_leakage, so it is distinguishable without opening the schema.

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

Usage Guidelines5/5

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

The final sentence gives an explicit routing rule: 'use this tool for real-time per-customer entitlement gating; use revclamp_audit_revenue_leakage for batch multi-customer portfolio audits.' This is a direct when-to-use plus named alternative, which is exactly what an agent needs among nine revclamp siblings.

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

revclamp_lint_dispute_evidenceStripe Dispute Evidence UTF-16 & CE 3.0 Completeness LinterA
Read-onlyIdempotent
Inspect

Deterministically lint a Stripe dispute evidence[access_activity_log] payload against Stripe's 18,000 UTF-16 code unit (String.prototype.length) ceiling, UTF-8 byte length, non-destructive --- BEGIN REVCLAMP CE3 EVIDENCE --- / --- END REVCLAMP CE3 EVIDENCE --- delimiter markers, existing merchant note preservation, and Visa Compelling Evidence 3.0 (CE 3.0) prior-charge (>= 2) + IP/device overlap qualification. Returns structuredContent containing ok, mode, statelessEphemeralAudit, tenantId, lint, utf16CodeUnits, maxUtf16Ceiling, remainingUtf16Units, withinCeiling, utf8Bytes, nonDestructiveMarkersPresent, merchantNotesPreserved, priorMatchedCount, hasIpMatch, hasDeviceMatch, ce3RubricPassed, and overallVerdict.

NameRequiredDescriptionDefault
presetNoScenario preset to evaluate when custom evidenceLogText is omitted (default: 'valid_ce3_non_destructive').
hasIpMatchNoWhether the disputed charge IPv4/IPv6 address matches the historical undisputed charges.
hasDeviceMatchNoWhether the disputed charge device_id fingerprint matches the historical undisputed charges.
evidenceLogTextNoMerged or candidate Stripe dispute evidence[access_activity_log] payload evaluated against the 18,000 UTF-16 code unit ceiling and non-destructive delimiter markers.
priorMatchedCountNoNumber of prior undisputed Stripe charges (120d-365d old) with matching customer_id and IP/device fingerprint (Visa CE 3.0 requires >= 2).
existingMerchantNotesNoExisting human AE/support notes inside evidence[access_activity_log] that must be preserved.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, closed-world, non-destructive, so the description correctly spends its words elsewhere: it asserts determinism, that linting is non-destructive to merchant notes and markers, and enumerates the structuredContent keys returned. With no output schema present, that return-field disclosure carries real weight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The intent is front-loaded in the first clause, but the body is a single sprawling run-on sentence that ends in a 17-item comma-separated return-field list. It is dense rather than wasteful, yet the enumeration should have been a structured clause, hurting scannability.

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 no output schema and no annotations describing returns, the description supplies the verdict keys an agent needs to interpret results, plus the domain rule set. It stops short of explaining the preset/custom interaction and the relationship to the staging sibling, but nothing essential for calling it correctly is missing.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning: it clarifies the ceiling is measured as String.prototype.length (UTF-16 code units, not bytes), names the exact --- BEGIN/END REVCLAMP CE3 EVIDENCE --- delimiters the evidenceLogText must contain, and states the CE 3.0 '>= 2 prior charges + IP/device overlap' rule that governs priorMatchedCount/hasIpMatch/hasDeviceMatch.

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?

States a specific verb (lint) and a precisely-scoped resource (Stripe dispute evidence[access_activity_log] payload), and enumerates exactly which checks it runs (UTF-16 ceiling, UTF-8 bytes, delimiters, note preservation, CE 3.0 qualification). It never distinguishes itself from the very similar sibling revclamp_stage_stripe_dispute_ce3, so an agent must open both schemas to know which to pick.

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 only implied: the checks listed make it obvious this is a pre-submission validation step. There is no explicit 'call this before X' guidance and no exclusion telling the agent when to prefer revclamp_stage_stripe_dispute_ce3 over this linter, which is the key routing ambiguity.

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

revclamp_reconcile_b2b_net_termsReconcile B2B Wholesale Net-15/30/60 Deposits & Credit NotesA
Read-onlyIdempotent
Inspect

Reconcile B2B wholesale Net-15, Net-30, and Net-60 invoice deposits, partial payments, and credit notes using exact integer minor-unit (EUR/USD cent) arithmetic with zero IEEE-754 floating-point drift. Executes as a pure, stateless, read-only financial reconciliation function. Returns structuredContent containing ok, mode, statelessEphemeralAudit, tenantId, and reconciliation (state, status, fulfillmentHold, releaseHoldAction, requiredDepositCents, remainingBalanceCents, creditDueCents, overpaidWarning, orderTag). Use this tool for B2B wholesale order deposit gating and Net-terms balance calculation; use revclamp_validate_eu_vat_vies for cross-border EU VAT number validation.

NameRequiredDescriptionDefault
orderIdYesRequired B2B wholesale order or invoice identifier (e.g. 'gid://shopify/Order/908812' or 'ORD-2026-9088', max 64 chars).
creditNoteCentsNoOptional post-invoice credit notes or return adjustments in integer cents (valid range: 0 to totalOrderCents, default: 0; singular alias for creditNotesCents).
paidAmountCentsYesRequired cumulative amount collected from the buyer in non-negative integer cents (e.g. 75000 for 750.00 EUR; must be >= 0).
totalOrderCentsYesRequired gross invoice total in positive integer minor currency units / cents (e.g. 250000 for 2,500.00 EUR; must be > 0).
creditNotesCentsNoOptional post-invoice credit notes or return adjustments in integer cents (valid range: 0 to totalOrderCents, default: 0; plural alias for creditNoteCents).
paymentTermsDaysNoOptional B2B net payment terms maturity window in integer days (allowed values: 15, 30, or 60 for Net-15, Net-30, or Net-60; default: 30).
requiredDepositCentsNoOptional explicit upfront deposit threshold in integer cents (valid range: 0 to totalOrderCents). Overrides requiredDepositPercent when provided.
requiredDepositPercentNoOptional upfront deposit percentage required before releasing warehouse fulfillment hold (valid range: 0 to 100, default: 30 i.e. 30% upfront deposit).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety bar is lower; the description still adds real value by declaring the function pure/stateless with no floating-point drift and by enumerating the structuredContent fields returned. It stops short of describing preconditions (e.g. what inputs produce an error versus an ok=false reconciliation).

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?

Front-loaded with purpose and the arithmetic guarantee before the field enumeration; every sentence is informational. The long parenthetical list of return fields and modes is dense but earns its place given there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a stateless, read-only calculator with a fully documented 8-param schema, a complete annotation set, and no output schema, the description covers purpose, usage routing, computational semantics, and the shape of the response. An agent has everything needed to invoke it correctly and interpret the result envelope.

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

Parameters3/5

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

Schema description coverage is 100%, with every parameter documented including ranges, defaults, and the singular/plural credit-note alias, so the schema carries the load. The description only reinforces the unit convention (integer cents, no floats) and adds no syntax or interaction rules beyond it. Baseline 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?

Opens with a specific verb+resource: reconcile B2B wholesale Net-15/30/60 invoice deposits, partial payments, and credit notes, and adds the distinguishing trait of exact integer minor-unit arithmetic. It explicitly separates itself from the VAT sibling, so an agent can tell the two apart without opening schemas.

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?

States the intended use case ('B2B wholesale order deposit gating and Net-terms balance calculation') and routes the agent away to revclamp_validate_eu_vat_vies for VAT validation. It does not address the other seven siblings (disputes, ROI, ghost usage, webhooks), so the exclusion guidance is partial rather than complete.

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

revclamp_simulate_webhook_replaySimulate Webhook Replay & Out-of-Order State MachineA
Read-onlyIdempotent
Inspect

Deterministically evaluate an ordered or out-of-order sequence of 1-10 Stripe/Shopify/RevClamp subscription lifecycle webhooks against a 72-hour idempotency deduplication Set (eventId), a configurable idempotencyWindowSec (60s-2592000s, default: 259200s / 72h), and a monotonic transition timestamp guard (event.createdSec >= lastAppliedCreatedSec). Compares RevClamp's monotonic FSM against a naive overwrite-on-arrival handler to detect resurrected canceled subscriptions, stale tier downgrades, and duplicate retry side-effects. Returns structuredContent containing ok, mode, statelessEphemeralAudit, tenantId, simulation, steps, finalStatus, finalTier, finalEntitlementDecision, naiveFinalStatus, and naiveHandlerBug.

NameRequiredDescriptionDefault
eventsNoOptional custom array of 1 to 10 webhook events ({ eventId, eventType, createdSec, subscriptionStatus, tier, currentPeriodEndSec }) in arrival order.
nowSecNoReference evaluation timestamp in Unix seconds used to check the 72-hour idempotency window.
scenarioPresetNoScenario preset to evaluate when custom events are omitted (default: 'out_of_order_stale_update_after_cancel').
idempotencyWindowSecNoDeduplication and replay-acceptance window in seconds (valid range: 60 to 2592000, default: 259200 for 72 hours).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/non-destructive, so the bar is lower, but the description adds real behavioral context: deterministic evaluation, stateless ephemeral audit, and the specific bug classes detected (resurrected canceled subscriptions, stale downgrades, duplicate retry side-effects). It stops short of stating rate limits or cost, so not a 5.

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?

Front-loaded with the core action and mechanism, and every clause carries substance. It is two very dense, long sentences, however, so it is packed rather than lean — slightly harder to scan than an ideal definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although there is no output schema, the description enumerates the structuredContent fields (ok, mode, steps, finalStatus, naiveFinalStatus, naiveHandlerBug, etc.), so an agent knows both inputs and outputs. For a 4-param, read-only simulation tool this is complete.

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?

Schema coverage is 100%, so baseline is 3; the description still contributes by explaining the semantics behind the params — the dedup Set is keyed on eventId, the guard compares event.createdSec against lastAppliedCreatedSec, and it restates the window range/default and 1-10 event bound. That adds interpretive value beyond the field descriptions.

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?

States a specific verb (simulate/replay evaluation) and resource (webhook lifecycle event sequences) plus the exact mechanisms applied: idempotency dedup Set, configurable window, and monotonic timestamp guard. It also names the contrast target (naive overwrite-on-arrival handler), which makes the tool's role unmistakable versus siblings like verify_webhook_signature.

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 conveys the context (evaluating ordered/out-of-order webhook sequences against a dedup window) but never states when to choose this over revclamp_verify_webhook_signature or other siblings, and gives no explicit exclusions. Usage is implied rather than routed.

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

revclamp_stage_stripe_dispute_ce3Stage Visa CE 3.0 Stripe Dispute Evidence DraftA
Read-onlyIdempotent
Inspect

Evaluate Visa Compelling Evidence 3.0 (CE 3.0) qualification across 120-to-365-day historical charges (requiring at least 2 settled, non-refunded, non-disputed prior transactions sharing IP address, device fingerprint, or billing email) and assemble a non-destructive Stripe dispute evidence draft with submit hardcoded to false. Executes as a pure read-only staging computation that never auto-submits to card networks. Returns structuredContent containing ok, mode, statelessEphemeralAudit, tenantId, submitForcedFalse, ce3Qualification, and drawer (including stripeUpdateParams with submit: false and merged access_activity_log). Use this tool for single-dispute CE 3.0 qualification and evidence staging; use revclamp_audit_revenue_leakage for portfolio-wide dispute readiness counts.

NameRequiredDescriptionDefault
disputeIdNoStripe dispute identifier being staged (format example: 'du_1QxyzEnterpriseDispute01', default: 'du_mcp_staged_01', max 64 chars).
customerIdNoStripe customer identifier associated with the disputed charge (format example: 'cus_enterprise_88', default: 'cus_mcp_enterprise_01', max 64 chars).
usageEventsNoOptional array of up to 200 customer product/API usage telemetry events (each with occurredAtSec Unix seconds, stripe_customer_id, and event_name) for append-only access_activity_log staging.
disputeReasonNoStripe dispute reason code (e.g. 'fraudulent', 'unrecognized', 'subscription_canceled'; default: 'fraudulent'; Visa CE 3.0 applies to 'fraudulent' disputes).
priorTransactionsNoOptional array of up to 50 historical Stripe charge objects (each with id, status: 'succeeded', disputed: false, refunded: false, occurredAtSec 120-365 days prior to disputedTransaction, email, ip_address, and device_id).
disputedTransactionNoOptional disputed charge snapshot object containing id (e.g. 'ch_disputed_01'), occurredAtSec (Unix seconds), customer_id, email, ip_address, and device_id.
existingUncategorizedTextNoOptional existing merchant evidence notes in Stripe evidence.uncategorized_text or access_activity_log (up to 18,000 chars) to preserve via append-only merge without overwriting.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is pre-covered; the description adds real value by disclosing that submit is hardcoded to false, that nothing is auto-submitted to card networks, and that existing evidence text is merged append-only rather than overwritten. It also enumerates the returned structuredContent keys, compensating for the absent output schema, though it omits any failure/qualification-miss 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?

Three sentences, front-loaded with purpose then behavior then routing, so the agent gets the decision-relevant facts first. The opening sentence is dense with stacked qualifiers and could be split, but no sentence is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, nested-object tool with no output schema, the description supplies the qualification rule, the non-destructive guarantee, the submit=false safeguard, the return field list, and the sibling routing rule. Everything an agent needs to select and invoke it correctly is present.

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?

With 100% schema description coverage the schema already documents each parameter; the description goes beyond it by stating the CE 3.0 qualification semantics that bind priorTransactions and disputedTransaction together (shared IP, device fingerprint, or billing email within the 120-365-day window). It does not clarify the interaction between usageEvents and existingUncategorizedText in the merge.

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?

States a specific verb (evaluate + stage/assemble) and resource (Visa CE 3.0 qualification and Stripe dispute evidence draft), including the exact qualification rule (120-365-day charges, 2+ settled non-refunded non-disputed priors sharing IP/device/email). It explicitly distinguishes itself from revclamp_audit_revenue_leakage by scope (single dispute vs portfolio-wide counts).

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 says 'Use this tool for single-dispute CE 3.0 qualification and evidence staging; use revclamp_audit_revenue_leakage for portfolio-wide dispute readiness counts' — a clear when-to-use plus one named alternative. It does not address the closely related sibling revclamp_lint_dispute_evidence, leaving one plausible alternative unpartitioned.

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

revclamp_validate_eu_vat_viesValidate EU/XI B2B VAT ID & VIES Reverse-Charge StateA
Read-onlyIdempotent
Inspect

Normalize EU-27 and Northern Ireland (XI) B2B VAT identifiers (including mandatory Greece ISO-3166 GR to EL prefix normalization) and evaluate cross-border 0% VAT reverse-charge eligibility, VIES consultation evidence, or MS_UNAVAILABLE circuit-breaker fulfillment hold actions. Read-only and non-destructive; supports deterministic simulation modes ('VALID', 'INVALID', 'MS_UNAVAILABLE') or real-time European Commission VIES SOAP/REST lookup ('LIVE'). Returns structuredContent containing ok, mode, statelessEphemeralAudit, simulatedViesLookup, tenantId, normalizedVat, reverseChargeEligible, and viesDecision (status, action, zeroRateAllowed, consultationId). Use this tool for EU/XI VAT tax compliance; use revclamp_reconcile_b2b_net_terms for wholesale Net-15/30/60 deposit and credit-note accounting.

NameRequiredDescriptionDefault
viesModeNoVIES evaluation mode: 'VALID' (deterministic active VAT simulation, default), 'INVALID' (deterministic rejected VAT simulation), 'MS_UNAVAILABLE' (deterministic member-state outage circuit-breaker simulation), or 'LIVE' (real-time European Commission VIES lookup).
buyerVatIdYesRequired buyer EU or Northern Ireland VAT registration number to normalize and validate (e.g. 'DE123456789', 'GR123456789', 'NL123456789B01', 'XI123456789', max 40 chars).
sellerCountryNoTwo-letter EU-27 or XI member state prefix of the merchant's dispatch warehouse (e.g. 'DE', 'NL', 'FR', 'EL', 'XI'; 'GR' is automatically normalized to 'EL'; default: 'DE').
consultationNumberNoOptional VIES requester consultation reference number (e.g. 'WAPIAAAAW998877', max 64 chars) to attach to deterministic 'VALID' mode tax audit records.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), and the description's restatement of read-only adds nothing. However it does add real behavioral context beyond annotations: deterministic simulation modes, LIVE SOAP/REST lookup against the European Commission, circuit-breaker hold behavior on MS_UNAVAILABLE, and stateless ephemeral audit records. It stops short of stating rate limits or failure/error behavior for LIVE calls.

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?

Purpose, behavior, return shape, and routing are front-loaded in a single dense paragraph with no filler sentences. It is long, and the field-by-field enumeration of structuredContent is somewhat list-heavy, but every clause carries information an agent needs.

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 read-only, four-parameter tool with full schema coverage and no output schema, the description supplies the return-field inventory and the mode semantics that the schema leaves implicit. The only missing piece is what LIVE lookup failure or VIES error responses look like, which matters given the MS_UNAVAILABLE circuit-breaker path.

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 all four parameters are already documented; the baseline is 3. The description adds only marginal semantic value, chiefly the mandatory GR to EL prefix normalization and the reverse-charge framing of viesMode, both of which the schema largely repeats.

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?

States specific verbs (normalize, evaluate) and the exact resource: EU-27/XI B2B VAT identifiers and reverse-charge/VIES eligibility. It explicitly routes the accounting case to revclamp_reconcile_b2b_net_terms, so an agent can separate it from that sibling without opening either schema.

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

Usage Guidelines5/5

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

Gives a direct use case sentence ('Use this tool for EU/XI VAT tax compliance') and names the alternative tool plus the condition that selects it (Net-15/30/60 deposit and credit-note accounting). The mode enum is also framed with when-to-use semantics (deterministic simulation vs LIVE lookup).

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

revclamp_verify_webhook_signatureVerify Stripe, Shopify & RevClamp Webhook HMAC-SHA256 SignaturesA
Read-onlyIdempotent
Inspect

Generate and verify canonical Stripe-Signature (t=,v1=<hex_sha256>), X-Shopify-Hmac-Sha256 (<base64_sha256>), and X-RevClamp-Signature (t=,v1=<hex_sha256>) headers over exact UTF-8 webhook payload bytes using crypto.timingSafeEqual and a 300-second replay window guard. Enforces a Zero-Trust guard that blocks known live/production credential patterns (sk_live_, rk_live_, non-test whsec_..., shpss_..., shpat_..., rg_live_, rc_live_, AKIA..., and PEM private keys) with -32602 LIVE_SECRET_FORBIDDEN_IN_SANDBOX. Returns structuredContent containing ok, mode, statelessEphemeralAudit, tenantId, and verification (provider, verificationMode, headerName, generatedHeader, expectedSignature, signatureValid, verificationReason, timingSafeCompared, replayWindowApplicable, timestampSec, timestampSkewSeconds, toleranceSeconds, withinReplayWindow, payloadByteLength, payloadSha256, commonIntegrationTrap). Use this tool to debug webhook signature mismatches and replay skew.

NameRequiredDescriptionDefault
secretNoSynthetic or test webhook signing secret (default: 'whsec_test_revclamp_sandbox_secret_2026', max 256 chars). Live production secrets (sk_live_, rk_live_, non-test whsec_..., shpss_..., shpat_..., rg_live_, rc_live_, AKIA..., and PEM private keys) are rejected.
providerNoWebhook signature provider scheme to evaluate: 'stripe' (Stripe-Signature t=<sec>,v1=<hex>, default), 'shopify' (X-Shopify-Hmac-Sha256 Base64 raw UTF-8 HMAC), or 'revclamp' (X-RevClamp-Signature t=<sec>,v1=<hex>).
rawPayloadNoExact unparsed UTF-8 webhook request body string (up to 16,384 chars) used to compute the canonical SHA-256 HMAC digest. Defaults to a provider-specific sample JSON event if omitted.
timestampSecNoOptional Unix epoch timestamp in integer seconds (valid range: 1 to 9999999999; defaults to current server Unix timestamp) used when generating or verifying timestamped Stripe/RevClamp headers.
signatureHeaderNoOptional supplied HTTP signature header value to verify via crypto.timingSafeEqual (e.g. 't=1760000000,v1=...' or Base64 digest, max 512 chars). Omit to run in GENERATE_AND_SELF_VERIFY mode.

TDQS

A4/5.0
Behavior5/5

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

Beyond the annotations (which only declare readOnly/idempotent/non-destructive/closed-world), the description discloses the 300-second replay window guard, timingSafeEqual comparison, the Zero-Trust live-credential blocklist with the exact JSON-RPC error code -32602 LIVE_SECRET_FORBIDDEN_IN_SANDBOX, and the full set of structuredContent fields returned. That is substantial behavioral context an agent could not get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded, but the opening sentence is a ~60-word run-on and the return-value enumeration is an undifferentiated comma-separated wall of 18 field names. Every element is arguably relevant, but the density makes it hard to scan for the one or two facts an agent needs at call time.

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?

With no output schema, the description correctly compensates by enumerating the structuredContent return fields, and it covers modes, defaults, limits, error semantics, and replay tolerance. Only the boundary against the sibling replay-simulation tool is left unaddressed.

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 all five parameters are already documented in the schema — including the live-secret rejection list and the generate-vs-verify mode for signatureHeader. The description mostly restates this (secret guard, header formats, 16,384-char payload cap) rather than adding new meaning, so it sits at the baseline for a fully-covered 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?

States a specific verb+resource (generate/verify HMAC-SHA256 webhook signature headers) across three named provider schemes, with the exact canonical header formats given. It is unambiguous what the tool does, but it never names or distinguishes itself from the adjacent sibling revclamp_simulate_webhook_replay, which an agent could easily confuse with this one.

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?

"Use this tool to debug webhook signature mismatches and replay skew" gives a clear triggering context, and "Omit [signatureHeader] to run in GENERATE_AND_SELF_VERIFY mode" explains the two operating modes. However there are no exclusions and no routing to alternatives, notably the replay-simulation sibling, so the agent must infer boundaries.

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. 9 tool updatesv1.20.0
    • First observedrevclamp_audit_revenue_leakage
    • First observedrevclamp_calculate_roi_and_plan_fit
    • First observedrevclamp_evaluate_ghost_usage
    • First observedrevclamp_lint_dispute_evidence
    • First observedrevclamp_reconcile_b2b_net_terms
    • First observedrevclamp_simulate_webhook_replay
    • First observedrevclamp_stage_stripe_dispute_ce3
    • First observedrevclamp_validate_eu_vat_vies
    • First observedrevclamp_verify_webhook_signature

TDQS

A4.1/5.0

Scored across 9 tools

Disambiguation4/5

Most tools target a clearly distinct operation (VAT validation, Net-terms reconciliation, webhook signature verification, replay simulation, ROI calculation), and descriptions explicitly cross-reference siblings to route between them. The main friction points are the single-customer vs portfolio pair (evaluate_ghost_usage vs audit_revenue_leakage) and the dispute pair (stage_stripe_dispute_ce3 vs lint_dispute_evidence), which an agent could plausibly confuse despite the disambiguating text.

Naming Consistency5/5

Every tool uses the same revclamp_ prefix plus a snake_case verb_noun construction (evaluate_ghost_usage, audit_revenue_leakage, validate_eu_vat_vies, lint_dispute_evidence). Two names use a compound object ('_and_', 'ce3') but the verb-first convention is unbroken and fully predictable.

Tool Count5/5

Nine tools is well within the sweet spot, and each maps to a distinct compliance concern (entitlement gating, leakage audit, CE 3.0 evidence, VAT, Net-terms, webhook security, ROI, replay idempotency, evidence linting). No filler tools and no obviously missing sibling to an existing one.

Completeness3/5

The surface is entirely read-only/stateless: dispute evidence is staged with submit hardcoded false and there is no apply/submit/execute operation, nor any tool to enumerate or fetch the underlying disputes, subscriptions, or customers that the evaluators consume. Core analysis workflows are covered end-to-end (evaluate, stage, lint, simulate), but agents will hit a dead end when they need to act on the findings.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Per-call billing and metering proxy for MCP tool servers. Providers set pricing via the open MCP Billing Spec (MIT), consumers pay through Stripe Connect with signed receipts and SLA monitoring.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Paid remote MCP server enabling CLI tool execution with structured receipts, usage logs, and audit-ready evidence for agent and CI workflows.
    1
    -