Skip to main content
Glama

Server Details

Zero-take-rate Stripe 2025-03-31.basil, Visa CE 3.0 & EU/XI VIES VAT guardrails MCP server.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
lhphong09t2/revclamp-mcp
GitHub Stars
1
Server Listing
deprecated-legacy-sandbox

TDQS

A4/5.0

Scored across 9 tools

Disambiguation4/5

Most tools occupy clearly separate problem spaces (portfolio audit vs. per-customer ghost-usage evaluation, VAT validation vs. net-terms reconciliation, signature verification vs. replay simulation), and several descriptions explicitly cross-reference sibling tools to disambiguate. The main fuzzy pair is revclamp_lint_dispute_evidence vs. revclamp_stage_stripe_dispute_ce3, which both concern CE 3.0 evidence and differ mainly in lint-vs-qualify/stage, requiring the agent to read descriptions carefully.

Naming Consistency5/5

All nine tools use the same revclamp_ namespace prefix followed by a snake_case verb_noun construction (audit_, calculate_, evaluate_, lint_, reconcile_, simulate_, stage_, validate_, verify_). The pattern is fully predictable despite some long multi-clause names.

Tool Count5/5

Nine tools is well within the ideal 3-15 range and each maps to a distinct capability in the billing/dispute-compliance workflow. No redundant or filler tools are present.

Completeness4/5

The surface covers the core lifecycle: portfolio audit, per-customer gating, ROI planning, dispute qualification/staging, evidence linting, VAT compliance, net-terms reconciliation, and webhook integrity. Gaps exist around retrieval—there is no tool to list or fetch actual disputes/charges/customers, and submission is intentionally hardcoded off, so agents must supply all inputs inline and cannot close the loop on dispute filing.

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
demoNoOptional simulation flag (boolean) for deterministic sample audit preview.
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 100000, 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.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds substantive context beyond annotations: it is stateless and ephemeral, performs zero external Stripe mutations, and enumerates the structuredContent return fields so an agent knows what to expect.

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?

Three dense sentences: purpose first, behavioral guarantees second, routing guidance third. The enumeration of return fields is long but earns its place because 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?

Complete for a stateless audit tool with no output schema: annotations cover safety, the input schema covers all parameters, and the description covers return fields and sibling routing. Nothing an agent needs to invoke it correctly is 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 all six parameters with types, ranges, defaults, and examples. The description does not add parameter-level semantics beyond the schema, so the 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?

States a specific verb and resource: a deterministic 90-day B2B revenue leakage and chargeback readiness audit across Stripe subscriptions, usage telemetry, and disputes. It clearly distinguishes itself from the named sibling tools for single-customer checks and single-dispute evidence staging.

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 says to use this tool for portfolio-wide multi-customer audits and names the alternatives: revclamp_evaluate_ghost_usage for single-customer entitlement checks and revclamp_stage_stripe_dispute_ce3 for a single dispute's Visa CE 3.0 evidence bundle. This gives clear when-to-use and when-to-use-something-else guidance.

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
demoNoOptional simulation flag (boolean) for deterministic ghost-usage preview.
customerIdNoStripe customer identifier to evaluate (format example: 'cus_9s6XKzkNRiz8i3', max 64 chars).
usageEventNoOptional metered usage event object containing customer_id (or stripe_customer_id), event_name, and occurred_at (or occurred_at_sec).
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.5/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, non-destructive, and closed-world behavior, so the redundancy of 'read-only... zero side effects' is minor. The description adds real value by disclosing statelessness, fail-closed pagination behavior (has_more must be explicitly false), and the exact structuredContent fields returned, which matters because there is no output schema.

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 purpose and sibling routing, then return shape. It is dense but mostly earns its space; the only waste is slight repetition of read-only/no-side-effects already implied by annotations.

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 an 8-parameter evaluator with nested subscription objects and no output schema, the description covers purpose, routing, pagination safety, dunning behavior, and return fields. It does not discuss authentication, Stripe API key requirements, or precise error behavior, but the critical invocation semantics are 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?

