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.