Back to the catalog

FabTally Utility Belt

13 deterministic agent utilities: timezone, cron, RRULE, currency, regex, diff, hashing & more.

Open source Repository Open in the app JSON README (API)

About

13 deterministic agent utilities: timezone, cron, RRULE, currency, regex, diff, hashing & more.

Details

Kind
MCP servers
Topic
Maps, weather & travel
Publisher
zvmzaretsky
Origin
official
Category
ferramentas
Transport
http
Version
1.0.0
Last push
2026-08-01T03:33:38Z
Repository state
ativo
Language
JavaScript
License
MIT
Added
2026-08-29 04:01:44
Updated
2026-08-29 04:01:44
Origin id
io.github.zvmzaretsky/utility-belt

README

# FabTally Utility Belt — MCP server

The deterministic micro-utilities AI agents call constantly, as an MCP server (stdio + streamable-HTTP)
**and** a pay-per-call HTTP API. One reliable bundle instead of thirteen flaky npm deps.

- **Free tools** return real results with no wallet: `convert`, `text`, `hash`, `encode`, `id`, `regex`.
- **Paid tools** ($0.001/call, x402 · USDC on Base): `timezone`, `cron`, `rrule`, `currency`, `diff`,
  `jsonschema`, `datemath`. With no payment a paid tool returns the decoded **x402 402 challenge**
  (price / network / asset / payTo) so an agent can pay and retry with `x_payment`. Humans can instead
  prepay by card and use an `X-FabTally-Key` credit key against the HTTP API.

This server holds **no private key**. It fronts `https://belt.fabtally.com`. Every utility is a pure,
deterministic function with strict input validation; **bad input → 400, never charged**; nothing is stored.

## Tools

| Tool | Tier | What it does |
|---|---|---|
| `convert` | free | Unit conversion (length/mass/temperature/volume/data/time/area/speed/angle/pressure/energy). |
| `text` | free | slugify · case-convert (camel/pascal/snake/kebab/constant/…) · `{{template}}` fill. |
| `hash` | free | sha256/sha512/sha384/sha1/md5/sha3-256/keccak256/ripemd160, optional HMAC, hex/base64 out. |
| `encode` | free | base64 / base64url / hex / url / html encode & decode. |
| `id` | free | uuid v4/v7, ULID, nanoid, random hex/base64url/int (count up to 1000). |
| `regex` | free | test/match/extract/replace with catastrophic-backtracking protection (killable worker + timeout). |
| `timezone` | $0.001 | Instant → IANA zone with historically-correct DST; offsets, abbreviations, DST flags. |
| `cron` | $0.001 | Cron expression → next N run times + plain-English description. |
| `rrule` | $0.001 | iCal RRULE (RFC 5545) → next N occurrences. |
| `currency` | $0.001 | Live currency conversion at reference/mid-market rates (keyless ECB feed, cached). |
| `diff` | $0.001 | Text diff: unified patch + structured op-list + add/remove/hunk stats. |
| `jsonschema` | $0.001 | Validate against JSON Schema (draft 2020-12) and explain every error in plain English. |
| `datemath` | $0.001 | Add/subtract ISO-8601 durations, diff into chosen units, business-day add/diff. |

## Install / run

### stdio (Claude Desktop, Cursor, any MCP client)

```jsonc
// claude_desktop_config.json
{
  "mcpServers": {
    "fabtally-belt": { "command": "npx", "args": ["-y", "fabtally-belt-mcp"] }
  }
}
```

Or clone and run: `node index.js` (speaks MCP over stdio).

### streamable-HTTP (remote)

Hosted: `https://belt.fabtally.com/mcp`. Or self-host: `MCP_HTTP_PORT=8108 node http.js`.

### Config

- `FABTALLY_BELT_BASE` — API base (default `https://belt.fabtally.com`).

## Paying for paid tools

A paid tool with no `x_payment` returns:

```json
{ "payment_required": true, "http_status": 402,
  "challenge": { "x402Version": 2, "accepts": [ { "scheme": "exact", "network": "eip155:8453",
    "amount": "1000", "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "payTo": "0x…" } ] } }
```

Build an x402 payment authorization (EIP-3009 `transferWithAuthorization` to `payTo`) for the `accepts`
entry and call the tool again with the token in `x_payment`. `amount` is atomic USDC (1000 = $0.001).

## Guarantees

Deterministic. Stateless — no PII or request data stored. Receive-only wallet (no custody). Currency
figures are reference/mid-market rates for informational use, not a dealable quote. MIT licensed.

More