Schema coverage is 100%, so the schema carries the field-level detail. The description still adds conceptual meaning: it frames subscriptions as multi-subscription basil state, explains the fail-closed purpose of subscriptionsHasMore, and connects dunningGracePeriodDays to past_due entitlement, beyond the bare 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 and resource: evaluating whether one customer's AI/API usage is unpaid ghost usage across multi-subscription Stripe basil state. It also names the sibling it is not (batch portfolio audits via revclamp_audit_revenue_leakage), so an agent can distinguish it 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?

Explicitly says when to use it (real-time per-customer entitlement gating) and when to use the alternative (revclamp_audit_revenue_leakage for batch multi-customer portfolio audits). It also states the fail-closed pagination precondition, leaving little to inference.

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 LinterB
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 --- (or [RevClamp Verified Product Usage Log] / [/RevClamp Verified Product Usage Log]) delimiter markers, existing merchant note preservation, 17,922/17,920-char fixed wrapper capacity threshold (SKIP_POST_PRESERVE_DRAFT), 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, merchantNotesUtf16CodeUnits, fixedWrapperUtf16CodeUnits, merchantLogAtCapacity, stagingActionWhenAtCapacity, priorMatchedCount, hasIpMatch, hasDeviceMatch, ce3RubricPassed, and overallVerdict.

NameRequiredDescriptionDefault
demoNoSet true to lint a sample preset fixture when evidenceLogText / accessActivityLog is omitted.
presetNoScenario preset to evaluate when custom evidenceLogText / accessActivityLog is omitted (default: 'valid_ce3_non_destructive').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.
accessActivityLogNoAlias for evidenceLogText representing Stripe dispute evidence[access_activity_log] payload.
priorMatchedCountNoNumber of prior undisputed Stripe charges (120d-365d old) with matching customer_id and IP/device fingerprint (Visa CE 3.0 requires >= 2).
priorTransactionsNoOptional historical undisputed Stripe charges (120d-365d prior) evaluated for Visa CE 3.0 two-identifier overlap.
disputedTransactionNoOptional disputed Stripe charge/transaction metadata evaluated against priorTransactions for Visa CE 3.0 qualification.
existingMerchantNotesNoExisting human AE/support notes inside evidence[access_activity_log] that must be preserved.

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantive context: it is deterministic, stateless (statelessEphemeralAudit, tenantId), non-destructive of existing merchant notes, and it discloses the fixed-wrapper capacity threshold plus the SKIP_POST_PRESERVE_DRAFT staging behavior when at capacity. The long field enumeration at the end dilutes rather than deepens this, which keeps it below 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.

Conciseness2/5

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

The body is a single run-on sentence packing every threshold, delimiter literal, and rule into one clause chain, followed by a bare comma-separated dump of ~22 return field names. Information is present but not front-loaded or grouped, and the return-field list reads as exhaust rather than explanation.

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 10 parameters, nested objects, and no output schema, listing return fields is genuinely useful, and the CE 3.0 rules plus capacity thresholds are covered. However, the returned fields are named without meaning (e.g., overallVerdict, merchantLogAtCapacity), preset semantics and demo/preset override behavior are unexplained, and there is no guidance on which input path to choose.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; the description largely restates schema facts (18,000 UTF-16 ceiling, delimiter markers, prior-charge >= 2 with IP/device overlap). It does not resolve the one genuinely ambiguous point the schema leaves open, namely how evidenceLogText and accessActivityLog interact as aliases or when preset overrides custom input.

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 ('Deterministically lint') and a precisely scoped resource ('a Stripe dispute evidence[access_activity_log] payload') with the exact checks performed (18,000 UTF-16 ceiling, delimiters, CE 3.0 qualification). The purpose is unmistakable, but it never names the closest sibling (revclamp_stage_stripe_dispute_ce3) to draw the boundary explicitly.

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?

