streamable-httpMITupdated 1mo ago
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.
What can you do with FabTally Utility Belt?
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 withx_payment. Humans can instead prepay by card and use anX-FabTally-Keycredit 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)
// 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 (defaulthttps://belt.fabtally.com).
Paying for paid tools
A paid tool with no x_payment returns:
{ "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.
Install
Add FabTally Utility Belt to your client. Pick the one you use.
claude mcp add --transport http fabtally-utility-belt https://belt.fabtally.com/mcpcodex mcp add fabtally-utility-belt --url https://belt.fabtally.com/mcp{
"mcpServers": {
"fabtally-utility-belt": {
"url": "https://belt.fabtally.com/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"fabtally-utility-belt": {
"type": "http",
"url": "https://belt.fabtally.com/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"fabtally-utility-belt": {
"url": "https://belt.fabtally.com/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"fabtally-utility-belt": {
"serverUrl": "https://belt.fabtally.com/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation22/25
- Maintenance16/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 31 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 1.0.0Latest | Aug 1, 2026 |