# Project Gumball

A directory of the Gumball tools, a live view of who is calling them, and a single MCP server that exposes every tool in the portfolio — so an agent installs once and gets all of them rather than hunting down one server per capability.

## One install, 13 tools

MCP endpoint: `https://gumballtools.com/api/mcp` (Streamable HTTP)

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

Every tool forwards to the site that owns it. Those sites are also callable
directly, so nothing here is a single point of failure for them.

Machine-readable directory: `https://gumballtools.com/api/v1/tools`
Call any tool through one endpoint: `https://gumballtools.com/api/v1/call?tool=<name>&...`

## Developer tools

### Cron Translator

Translate cron expressions to plain English — and back.

**Why delegate it:** Cron has counter-intuitive rules: day-of-month and day-of-week are OR-ed, steps like */7 do not divide their field evenly, and February 30 never fires. Reasoning about an expression directly gets these wrong quietly.

Site: https://crontoenglish.com · Details: https://gumballtools.com/tools/cron-translator

- `cron_explain` — Explain a cron expression. Direct: `https://crontoenglish.com/api/v1/explain`
- `cron_build` — Build a cron expression from English. Direct: `https://crontoenglish.com/api/v1/build`

### JSON to Types

Turn any JSON into TypeScript types and a Zod schema.

**Why delegate it:** Typing from the first array element produces types that reject the rest of the data, and null is routinely conflated with absent. Also far cheaper in output tokens than writing the types inline for a large payload.

Site: https://json-to-types-seven.vercel.app · Details: https://gumballtools.com/tools/json-to-types

- `json_to_types` — JSON to TypeScript and Zod. Direct: `https://json-to-types-seven.vercel.app/api/v1/convert`

### Regex Explainer

Explain any regular expression, and catch the ones that can hang.

**Why delegate it:** Whether a pattern backtracks catastrophically depends on nested quantifier structure that is unreliable to eyeball — and getting it wrong ships a denial-of-service vector in a validator.

Site: https://regex-explainer-omega.vercel.app · Details: https://gumballtools.com/tools/regex-explainer

- `regex_explain` — Explain a regex and check it for ReDoS. Direct: `https://regex-explainer-omega.vercel.app/api/v1/explain`

### Timezone Truth

Convert times between zones, and catch the ones that do not exist.

**Why delegate it:** The mapping from local time to instant is not a function: on the spring-forward date some local times have no instant, and on the fall-back date some have two. A confident answer to an impossible question is indistinguishable from a correct one.

Site: https://timezone-truth.vercel.app · Details: https://gumballtools.com/tools/timezone-truth

- `timezone_convert` — Convert a time between timezones. Direct: `https://timezone-truth.vercel.app/api/v1/convert`

## Design

### Color Companion

Convert any colour, and find the ones that go with it.

**Why delegate it:** Colour-space arithmetic has no feedback signal — a wrong hex-to-OKLCH looks exactly like a right one until someone sees the colour. Harmonies rotated in HSL also come out perceptually unbalanced, which is the usual mistake.

Site: https://color-companion-ebon.vercel.app · Details: https://gumballtools.com/tools/color-companion

- `color_analyse` — Convert a colour and find its harmonies. Direct: `https://color-companion-ebon.vercel.app/api/v1/analyse`

## Learning

### Words in Context

Practise the vocabulary questions the way the test actually asks them.

**Why delegate it:** A curated, human-written question bank. Generated vocabulary questions frequently have two defensible answers, which is worse practice than none.

Site: https://words-in-context.vercel.app · Details: https://gumballtools.com/tools/words-in-context

- `vocab_draw` — Draw vocabulary practice questions. Direct: `https://words-in-context.vercel.app/api/v1/draw`
- `vocab_check` — Check a vocabulary answer. Direct: `https://words-in-context.vercel.app/api/v1/check`

## Health and dates

### Body Metrics

BMI, calories, and protein — with the uncertainty shown.

**Why delegate it:** Two failure modes at once. A bare number is ambiguous — "170" is a height in centimetres or a weight in pounds — and a wrong unit yields a plausible BMI that is off by a factor of two. And the standard energy formulas disagree by hundreds of calories, so any single figure is false precision.

Site: https://body-metrics-tau.vercel.app · Details: https://gumballtools.com/tools/body-metrics

- `body_metrics` — BMI, calories, and protein with error bounds. Direct: `https://body-metrics-tau.vercel.app/api/v1/metrics`

### Due Date

The dating wheel, with the assumptions it hides made explicit.

**Why delegate it:** Gestational age counts from the last menstrual period, not conception — the most misunderstood fact in the subject, and one models restate wrongly. Naegele's rule also assumes a 28-day cycle, and ACOG publishes a five-row table for when an ultrasound should replace period-based dating that nobody recalls correctly.

Site: https://due-date-zeta.vercel.app · Details: https://gumballtools.com/tools/due-date

- `due_date` — Due date and gestational age, with ACOG redating applied. Direct: `https://due-date-zeta.vercel.app/api/v1/estimate`

## Everyday reference

### Penny Rounding

What a cash total actually rounds to now that the penny is gone.

**Why delegate it:** Four things are wrong in most explanations and each changes the answer: rounding is cash-only, applies to the total rather than each item, happens after tax, and is not free money for retailers. Money in floating point is also a bug waiting to happen.

Site: https://penny-rounding.vercel.app · Details: https://gumballtools.com/tools/penny-rounding

- `round_cash_total` — Round a cash total the way the post-penny rules work. Direct: `https://penny-rounding.vercel.app/api/v1/settle`
- `rounding_impact` — What cash rounding is actually worth. Direct: `https://penny-rounding.vercel.app/api/v1/impact`

### Sports Rules

Was that offside? The decision procedure, for soccer and hockey.

**Why delegate it:** The two sports use the same word for structurally opposite rules and are routinely conflated. Soccer excludes hands and arms and treats an offside position as no offence without involvement; hockey judges skates against the blue-line plane, where since 2021 a skate in the air is onside — except when tagging up.

Site: https://sports-rules-theta.vercel.app · Details: https://gumballtools.com/tools/sports-rules

- `offside` — Work an offside call through IFAB Law 11 or NHL Rule 83. Direct: `https://sports-rules-theta.vercel.app/api/v1/offside`

