RevKeen MCP

Connect RevKeen billing tools to AI hosts over the Model Context Protocol

RevKeen MCP lets AI hosts like Claude, Cursor, and VS Code query your billing, customer, subscription, and usage data through the Model Context Protocol — an open standard for connecting AI assistants to external tools securely.

The RevKeen Assistant on this site answers documentation questions only. MCP connects your AI client to authorised merchant data through OAuth or a headless Bearer API key. Never paste a dashboard API key into a conversation, skill file, or MCP configuration JSON that you share.

Quick start

Connect using native Streamable HTTP and browser OAuth. Your client receives only the merchant data permitted by your role and granted scopes.

Add RevKeen to Cursor

Cursor installs https://mcp.revkeen.com/mcp and opens RevKeen's browser OAuth screen. Grant the scopes you need and you are connected.

Claude Code:

claude mcp add --transport http revkeen https://mcp.revkeen.com/mcp

Try asking:

"List all overdue invoices from the last 30 days"


Connect from other hosts

If you are not using Claude Code, pick your host below. Cursor and VS Code have one-click install; JSON is the fallback. Prefer native Streamable HTTP. Use the third-party mcp-remote bridge only when the host requires stdio. That package is published as mcp-remote, not under Anthropic's npm scope.

Claude web / custom connectors:
URL  https://mcp.revkeen.com/mcp
Auth OAuth

Claude Desktop (stdio fallback):

{
  "mcpServers": {
    "revkeen": {
      "command": "npx",
      "args": ["-y", "mcp-remote@0.8.3", "https://mcp.revkeen.com/mcp"]
    }
  }
}

Claude Code:

claude mcp add --transport http revkeen https://mcp.revkeen.com/mcp

stdio-only hosts that cannot speak Streamable HTTP can use the third-party mcp-remote bridge:

{
  "mcpServers": {
    "revkeen": {
      "command": "npx",
      "args": ["-y", "mcp-remote@0.8.3", "https://mcp.revkeen.com/mcp"]
    }
  }
}

Use a secret live merchant key (rk_live_…) from a vault or environment variable for the Headless tab. https://mcp.revkeen.com/mcp rejects sandbox rk_sandbox_… keys. Never put the raw key in a committed file or in chat. Publishable rk_pk_… keys cannot authenticate MCP. The MCP server introspects the key as the mcp-server workload and never forwards it to Engine as Authorization.

After an OAuth host connects, RevKeen opens a browser-based consent flow. The granted scopes become the tool permissions for that session.

Verify your connection

  1. Sign in as a member of the intended merchant and review the requested scopes.
  2. Open the client's tool list and check for customers_list after granting customer read access.
  3. Ask: “List up to five customers for the connected merchant.”
  4. Compare the merchant and results with your dashboard. An empty list can be valid.

Use only filters present in the tool schema. A prompt does not add an API filter or permission. A health or metadata URL returning successfully does not prove authenticated access.

Disconnect and revoke

Disconnect RevKeen in your client's settings. In Codex, use codex mcp logout revkeen to clear local OAuth credentials and codex mcp remove revkeen to remove configuration. Removing local configuration is not proof of server-side revocation. For a compromised connection, ask your merchant administrator or support to revoke the relevant authorisation; never include tokens in the report.

Review the AI client's data retention and sharing policies before connecting merchant data. Treat returned customer text as data, not as instructions to export data or grant access.

Example prompts

Once connected, try these prompts in your AI host to see what RevKeen MCP can do:

PromptWhat it uses
"List all overdue invoices from the last 30 days"invoices_list with status filter
"What's going on with customer X?"customer_state_get
"Show me the details for customer Jane Smith"customers_list (search) then customers_get
"What needs attention in billing?"billing_overview_get
"Why is this invoice high?"invoice_usage_explain
"Which subscriptions are currently in dunning?"subscriptions_list_in_dunning
"What is the total usage for meter X this billing period?"usage_events_aggregate
"List payments for this customer"payments_list with customer filter
"Check the usage balance for subscription abc-123"usage_balance_get
"List all active subscriptions for customer def-456"subscriptions_list with customer filter
"Dry-run a usage event to validate my payload"usage_events_dry_run
"Is Cart ready, and which products can be sold?"storefront_status_get then storefront_products_list
"Find the checkout session for this payment link"search_tools then execute_tool (checkout_sessions_get / payment_links_get)
"Show fulfillment for this order — not the invoice"orders_get

