MRR Ledger
Sourced, dated revenue data on real AI-agent businesses: leaderboard, profiles, growth, lessons.
Should I use this
Quality & Safety
Findings (2)
- HIGH
- MEDIUMin watch_revenue
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"mrrledger": {
"url": "https://mrrledger.com/mcp"
}
}
}Remote endpoints
https://mrrledger.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (16)
🟢search_businesses(query, category, tier, verified_only, limit, ...)
START HERE. Find AI-agent businesses by keyword, category or tier. Returns a list of briefs: slug, name, category, tier, one_liner, annualized_revenue_usd (sourced, USD per year), basis, confidence, url_profile; plus total matches and the next page (structuredContent.page, also as text). Matches name, slug, one-liner, tags, what the agent does and lessons. Empty query = every business, highest sourced revenue first. Pages: limit (default 10, max 50) + offset or cursor. Example: {"query":"support","limit":3} -> 3 customer-support agents with their sourced revenue. Use a slug from here in get_business, get_growth or compare_businesses. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup). Every figure with full history in one file: export_dataset (CSV $0.25 via x402).
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Keyword, e.g. \"support\", \"coding\", \"voice\". Empty = all businesses."
},
"category": {
"type": "string",
"description": "Category slug, e.g. coding-agents, customer-support (see list_categories)."
},
"tier": {
"type": "string",
"enum": [
"venture",
"indie",
"experiment"
],
"description": "Funding-based, not size-based: venture = raised outside venture money (even if small), indie = bootstrapped/founder-funded, experiment = agent-run or research project."
},
"verified_only": {
"type": "boolean",
"description": "Keep only businesses whose headline figure is payment-processor verified (headline_verification not null)."
},
"limit": {
"type": "number",
"description": "Results per page. Default 10, max 50."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Skip this many matches (page start). Default 0. Use page.next_offset from the previous call."
},
"cursor": {
"type": "string",
"description": "Opaque page token: page.next_cursor from the previous call with the same query and filters."
}
}
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"tier": {
"type": "string"
},
"one_liner": {
"type": [
"string",
"null"
]
},
"annualized_revenue_usd": {
"type": [
"number",
"null"
]
},
"revenue_disclosed": {
"type": "boolean"
},
"basis": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": [
"string",
"null"
]
},
"source_sync_stale_since": {
"type": [
"string",
"null"
]
},
"url_profile": {
"type": "string"
},
"headline_verification": {
"type": [
"object",
"null"
],
"description": "How the headline figure is verified: {method, processor, via} for payment-connected figures, else null."
},
"signup_url": {
"type": "string",
"description": "Referral link (only on businesses with one). Always shown with signup_url_disclosure; never affects figures, ranking, sorting or verification."
},
"signup_url_label": {
"type": "string"
},
"signup_url_disclosure": {
"type": "string"
},
"referral": {
"type": "boolean"
},
"signup_go_url": {
"type": "string",
"description": "Same link via mrrledger.com/go/<slug> (counts the click, then 302)"
}
},
"required": [
"slug",
"name",
"annualized_revenue_usd",
"url_profile"
],
"additionalProperties": true
}
},
"page": {
"type": "object",
"description": "Pagination: call again with offset = next_offset (or cursor = next_cursor) while has_more.",
"properties": {
"total": {
"type": "number"
},
"returned": {
"type": "number"
},
"offset": {
"type": "number"
},
"limit": {
"type": "number"
},
"has_more": {
"type": "boolean"
},
"next_offset": {
"type": [
"number",
"null"
]
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"total",
"returned",
"offset",
"limit",
"has_more",
"next_offset",
"next_cursor"
],
"additionalProperties": false
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢get_business(slug)
The full sourced record for one business by slug: every dated revenue figure (label, value, as_of, source_url), what the agent does, business model, founded, tier, lessons for builders, growth series, related businesses, badge URLs. Example: {"slug":"cursor"} -> Cursor's full record with sources. Unknown slug -> isError (find slugs with search_businesses). Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup). All businesses at once: export_dataset (JSONL $0.50 via x402).
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Business slug, e.g. cursor, lovable (from search_businesses or leaderboard)."
}
},
"required": [
"slug"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"tier": {
"type": "string"
},
"one_liner": {
"type": [
"string",
"null"
]
},
"what_the_agent_does": {
"type": [
"string",
"null"
]
},
"business_model": {
"type": [
"string",
"null"
]
},
"founded": {
"type": [
"string",
"null"
]
},
"annualized_revenue_usd": {
"type": [
"number",
"null"
]
},
"annualized_revenue_basis": {
"type": [
"string",
"null"
]
},
"revenue_disclosed": {
"type": "boolean"
},
"confidence": {
"type": [
"string",
"null"
]
},
"source_sync_stale_since": {
"type": [
"string",
"null"
]
},
"metrics": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"lessons": {
"type": "array",
"items": {
"type": "string"
}
},
"growth_series": {
"type": "array"
},
"url": {
"type": "string"
},
"url_profile": {
"type": "string"
},
"badge_url": {
"type": "string"
},
"badge_plain_url": {
"type": "string"
},
"related": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"signup_url": {
"type": "string",
"description": "Referral link (only on businesses with one). Always shown with signup_url_disclosure; never affects figures, ranking, sorting or verification."
},
"signup_url_label": {
"type": "string"
},
"signup_url_disclosure": {
"type": "string"
},
"referral": {
"type": "boolean"
},
"signup_go_url": {
"type": "string",
"description": "Same link via mrrledger.com/go/<slug> (counts the click, then 302)"
}
},
"required": [
"slug",
"name",
"metrics",
"url_profile"
],
"additionalProperties": true
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢leaderboard(category, verified_only, limit)
Businesses ranked by their most recent sourced annualized revenue, highest first (only businesses with a disclosed figure). Returns briefs (same fields as search_businesses). Filters: category, verified_only; limit default 10, max 50. Example: {"category":"coding-agents","limit":5} -> the top 5 coding agents by revenue. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup). Whole dataset as CSV: export_dataset ($0.25 via x402).
Input Schema
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Category slug, e.g. coding-agents (see list_categories)."
},
"verified_only": {
"type": "boolean",
"description": "Keep only businesses whose headline figure is payment-processor verified (headline_verification not null)."
},
"limit": {
"type": "number",
"description": "Default 10, max 50."
}
}
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"tier": {
"type": "string"
},
"one_liner": {
"type": [
"string",
"null"
]
},
"annualized_revenue_usd": {
"type": [
"number",
"null"
]
},
"revenue_disclosed": {
"type": "boolean"
},
"basis": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": [
"string",
"null"
]
},
"source_sync_stale_since": {
"type": [
"string",
"null"
]
},
"url_profile": {
"type": "string"
},
"headline_verification": {
"type": [
"object",
"null"
],
"description": "How the headline figure is verified: {method, processor, via} for payment-connected figures, else null."
},
"signup_url": {
"type": "string",
"description": "Referral link (only on businesses with one). Always shown with signup_url_disclosure; never affects figures, ranking, sorting or verification."
},
"signup_url_label": {
"type": "string"
},
"signup_url_disclosure": {
"type": "string"
},
"referral": {
"type": "boolean"
},
"signup_go_url": {
"type": "string",
"description": "Same link via mrrledger.com/go/<slug> (counts the click, then 302)"
}
},
"required": [
"slug",
"name",
"annualized_revenue_usd",
"url_profile"
],
"additionalProperties": true
}
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢todays_feature
Today's featured business (rotates daily by America/Toronto date): the full profile, same shape as get_business, including its lessons for builders. No arguments. Example: {} -> one business record. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup).
Input Schema
{
"type": "object",
"properties": {}
}Output Schema
{
"type": "object",
"properties": {
"result": {
"oneOf": [
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"tier": {
"type": "string"
},
"one_liner": {
"type": [
"string",
"null"
]
},
"what_the_agent_does": {
"type": [
"string",
"null"
]
},
"business_model": {
"type": [
"string",
"null"
]
},
"founded": {
"type": [
"string",
"null"
]
},
"annualized_revenue_usd": {
"type": [
"number",
"null"
]
},
"annualized_revenue_basis": {
"type": [
"string",
"null"
]
},
"revenue_disclosed": {
"type": "boolean"
},
"confidence": {
"type": [
"string",
"null"
]
},
"source_sync_stale_since": {
"type": [
"string",
"null"
]
},
"metrics": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"lessons": {
"type": "array",
"items": {
"type": "string"
}
},
"growth_series": {
"type": "array"
},
"url": {
"type": "string"
},
"url_profile": {
"type": "string"
},
"badge_url": {
"type": "string"
},
"badge_plain_url": {
"type": "string"
},
"related": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"signup_url": {
"type": "string",
"description": "Referral link (only on businesses with one). Always shown with signup_url_disclosure; never affects figures, ranking, sorting or verification."
},
"signup_url_label": {
"type": "string"
},
"signup_url_disclosure": {
"type": "string"
},
"referral": {
"type": "boolean"
},
"signup_go_url": {
"type": "string",
"description": "Same link via mrrledger.com/go/<slug> (counts the click, then 302)"
}
},
"required": [
"slug",
"name",
"metrics",
"url_profile"
],
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢get_growth(slug)
Dated revenue series for one business, oldest first: [{as_of, annualized_usd, label (ARR, MRR or Revenue), value_usd, value_text, source_url, source_name}], one point per sourced date (MRR is annualized x12). Example: {"slug":"lovable"} -> Lovable's dated ARR points, each with its source. Unknown slug -> isError. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup). Full dated history for every business: export_dataset (CSV $0.25 via x402).
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Business slug, e.g. lovable."
}
},
"required": [
"slug"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"as_of": {
"type": "string"
},
"annualized_usd": {
"type": "number"
},
"label": {
"type": "string"
},
"value_usd": {
"type": "number"
},
"value_text": {
"type": [
"string",
"null"
]
},
"source_url": {
"type": "string"
},
"source_name": {
"type": [
"string",
"null"
]
}
},
"required": [
"as_of",
"annualized_usd",
"label",
"value_usd",
"source_url"
],
"additionalProperties": true
}
}
},
"required": [
"slug",
"name",
"data"
],
"additionalProperties": false
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢search_lessons(query, theme, limit)
Lessons for builders drawn from every business, each attributed to its business and tagged by theme. Returns {total, returned, themes, results: [{lesson, name, slug, themes, url_profile}]}. Filter by query (matches lesson text, business name, slug) and/or theme; limit default 10, max 50. Example: {"theme":"pricing","limit":5} -> 5 pricing lessons and the businesses they come from. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup).
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free text, e.g. \"outcome-based pricing\"."
},
"theme": {
"type": "string",
"enum": [
"pricing",
"growth",
"enterprise",
"trust",
"product",
"ops",
"other"
],
"description": "Theme id (pricing, growth, enterprise, trust, product, ops, other); labels like \"Trust & sourcing\" are accepted too."
},
"limit": {
"type": "number",
"description": "Default 10, max 50."
}
}
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"total": {
"type": "number"
},
"returned": {
"type": "number"
},
"method": {
"type": "string"
},
"themes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"count": {
"type": "number"
}
},
"required": [
"id",
"label"
]
}
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lesson": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"themes": {
"type": "array",
"items": {
"type": "string"
}
},
"url_profile": {
"type": "string"
}
},
"required": [
"lesson",
"name",
"slug",
"themes",
"url_profile"
]
}
}
},
"required": [
"total",
"returned",
"results"
],
"additionalProperties": true
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢whats_new(since, slug, kind, limit)
Dataset change log, newest first: businesses added and revenue figures added, revised, re-dated or removed, each with its source_url. Returns {total, returned, latest, results}. Filters: since (YYYY-MM-DD, inclusive, America/Toronto dates), slug, kind; limit default 20, max 100. Example: {"since":"2026-10-14"} -> every change since Oct 14, 2026. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup). Get each new figure pushed instead: watch_revenue (webhook, $1 per business per 30 days via x402).
Input Schema
{
"type": "object",
"properties": {
"since": {
"type": "string",
"description": "YYYY-MM-DD"
},
"slug": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"dataset_created",
"business_added",
"business_removed",
"metric_added",
"metric_revised",
"metric_redated",
"metric_removed"
]
},
"limit": {
"type": "number",
"description": "Default 20, max 100."
}
}
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"total": {
"type": "number"
},
"returned": {
"type": "number"
},
"latest": {
"type": [
"string",
"null"
]
},
"method": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"total",
"returned",
"results"
],
"additionalProperties": true
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢compare_businesses(a, b)
Two businesses side by side by slug. Returns a brief for each (tier, category, annualized revenue + basis, pricing model, founded, top 2 lessons, growth series) and a diff (annualized_a, annualized_b, ratio a/b, same_category, same_tier). Example: {"a":"cursor","b":"lovable"} -> Cursor vs Lovable with the revenue ratio. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup).
Input Schema
{
"type": "object",
"properties": {
"a": {
"type": "string",
"description": "First business slug"
},
"b": {
"type": "string",
"description": "Second business slug"
}
},
"required": [
"a",
"b"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"a": {
"type": "object",
"additionalProperties": true
},
"b": {
"type": "object",
"additionalProperties": true
},
"diff": {
"type": "object",
"properties": {
"annualized_a": {
"type": [
"number",
"null"
]
},
"annualized_b": {
"type": [
"number",
"null"
]
},
"ratio": {
"type": [
"number",
"null"
]
},
"same_category": {
"type": "boolean"
},
"same_tier": {
"type": "boolean"
},
"same_slug": {
"type": "boolean"
}
},
"required": [
"annualized_a",
"annualized_b",
"same_category",
"same_tier",
"same_slug"
],
"additionalProperties": true
}
},
"required": [
"a",
"b",
"diff"
],
"additionalProperties": false
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢hub_stats
Dataset totals in one object: business, ranked, lesson and MCP tool counts; counts per category and tier; median annualized revenue (overall, by tier, by category); payment-verified headline count and share; stale and older-figure counts; latest change date; today's feature slug. No arguments. Example: {} -> {business_count, ranked_count, median_annualized_usd, ...}. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup).
Input Schema
{
"type": "object",
"properties": {}
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"business_count": {
"type": "number"
},
"ranked_count": {
"type": "number"
},
"chartable_count": {
"type": "number"
},
"lesson_count": {
"type": "number"
},
"mcp_tool_count": {
"type": "number"
},
"category_counts": {
"type": "object",
"additionalProperties": {
"type": "number"
}
},
"tier_counts": {
"type": "object",
"additionalProperties": {
"type": "number"
}
},
"source_sync_stale_count": {
"type": "number"
},
"older_figure_count": {
"type": "number"
},
"median_annualized_usd": {
"type": [
"number",
"null"
]
},
"median_annualized_by_tier": {
"type": "object"
},
"median_annualized_by_category": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"n": {
"type": "number"
},
"median_annualized_usd": {
"type": [
"number",
"null"
]
}
},
"required": [
"n"
]
}
},
"acquired_count": {
"type": "number"
},
"acquired_slugs": {
"type": "array",
"items": {
"type": "string"
}
},
"revenue_disclosed_count": {
"type": "number"
},
"revenue_undisclosed_count": {
"type": "number"
},
"median_note": {
"type": "string"
},
"latest_changelog_date": {
"type": [
"string",
"null"
]
},
"todays_feature": {
"type": [
"string",
"null"
]
},
"generated": {
"type": "string"
}
},
"required": [
"business_count",
"mcp_tool_count",
"source_sync_stale_count"
],
"additionalProperties": true
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢list_categories(limit)
Every category with count, ranked_count, median annualized revenue (overall and by tier: venture/indie/experiment) and its members (slug, name, global rank, annualized_revenue_usd, revenue_disclosed, url_profile). Optional limit (default all, max 50). Example: {"limit":3} -> the first 3 categories with their members. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup).
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Max categories to return (default: all)."
}
}
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"total": {
"type": "number"
},
"returned": {
"type": "number"
},
"method": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"label": {
"type": "string"
},
"name": {
"type": "string"
},
"count": {
"type": "number"
},
"ranked_count": {
"type": "number"
},
"median_annualized_usd": {
"type": [
"number",
"null"
]
},
"url_page": {
"type": "string"
},
"median_annualized_by_tier": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"n": {
"type": "number"
},
"median_annualized_usd": {
"type": "number"
}
},
"required": [
"n",
"median_annualized_usd"
]
}
},
"members": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"rank": {
"type": [
"number",
"null"
]
},
"annualized_revenue_usd": {
"type": [
"number",
"null"
]
},
"revenue_disclosed": {
"type": "boolean"
},
"url_profile": {
"type": "string"
}
},
"required": [
"slug",
"name",
"url_profile"
],
"additionalProperties": true
}
}
},
"required": [
"slug",
"label",
"count",
"ranked_count",
"members"
],
"additionalProperties": true
}
}
},
"required": [
"total",
"returned",
"results"
],
"additionalProperties": true
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢list_tags(limit)
Every tag (from business tags) with slug, label, count, ranked_count, median annualized revenue (overall and by tier) and members (slug, name, global rank, annualized_revenue_usd, revenue_disclosed, url_profile). Sorted by count (most used first), then label; includes 1-business tags. Optional limit (default all, max 500). Example: {"limit":10} -> the 10 most-used tags. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup).
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Max tags to return (default: all)."
}
}
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"total": {
"type": "number"
},
"returned": {
"type": "number"
},
"method": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"label": {
"type": "string"
},
"name": {
"type": "string"
},
"count": {
"type": "number"
},
"ranked_count": {
"type": "number"
},
"median_annualized_usd": {
"type": [
"number",
"null"
]
},
"median_annualized_by_tier": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"n": {
"type": "number"
},
"median_annualized_usd": {
"type": "number"
}
},
"required": [
"n",
"median_annualized_usd"
]
}
},
"url_page": {
"type": "string"
},
"members": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"rank": {
"type": [
"number",
"null"
]
},
"annualized_revenue_usd": {
"type": [
"number",
"null"
]
},
"revenue_disclosed": {
"type": "boolean"
},
"url_profile": {
"type": "string"
}
},
"required": [
"slug",
"name",
"url_profile"
],
"additionalProperties": true
}
}
},
"required": [
"slug",
"label",
"count",
"ranked_count",
"members"
],
"additionalProperties": true
}
}
},
"required": [
"total",
"returned",
"results"
],
"additionalProperties": true
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢get_tag(slug)
One tag by slug: count, ranked_count, median annualized revenue (overall and by tier), members with global rank and revenue, url_page (same shape as one list_tags item). Example: {"slug":"trustmrr"} -> every business tagged trustmrr. Unknown slug -> isError. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup).
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Tag slug (e.g. trustmrr, mcp, seo)."
}
},
"required": [
"slug"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"label": {
"type": "string"
},
"name": {
"type": "string"
},
"count": {
"type": "number"
},
"ranked_count": {
"type": "number"
},
"median_annualized_usd": {
"type": [
"number",
"null"
]
},
"median_annualized_by_tier": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"n": {
"type": "number"
},
"median_annualized_usd": {
"type": "number"
}
},
"required": [
"n",
"median_annualized_usd"
]
}
},
"url_page": {
"type": "string"
},
"members": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"rank": {
"type": [
"number",
"null"
]
},
"annualized_revenue_usd": {
"type": [
"number",
"null"
]
},
"revenue_disclosed": {
"type": "boolean"
},
"url_profile": {
"type": "string"
}
},
"required": [
"slug",
"name",
"url_profile"
],
"additionalProperties": true
}
}
},
"required": [
"slug",
"label",
"count",
"ranked_count",
"members"
],
"additionalProperties": true
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢get_category(slug)
One category by slug (or id): label, count, ranked_count, median annualized revenue (overall and by tier), members with global rank and revenue, url_page (same shape as one list_categories item). Example: {"slug":"customer-support"} -> the customer-support agents with their revenue. Unknown slug -> isError. Cost: free, 100 tools/call per day without a key (API keys from $9/mo raise the limit). Over the free 100/day: $0.005 per call via x402 (no signup).
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Category slug (e.g. coding-agents, customer-support, indie-solo)."
}
},
"required": [
"slug"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"label": {
"type": "string"
},
"name": {
"type": "string"
},
"count": {
"type": "number"
},
"ranked_count": {
"type": "number"
},
"median_annualized_usd": {
"type": [
"number",
"null"
]
},
"median_annualized_by_tier": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"n": {
"type": "number"
},
"median_annualized_usd": {
"type": "number"
}
},
"required": [
"n",
"median_annualized_usd"
]
}
},
"url_page": {
"type": "string"
},
"members": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"rank": {
"type": [
"number",
"null"
]
},
"annualized_revenue_usd": {
"type": [
"number",
"null"
]
},
"revenue_disclosed": {
"type": "boolean"
},
"url_profile": {
"type": "string"
}
},
"required": [
"slug",
"name",
"url_profile"
],
"additionalProperties": true
}
}
},
"required": [
"slug",
"label",
"count",
"ranked_count",
"members"
],
"additionalProperties": true
}
},
"required": [
"result"
],
"additionalProperties": false
}🟢export_dataset(format, slug)
The whole MRR Ledger dataset in one call. format "csv" ($0.25 USDC via x402): every sourced revenue figure for every business, superseded ones included (one row per figure, 14 columns, source_url on each). format "jsonl" ($0.50): one full business record per line. Optional slug = one business, same price. Included with Builder (csv) and Team (csv + jsonl) API keys. Call without payment for a free preview (real sample rows) plus the x402 terms, then retry with params._meta["x402/payment"] (x402 v2 or v1 payload). Example: {"format":"csv"} -> free preview (real sample rows) + terms for $0.25; the paid retry returns the CSV as the text content.
Input Schema
{
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"csv",
"jsonl"
],
"default": "csv"
},
"slug": {
"type": "string",
"description": "Optional: one business slug"
}
},
"additionalProperties": false
}⚪buy_api_pass(plan, days)
Buy an expiring MRR Ledger API key with x402 (USDC on Base). Prices: hobby 1 day $0.50, hobby 30 days $9, builder 30 days $19 (adds CSV export + 5 watches), team 30 days $79 (adds JSONL export + 20 watches). Call without payment for a free preview (what the key unlocks, daily limits) plus the x402 terms, then retry with params._meta["x402/payment"] (x402 v2 or v1 payload). Returns {api_key (shown once), plan, days, expires_at, requests_per_day}. Example: {"plan":"hobby","days":1} -> free preview + terms for $0.50; the paid retry returns the key.
Input Schema
{
"type": "object",
"properties": {
"plan": {
"type": "string",
"enum": [
"hobby",
"builder",
"team"
]
},
"days": {
"type": "integer",
"enum": [
1,
30
],
"default": 30
}
},
"required": [
"plan"
],
"additionalProperties": false
}🟡watch_revenue(slugs, webhook_url, kinds)
Get a signed webhook POST whenever a watched business gets a new or revised revenue figure on MRR Ledger. x402 (USDC on Base): $1 per business per 30 days (at most $5), or $5 for all businesses. Included with Builder and Team API keys (send the key as X-API-Key on the MCP request). Call without payment for a free preview (the latest real revenue changes for those businesses) plus the x402 terms, then retry with params._meta["x402/payment"] (x402 v2 or v1 payload). Returns watch_id and a secret shown once; verify MRL-Signature = HMAC-SHA256(secret, t + "." + body). Example: {"slugs":["cursor"],"webhook_url":"https://example.com/hook"} -> free preview + terms for $1; the paid retry returns the watch.
Input Schema
{
"type": "object",
"properties": {
"slugs": {
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 10
},
{
"type": "string",
"enum": [
"all"
]
}
],
"description": "Business slugs (1-10) or \"all\""
},
"webhook_url": {
"type": "string",
"description": "https URL on a public host (port 443)"
},
"kinds": {
"type": "array",
"items": {
"type": "string",
"enum": [
"metric_revised",
"metric_added",
"metric_removed",
"business_added",
"metric_redated"
]
}
}
},
"required": [
"slugs",
"webhook_url"
],
"additionalProperties": false
}Community
Evidence