There is no statement of when to call this versus alternatives, no prerequisites, and no exclusions. The mention of 'SKIP_POST_PRESERVE_DRAFT' and a staging action hints that a separate staging tool exists, but the description never routes the agent there or explains the handoff.

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
demoNoOptional sandbox flag (boolean).
orderIdNoB2B wholesale order or invoice identifier (e.g. 'gid://shopify/Order/908812' or 'ORD-2026-9088', default: 'ord_local_b2b_01', max 64 chars).
toleranceCentsNoOptional rounding/FX reconciliation tolerance in integer cents (valid range: 0 to min(500, 1% of totalOrderCents), default: 0).
creditNoteCentsNoOptional post-invoice credit notes or return adjustments in integer cents (valid range: 0 to totalOrderCents, default: 0; singular alias for creditNotesCents).
orderTotalCentsNoAlias for totalOrderCents: gross invoice total in positive integer minor currency units / cents (must be > 0).
paidAmountCentsYesRequired cumulative amount collected from the buyer in non-negative integer cents (e.g. 75000 for 750.00 EUR; must be >= 0).
totalOrderCentsNoGross 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 effectiveTotalCents). 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).
daysElapsedSinceInvoiceNoOptional elapsed integer days since invoice issuance (valid range: 0 to 3650, default: 5).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the description only needs to add context. It does add substantive behavior beyond annotations: pure stateless execution, exact integer minor-unit arithmetic with no floating-point drift, and the enumerated return fields in structuredContent. Gaps remain around alias precedence (orderTotalCents vs totalOrderCents, creditNoteCents vs creditNotesCents) and how tolerance interacts with the deposit threshold, which are behavioral ambiguities an agent would want disclosed.

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 front-loaded sentences with the purpose first and the alternative last; the long parenthetical return-field list is dense but functional since there is no output schema. Minor redundancy in restating read-only, which annotations already cover.

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 12-parameter financial tool with an output schema absent, the description supplies purpose, usage routing, arithmetic semantics, and the return-shape field list, which is most of what an agent needs. The alias-precedence and tolerance-deposit interaction remain undocumented, keeping it just short of 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%, with defaults, ranges, enums, and examples given for every one of the 12 parameters, so the schema does the heavy lifting and the baseline is 3. The description adds no parameter-level meaning beyond what the schema already states.

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?

Names a specific verb (reconcile) and resource (B2B wholesale Net-15/30/60 invoice deposits, partial payments, credit notes) plus the arithmetic guarantee. It explicitly names a sibling (revclamp_validate_eu_vat_vies) as the tool for a different job, so an agent can distinguish it 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 Guidelines4/5

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

States the exact scenario it is for (B2B wholesale order deposit gating and Net-terms balance calculation) and routes EU VAT validation to a named sibling. It does not cover the other six siblings or describe when not to use it, so it falls short of full when/when-not/alternatives coverage.

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
demoNoOptional sandbox flag to run the preset replay simulation.
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.1/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 covered. The description adds real value beyond that: it explains the deterministic evaluation model, the 72-hour dedup Set keyed on eventId, the monotonic guard on event.createdSec, and that the operation is a statelessEphemeralAudit. It does not explain failure/`ok:false` conditions or error behavior, which keeps it from 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?