Your AI host translates these into the appropriate tool calls automatically.

Invoice is commercial truth. Order is fulfillment. Dunning lives on the subscription. Polar's order object is not a RevKeen order.

Available tools

The default profile exposes 33 read-only tools across 10 areas. Write operations are behind a separate rollout policy.

Discovery

ToolDescriptionScope
search_toolsClassification: READ. Search RevKeen Engine objects that are not listed in every session (checkout sessions, payment links, transactions, payment methods, entitlements, and proposal tools). Use RevKeen nouns: invoice is commercial truth; order is fulfillment.(session)
describe_toolsClassification: READ. Describe discovered MCP tools and their input fields after search_tools.(session)
execute_toolClassification: READ. Execute a discovered read tool or a proposal stub. Never mutates invoices, payments, or orders. Action-class writes are refused.(session)

Customers

ToolDescriptionScope
customers_listClassification: READ. List customers. Filter by email.customers:read
customers_getClassification: READ. Get detailed customer information including address and metadata.customers:read
customer_state_getClassification: READ. WHEN to call: the merchant asks what is going on with a customer. Returns identity, subscriptions, and recent invoices (with overdue flags) in one call. Do not chain customers_get then subscriptions_list then invoices_list for this job.customers:read, subscriptions:read, invoices:read

Invoices

ToolDescriptionScope
invoices_listClassification: READ. List all invoices. Filter by status, customer, date range.invoices:read
invoices_getClassification: READ. Get detailed information about a specific invoice by ID.invoices:read
invoice_line_items_list_usage_eventsClassification: READ. Trace a usage invoice line back to the billing entries, meter matches, and events that produced it.invoices:read
invoice_usage_explainClassification: READ. WHEN to call: the merchant asks why an invoice is high, what usage drove it, or to explain a billed amount. Returns line attribution and usage event counts in one call. Do not chain invoices_get then invoice_line_items_list_usage_events for this job.invoices:read
billing_overview_getClassification: READ. WHEN to call: the merchant asks what needs attention in billing — overdue invoices, dunning, or usage overage. Returns that snapshot in one call. Do not chain invoices_list then subscriptions_list_in_dunning for this job.invoices:read

Payments

ToolDescriptionScope
payments_listClassification: READ. List payments. Filter by customer, invoice, or status.payments:read
payments_getClassification: READ. Get payment details including status, amounts, and gateway info.payments:read

Orders

ToolDescriptionScope
orders_listClassification: READ. List orders. Filter by customer, status, or billing type.orders:read
orders_getClassification: READ. Get order details including line items and fulfillment info.orders:read

Subscriptions

ToolDescriptionScope
subscriptions_listClassification: READ. List subscriptions. Filter by status or customer.subscriptions:read
subscriptions_getClassification: READ. Get subscription details. Past-due subscriptions include dunning summary.subscriptions:read
subscriptions_list_in_dunningClassification: READ. List subscriptions currently in dunning (past_due). Includes dunning phase and retry info.subscriptions:read

Meters and pricing

ToolDescriptionScope
meters_listClassification: READ. List usage meters. Filter by active/archived status.prices:read
meters_getClassification: READ. Get detailed meter configuration including aggregation, filters, and event name.prices:read
meters_list_pricesClassification: READ. List all prices attached to a meter, including tier configurations.prices:read

Storefront

ToolDescriptionScope
storefront_products_listClassification: READ. List active, cart-eligible products with browser-safe display data, live prices, and derived availability. Requires Cart to be enabled (403 CART_DISABLED otherwise).products:read
storefront_products_getClassification: READ. Get one cart-eligible product by UUID, merchant product reference, or slug — same browser-safe projection as the list tool.products:read
storefront_availability_getClassification: READ. Get a product's availability (status plenty/low/soldout, remaining, display_mode). Products that do not track availability return status 'unknown'.products:read
storefront_status_getClassification: READ. Cart integration readiness report (activation, keys, origins, product-read, webhooks, availability) — the same semantics as revkeen cart status and the dashboard health panel. Never returns key material.apps:read
product_collections_listClassification: READ. List the merchant's product collections (storefront catalogue groups), with member product ids in display order. Not Direct Debit collections.products:read
product_collections_getClassification: READ. Get one product collection by id or URL handle: name, description and member product ids in display order.products:read

Usage billing

