# 17x7 API & MCP server

The math behind every 17x7 calculator, plus time zone and cron utilities — as a keyless JSON API and a remote MCP server your AI agent can call. Free, no sign-up.

- MCP: Streamable HTTP, no auth
- JSON API: GET or POST
- Calculator results include their steps

## MCP server

Endpoint: `https://api.17x7.com/mcp` — stateless Streamable HTTP, no authentication, works with clients speaking MCP 2025-06-18 or later. It exposes six read-only tools:

| Tool              | What it does                                                                                         |
| ----------------- | ---------------------------------------------------------------------------------------------------- |
| convert\_time     | Convert a moment between IANA time zones with DST handling (flags ambiguous and skipped wall times). |
| explain\_cron     | Plain-English description of a cron expression plus its next run times in any time zone.             |
| etsy\_fees        | Etsy fees and profit for one order (2026 rates, 12 seller countries, Offsite Ads, Share & Save).     |
| amazon\_fba\_fees | Amazon US FBA size tier, fulfillment, referral and storage fees, margin and ROI (2026 rate card).    |
| roof\_pitch       | Roof pitch, degrees, slope, multiplier, rafter length, roof area, squares and shingle bundles.       |
| deck\_materials   | Deck boards (cut-aware), joists, hangers, screws or clips, IRC span check and cost.                  |

Browser-only, with no API or MCP tool: [JSON Schema Validator](https://17x7.com/tools/json-schema-validator/), [JSON Schema Generator](https://17x7.com/tools/json-schema-generator/), [YAML to JSON Converter](https://17x7.com/tools/yaml-to-json/), [Robots.txt Tester](https://17x7.com/tools/robots-txt-tester/). They run on your own machine; what you paste never reaches the server.

### Claude Code

```
claude mcp add --transport http 17x7 https://api.17x7.com/mcp
```

Add `--scope user` to make it available in every project, or `--scope project` to write it to the repo's `.mcp.json`.

### Hermes Agent

```
hermes mcp add 17x7 --url https://api.17x7.com/mcp
```

Or in `~/.hermes/config.yaml`:

```
mcp_servers:
  17x7:
    url: "https://api.17x7.com/mcp"
```

### Claude (web and desktop)

Settings → Connectors → Add custom connector, and paste `https://api.17x7.com/mcp`. No OAuth step is needed.

### Cursor

```
{ "mcpServers": { "17x7": { "url": "https://api.17x7.com/mcp" } } }
```

Put that in `~/.cursor/mcp.json`, or use the install link `cursor://anysphere.cursor-deeplink/mcp/install?name=17x7&config=eyJ1cmwiOiJodHRwczovL2FwaS4xN3g3LmNvbS9tY3AifQ==`.

### Raw JSON-RPC

```
curl -s https://api.17x7.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"roof_pitch","arguments":{"rise":6,"run":12}}}'
```

## JSON API

Base URL `https://api.17x7.com` (the same paths also answer on `17x7.com`). Send parameters as a query string with GET or as a JSON body with POST. Successful responses look like `{"ok":true,"tool":…,"result":{…},"steps":[…],"notes":[…]}`; validation problems return HTTP 400 with `{"ok":false,"errors":[{"field","message"}]}`. The full description is in [openapi.json](https://17x7.com/openapi.json).

| Method   | Path                            | Main parameters                                                                         |
| -------- | ------------------------------- | --------------------------------------------------------------------------------------- |
| GET/POST | /api/v1/time/convert            | time, from, to                                                                          |
| GET/POST | /api/v1/cron/explain            | expression, tz, count, from                                                             |
| GET/POST | /api/v1/calc/etsy-fees          | item\_price, shipping\_charged, sales\_tax, item\_cost, seller\_country, offsite\_ads … |
| GET/POST | /api/v1/calc/amazon-fba         | price, length\_in, width\_in, height\_in, weight\_lb, category, product\_cost …         |
| GET/POST | /api/v1/calc/roof-pitch         | rise, run \| angle, span\_ft, length\_ft, overhang\_in, waste\_percent                  |
| GET/POST | /api/v1/calc/deck-materials     | width\_ft, depth\_ft, board\_width\_in, gap\_in, joist\_spacing\_in, fastener …         |
| GET      | /api/v1/health (or /api/health) | —                                                                                       |

```
curl 'https://api.17x7.com/api/v1/calc/etsy-fees?item_price=25&shipping_charged=5&sales_tax=2.4'
```

## Limits and fair use

- Anonymous callers: **60 requests per minute per IP**; over that you get HTTP 429 with `Retry-After`.
- Request bodies up to 64 KB, counted as received, and one JSON-RPC message per MCP request (batches are refused).
- JSON Schema validation is not part of the API: a schema can describe arbitrarily expensive work, so it runs only in the [browser validator](https://17x7.com/tools/json-schema-validator/), on your own machine.
- Results are deterministic estimates — the same fee schedules and formulas as the calculators, documented on each calculator page.
- Found a bug or need a tool that is not here? [Tell us](https://17x7.com/contact/).

## Discovery files

- [/llms.txt](https://17x7.com/llms.txt) — site summary for language models
- [/openapi.json](https://17x7.com/openapi.json) — OpenAPI 3.1 description
- `https://api.17x7.com/mcp/server-card` — MCP server card (also at [/.well-known/mcp/server-card.json](https://17x7.com/.well-known/mcp/server-card.json))
- [/.well-known/ai-catalog.json](https://17x7.com/.well-known/ai-catalog.json) and [/.well-known/api-catalog](https://17x7.com/.well-known/api-catalog) (RFC 9727)

---

Source: https://17x7.com/developers/ · Last updated: 2026-10-15