Two dense, front-loaded sentences with no filler — the core purpose and mechanism come first, then the return contract. The second sentence enumerating return fields is justified because no output schema exists. It is slightly run-on and could be split for readability, but every clause carries information.

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 simulation tool with no output schema, the description does the necessary work of enumerating returned fields (ok, simulation, steps, finalStatus, naiveFinalStatus, naiveHandlerBug) and framing what the comparison detects. It stops short of describing edge behaviors such as what happens when `events` and `scenarioPreset` conflict, or what an `ok:false` result indicates.

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; the description goes beyond the schema by explaining the semantic effect of the key parameters — the 1-10 event cap, the 60s-2592000s idempotency window with its 72h default, and the monotonic timestamp comparison rule. It reinforces rather than merely repeats the schema, though it does not clarify the interplay between `demo`, `scenarioPreset`, and `events` precedence.

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 a specific verb and resource: evaluate a sequence of 1-10 subscription lifecycle webhooks against an idempotency dedup Set and a monotonic timestamp guard. The purpose (replay/out-of-order FSM simulation) is clearly distinct from the sibling revclamp_verify_webhook_signature, which handles signature verification, even though siblings are not named. An agent can tell immediately this is a simulation/diagnostic tool, not a write or verification tool.

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 through the inputs — pass a custom `events` array or fall back to a `scenarioPreset` — but there is no explicit 'use this when…' statement or exclusion against the sibling tools. The agent must infer that this is the right tool for replay/out-of-order scenarios rather than, say, reconciliation. Adequate but with a clear gap in routing guidance.

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
demoNoOptional simulation flag (boolean) to stage a labeled sample dispute preview.
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', 'product_unacceptable', 'general'; default: 'fraudulent'; Visa CE 3.0 applies to 'fraudulent' disputes).
priorTransactionsNoOptional array of up to 1000 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.
existingAccessActivityLogNoOptional alias for existingUncategorizedText: existing merchant evidence notes in Stripe evidence.access_activity_log (up to 18,000 chars) to preserve via append-only merge.
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.6/5.0
Behavior5/5

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

Beyond the readOnlyHint/idempotent/non-destructive annotations, it discloses the key behavioral guarantees: submit is hardcoded to false, the tool never auto-submits to card networks, staging is stateless/ephemeral, and existing evidence text is preserved via append-only merge. It also enumerates the return payload (ok, mode, tenantId, ce3Qualification, drawer with stripeUpdateParams) despite there being no output schema.

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?

Structure is strong — purpose first, then behavioral guarantees, then return shape, then sibling routing. It is somewhat dense, particularly the long enumeration of returned structuredContent fields, which could be trimmed since it is not needed to select or invoke the tool.

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 9 optional parameters, nested objects, and no output schema, this description fills the gaps: it explains the eligibility criteria driving the computation, the no-submit safety contract, and what the response contains. Nothing essential for a correct call 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; the description earns a step up by explaining the CE 3.0 qualification logic that connects the parameters — a 120-to-365-day window requiring at least 2 settled, non-refunded, non-disputed prior transactions sharing IP, device fingerprint, or billing email. That adds meaning the schema alone does not convey about how priorTransactions and disputedTransaction relate.

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 a specific verb and resource (evaluate Visa CE 3.0 qualification and assemble a Stripe dispute evidence draft) and names the exact alternative (revclamp_audit_revenue_leakage) for the portfolio-wide case. An agent can distinguish it from the sibling 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 Guidelines4/5

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