ToolDescriptionScope
usage_events_listClassification: READ. Query usage events. Filter by meter, customer, subscription, or time range.usage:read
usage_events_aggregateClassification: READ. Get aggregated usage summary for a meter over a time range. Returns total value and event count.usage:read
usage_events_dry_runClassification: READ. Default MCP affordance for validating usage attribution without persisting or creating a billable fact. Returns would_ingest/would_skip/would_fail status per event.usage:read
usage_balance_getClassification: READ. Get current usage balance for a customer or subscription. Returns per-meter breakdown with included allowance, overage, estimated charges, estimated AI provider costs, and recorded payment-processing costs (Direct Debit collection costs only; card processing fees are not recorded).usage:read

Integrations

ToolDescriptionScope
integrations_list_packagesClassification: READ. List packages from an external integration provider (e.g., PracticeHub).integrations:read
integrations_list_mappingsClassification: READ. List product mappings between external packages and RevKeen products.integrations:read

All 33 tools are read-only. Write and destructive operations (create, update, delete, send) are not exposed in the default profile. RevKeen is rolling these out behind a separate policy as the tool contract stabilizes.

Scope model

Access is controlled through read-focused OAuth scopes. Each scope unlocks specific tools. When you connect, the OAuth consent screen lets you choose which scopes to grant.

ScopeWhat it unlocks
invoices:readinvoices_list, invoices_get, invoice_line_items_list_usage_events, invoice_usage_explain, billing_overview_get, customer_state_get
customers:readcustomers_list, customers_get, customer_state_get
subscriptions:readcustomer_state_get, subscriptions_list, subscriptions_get, subscriptions_list_in_dunning
payments:readpayments_list, payments_get
orders:readorders_list, orders_get
prices:readmeters_list, meters_get, meters_list_prices
usage:readusage_events_list, usage_events_aggregate, usage_events_dry_run, usage_balance_get
integrations:readintegrations_list_packages, integrations_list_mappings
products:readstorefront_products_list, storefront_products_get, storefront_availability_get, product_collections_list, product_collections_get
apps:readstorefront_status_get

Scopes only narrow the signed-in member's team role. MCP is a channel, not a seventh role — there is no MCP-specific permission. Empty scopes grant nothing. Write actions (including creating webhook endpoints) are not in the default read-only profile; when they land they use the same Engine checks as the Dashboard and REST API.

If your AI host connects but tools are missing, check that you granted the right scopes during OAuth.

How access works

Your host connects

Your MCP host sends a connection request to https://mcp.revkeen.com/mcp using Streamable HTTP transport.

RevKeen redirects you to a browser-based OAuth 2.1 consent screen. You sign in with your RevKeen account and select which scopes (customers, invoices, payments, etc.) to grant for this session.

Scoped session created

RevKeen issues an access token scoped to your merchant and the approved scopes. The token is audience-bound to the RevKeen MCP resource and is not forwarded to the underlying RevKeen API.

Tool calls enforced server-side

Every tool call is checked against your scopes, RevKeen role and permissions, merchant isolation, and rate limits. Engine API makes the authoritative permission decision and applies tenant safety controls before data is returned. The MCP server manages the session lifecycle. Tool results can contain merchant and customer data; review the receiving client's data-handling policies.

This is the key difference between MCP and handing an AI tool a raw API key. The MCP server enforces access boundaries, tenant isolation, and tool contracts — the AI host cannot bypass them.

Compatibility and limits

The generated catalogue above describes the default tool profile. Check the changelog for changes. Handle rate-limit errors with bounded backoff and the retry hint returned by the service. Do not infer a guaranteed throughput or retention period from a successful connection.

Operational endpoints

EndpointPurpose
https://mcp.revkeen.com/Root metadata and public server information
https://mcp.revkeen.com/healthzHealth check (returns 200 OK when healthy)
https://mcp.revkeen.com/mcpRemote MCP endpoint (Streamable HTTP)

Troubleshooting

Host cannot connect

  • Confirm the URL is https://mcp.revkeen.com/mcp — not an older SSE or stdio endpoint.
  • Check that your host supports Streamable HTTP transport. Prefer native remote HTTP where available. A stdio-only client can use the third-party mcp-remote@0.8.3 bridge (not an Anthropic package).
  • Verify your network allows outbound HTTPS to mcp.revkeen.com.

