Project Gumball

15 small tools. One install.

An experiment in how agents and apps find each other, agree on what a capability is worth, and pay for it. Every tool is one pure engine exposed three ways — a web page, a JSON API, and an MCP server — and every call is recorded so the answer to “is anyone using this?” is a number rather than a guess.

Install every tool at once

One MCP endpoint, 25 tools. Each one forwards to the site that owns it, and those sites stay callable directly.

claude mcp add --transport http gumball https://gumballtools.com/api/mcp

Setup for other clients · the directory as JSON · llms.txt

Who is actually calling

Calls

1734

last 7 days

Distinct callers

620

Agent calls

1064

identified as agents

Repeat agents

37

seen on 2+ days

Repeat callers is the number that matters. A crawler visits once; a tool something actually depends on gets called again. One-off crawls are discovery, not dependency.

Agent platforms seen

  • (unidentified)585 calls · 16 sites
  • brick.blue287 calls · 13 sites
  • script116 calls · 16 sites
  • anthropic40 calls · 1 site
  • openai36 calls · 13 sites

Which tools, specifically

ToolSiteSurfacesCallsBy agentsCallers
offside_rule_contrastsports-rulesapi + mcp636225
vocab_drawwords-in-contextapi + mcp363317
cron_explaincron-translatorapi + mcp32923
validate_autopayload-validatorapi + mcp282713
toolssite onlyplatformapi27326
cron_buildcron-translatormcp262612
validate_jsonpayload-validatorapi + mcp22169
check_digit_runcheck-digitapi18018
tools/callunattributedamortizemcp16164
offsidesports-rulesapi + mcp1486
timezone_converttimezone-truthapi + mcp1394
regex_explainregex-explainerapi + mcp1275
body_metricsbody-metricsapi + mcp1183
color_analysecolor-companionapi + mcp1183
validate_yamlpayload-validatorapi + mcp1174
round_cash_totalpenny-roundingapi + mcp11103
due_datedue-dateapi + mcp1093
tools/callunattributedcheck-digitmcp993
tools/callunattributedequation-stepsmcp993
tools/callunattributediso-weekmcp993
json_to_typesjson-to-typesapi + mcp872
validate_csvpayload-validatorapi + mcp871
validate_xmlpayload-validatorapi + mcp871
vocab_checkwords-in-contextapi + mcp871
price_bandpenny-roundingmcp771
rounding_impactpenny-roundingmcp771
generate_itemsnot in registrywords-in-contextmcp771
amortize_scheduleamortizeapi404
cron_next_runscron-translatorapi101
equation_steps_runequation-stepsapi101
iso_week_runiso-weekapi101
vocab_generatesite onlywords-in-contextapi101

Zero-call rows are the useful ones — a tool nobody invokes is indistinguishable from a tool that does not exist unless it is listed anyway. Counts cover the API and MCP surfaces only; markdown page reads are discovery, not invocation. Calls made through the portfolio MCP server are counted once, at the site that served them, not twice. “Callers” is the largest single surface’s distinct-caller count, so it is a floor.

A badge means the row is not reachable through the portfolio MCP server. site only is deliberate — hover for the reason. unattributed is not a tool: older sites recorded the JSON-RPC method instead of the tool name. not in registry is the only one that is a gap. None of them relate to the MCP registry, which is a different thing entirely.

Statically served pages come from the CDN and never reach server code, so human page views are not in these numbers. Agent surfaces — the API, MCP, and markdown — are complete.

Developer tools

Design

Learning

Health and dates

Everyday reference

Suggest a tool

Describe something you keep getting wrong, or that a model keeps getting wrong for you. An agent reads it, applies the same criterion as everything above, and either declines with a reason or builds it and opens a pull request. A human reviews that pull request before anything goes live, and every submission is scanned for hostile code on the assumption that it is hostile.

Leave an email address and you will be told what happened to the idea — reviewed, declined, or live. It is used for that and nothing else.

Suggest a tool

What this is testing

Every tool here was chosen on one criterion: the work is something a model does unreliably, or something that is expensive to do inline. A tool that merely duplicates what a model can already do well will not get called twice, no matter how discoverable it is.

Each site is free up to a daily quota and then returns HTTP 402 with x402 payment requirements. Settlement is not switched on yet, so nothing can actually be paid for — which means the open question is still open: what is a small capability worth to an agent that has a choice?

The whole thing is open source, including the ledger schema.