It explicitly routes the agent: 'Use this tool for single-dispute CE 3.0 qualification and evidence staging; use revclamp_audit_revenue_leakage for portfolio-wide dispute readiness counts.' It also implies the applicable condition ('Visa CE 3.0 applies to fraudulent disputes'). However, it never mentions revclamp_lint_dispute_evidence, a closely related sibling, so the boundary with that tool 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_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
demoNoOptional simulation flag (boolean) for deterministic VIES gateway preset evaluation.
viesModeNoVIES evaluation mode: 'FORMAT_ONLY' (deterministic EU/XI syntax validation without consultation), 'VALID' (deterministic active VAT simulation, default), 'INVALID' (deterministic rejected VAT simulation), 'MS_UNAVAILABLE' or 'GLOBAL_MAX_CONCURRENT_REQ' (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 declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered; the description still adds real value beyond that by disclosing the GR→EL prefix normalization rule, the deterministic-vs-LIVE execution distinction, the circuit-breaker hold behavior, and the statelessEphemeralAudit flag. It does not mention authentication requirements or rate/latency characteristics of the LIVE VIES call, which keeps 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?

Content is front-loaded: identity and normalization come first, then eligibility, then modes, then return shape, then sibling routing. The second sentence is a single very long clause chain dense with parenthetical field lists, which costs some readability, but every sentence carries information 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 usefully names the structuredContent keys (ok, mode, normalizedVat, reverseChargeEligible, viesDecision), which the agent would otherwise have to discover at runtime. Error semantics for a failed LIVE lookup and any auth prerequisites for the European Commission endpoint are the remaining gaps, but for a 5-parameter read-only tool this is close to sufficient.

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 the mode enum and its default. The description only partially restates the enum ('VALID', 'INVALID', 'MS_UNAVAILABLE', 'LIVE') and omits FORMAT_ONLY and GLOBAL_MAX_CONCURRENT_REQ, adding no syntax or format detail beyond what the schema provides — 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?

The description opens with a specific verb pair (normalize/evaluate) and a precisely bounded resource (EU-27 and XI B2B VAT identifiers, reverse-charge eligibility). It explicitly names the sibling it is not (revclamp_reconcile_b2b_net_terms) and its domain, so an agent can distinguish it from all eight siblings without opening a 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?

It states the use case directly ('Use this tool for EU/XI VAT tax compliance') and supplies the alternative plus the condition that selects it (Net-15/30/60 deposit and credit-note accounting). The mode enumeration also tells the agent which evaluation path to pick for 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
demoNoOptional sandbox flag; uses synthetic defaults when provider, secret, or rawPayload are omitted.
secretNoSynthetic or test webhook signing secret (default: 'whsec_test_revclamp_sandbox_secret_2026', max 256 chars, or comma-separated rotation secrets). Live production secrets (sk_live_, rk_live_, non-test whsec_..., shpss_..., shpat_..., rg_live_, rc_live_, AKIA..., and PEM private keys) are rejected.
secretsNoOptional array of 1 to 5 synthetic/test webhook signing secrets (each <= 256 chars) to evaluate during rolling webhook secret rotation.
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.
toleranceSecNoOptional replay window tolerance in integer seconds (valid range: 1 to 3600, default: 300).
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

A3.9/5.0
Behavior5/5

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

Well beyond the readOnly/non-destructive annotations, the description discloses the timing-safe comparison, the 300-second replay window guard, the Zero-Trust live-credential blocklist with the exact -32602 LIVE_SECRET_FORBIDDEN_IN_SANDBOX error, default payload/secret fallbacks, and the full structuredContent shape. This is unusually rich behavioral context for a sandbox tool.

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 it is delivered as two very long run-on sentences stuffed with parenthetical header formats and a long enumerated blocklist. Listing every structuredContent field inline aids completeness but bloats the prose, and some enumeration belongs in structured data rather than the description.

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 an 8-parameter tool with no output schema, the description compensates well: it names the returned fields, explains the guard/failure code, the replay window, defaults for omitted inputs, and both operating modes. An agent has what it needs to call this correctly and interpret the result.

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 8 parameters are already documented, and most of the description's parameter talk (rotation secrets, default secret, non-test whsec_ rejection) restates the schema. The only added semantic is that omitting signatureHeader switches to GENERATE_AND_SELF_VERIFY mode, which is marginal added value against 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?

The description states a specific verb and resource: generate and verify canonical HMAC-SHA256 signature headers for Stripe, Shopify, and RevClamp webhooks, plus a debug use case. It is clearly distinguishable from most siblings, though the very close sibling revclamp_simulate_webhook_replay is never named or contrasted.

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 closing sentence gives a usage context ('debug webhook signature mismatches and replay skew'), and the signatureHeader param note explains the generate-vs-verify mode. However there are no exclusions and no comparison to the near-identical sibling simulate_webhook_replay, leaving the agent to infer which to pick.

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 updates
    • 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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Production-grade MCP server for Stripe financial operations, enabling AI assistants to manage payments, customers, subscriptions, invoices, products, prices, refunds, and balance checks.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Merchant of record MCP server: create products, payment links, checkouts, subscriptions, invoices and discount codes, with VAT and sales tax handled in 135+ jurisdictions.
    4
    31
    43 npm
    5
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server providing EU compliance APIs for VAT validation, sanctions screening, counterparty checks, and invoice extraction. Enables AI agents to make pay-per-call requests settled in USDC on Base via x402, with no account or API key required.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.