OAuth window does not open

  • Check for browser popup blockers — the OAuth flow opens in a new browser tab.
  • If you are behind a corporate proxy, ensure mcp.revkeen.com and your OAuth provider are allowlisted.
  • Try disconnecting and reconnecting in your host to re-trigger the flow.

Connected but tools are missing

  • Reconnect with the scopes you actually need. If you only granted customers:read, invoice tools will not appear.
  • Some hosts cache the tool list. Try reloading or restarting the host after reconnecting.

Tool call returns 403

  • The authenticated user may not have access to the target merchant. Verify your RevKeen account has the correct merchant role.
  • Check that the tool's required scope was granted during OAuth.

Tool call returns rate limit error

  • Wait for the retry_after period indicated in the error response.
  • If you are running automated workflows, add backoff logic between tool calls.
  • Coordinate concurrent workflows with teammates and respect server retry hints.

Data looks stale or empty

  • MCP reads live data from RevKeen. If results are empty, verify the merchant has the expected data in the RevKeen Dashboard.
  • The MCP server does not cache business data between calls.

When to use MCP vs SDKs vs REST vs CLI

SurfaceBest forTradeoffs
MCP →AI hosts and agent workflows — natural language queries, copilot integrationsRead-only today, scope-limited, requires OAuth
SDKs →Application code you own and deploy — type-safe, full API coverageRequires API key management, no AI-native features
API Reference →Raw HTTP integrations, webhook receivers, protocol detailsMost flexible but most manual
CLI →Terminal workflows, operator scripts, quick lookupsBest for humans, not for code

If you are building an AI agent that needs to take actions (create invoices, process refunds), use the REST API → with an API key today. MCP write tools are coming soon.

Self-hosting and local development

For contributors or advanced local development, you can run the MCP server from the RevKeen monorepo:

pnpm --filter @revkeen/mcp-server dev

This contributor workflow requires the repository's configured infrastructure and authentication. It is not a standalone public installation guide.

See also

Usage investigation

Use bounded, read-only requests and name the customer and time window explicitly:

  • “For this customer, list at most ten usage events in this billing period and explain which meter matched.” Use usage_events_list with the documented filters.
  • “Validate this five-event example without recording or billing it.” Use usage_events_dry_run; inspect validation failures before changing your ingestion producer.
  • “Explain the consumption and allowance for this customer and subscription.” Use usage_balance_get, and distinguish quantity from money.
  • “Trace this invoice line to the events included and excluded from its calculation, one page at a time.” Use invoice_line_items_list_usage_events.

The REST quantities and individual-event endpoints do not currently have corresponding approved MCP tool names. Use the public REST read for those tasks. Do not invent meters_quantities or usage_events_get as MCP tools. Meter writes and usage_events_ingest remain deferred; a read-only demonstration must not record billable usage.

Capability matrix

AvailabilityExecution classTools
Defaultread33
Deferredaction24
Deferredread10
Deferredproposal1

Exposure and authority

The available-tool tables follow the default launch policy; the capability matrix also shows deferred registry entries. A registry entry or a REST endpoint is not a promise that the remote MCP server exposes it. OAuth scopes are necessary but do not override merchant membership, Engine authorization, state rules, or machine-action restrictions.

SurfaceAvailability
Approved v1 toolsRead-only; subject to the connected merchant's access.
Deferred reads/proposalsNot in the default customer tool set.
Action toolsNot enabled merely by requesting a write scope or changing a client setting.
Internal toolsNot a public integration contract.

After connecting, inspect the host's actual tools/list and make one bounded read. A health endpoint or successful OAuth redirect alone does not verify merchant access. If the tool list is stale, reconnect through OAuth, verify the merchant and granted scopes, and retry the read. Revoke a retired grant through its account management flow rather than merely deleting the local server entry.

Client troubleshooting

Prefer native Streamable HTTP where the host supports it. The pinned mcp-remote bridge is a fallback for hosts requiring stdio. One-click configuration installs a server entry; it does not grant data access until OAuth succeeds. A marketplace/plugin listing is not proof that the installed client has completed authorization.

For 401, reconnect an expired or revoked credential. For 403, verify the selected merchant and granted access. For 429, honour retry timing and narrow the query. Never solve a denial by placing a merchant secret key in the prompt. The docs Assistant answers documentation questions and is separate from merchant MCP access.

Owner: david · Reviewed 30 Sep 2026 · Next review 30 Oct 2026

On this page