Skip to content
Conduit

mcp server

forgingstack-ration

ForgingStack Ration — one quota pool, many agents, no overruns. Public MCP client for the live Ration API.

jdkabattles/forgingstack-rationcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "forgingstack-ration": {
      "command": "uvx",
      "args": [
        "forgingstack-ration"
      ],
      "env": {
        "FORGINGSTACK_API_KEY": "<your FORGINGSTACK_API_KEY>"
      }
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Nov 8, 2026

ForgingStack Ration

One quota pool, many agents, no overruns.

mcp-name: io.github.jdkabattles/forgingstack-ration

This is the public client for Ration. The service itself — the token bucket, the receipt chain, the key store, and billing — runs on ForgingStack's private service and is not in this repo. Copying this repo does not give you the service: you still need an API key and credits, from signup below.

Live API: https://forgingstack-ration.jkbattles.workers.dev

What it does

A principal creates a pool with a capacity, a refill rate, a per-agent cap, and a burst limit. Agents draw units from it. The pool enforces the limits and issues a hash-chained receipt for every draw attempt — allowed and denied.

A draw is denied when:

  • the units exceed the burst limit (draw_exceeds_burst)
  • the pool does not have enough available units (pool_insufficient_units)
  • the agent's allowed draws inside the rolling 60-minute window would exceed the per-agent cap (per_agent_cap_exceeded)

The per-agent cap window is a rolling 60 minutes — a documented design choice, not a calendar window.

Signup (v1)

curl -X POST https://forgingstack-ration.jkbattles.workers.dev/v1/signup \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com"}'

Returns an API key once and 100 starter credits. Save the key immediately — it is stored only as a hash and cannot be shown again. Click the verification link in the signup email before the key can create pools or draw: until then, pool creation and draws return 403 email_not_verified.

Buying more credits

1 credit per pool creation, 1 credit per draw call (allowed or denied). Top-ups, pool reads, pool lists, and deletes are free.

curl -X POST https://forgingstack-ration.jkbattles.workers.dev/v1/billing/checkout \
  -H "X-API-Key: YOUR_PRIMARY_KEY"

Returns the Stripe Payment Link: $10 for 1,000 credits. Pay on Stripe's hosted page with the same email you signed up with. Credits land once the payment is verified (within the hour).

Use it (MCP, stdio)

Set the key, then run the MCP server in this repo:

export FORGINGSTACK_API_KEY="your-key-here"
python -m app.mcp_server

Tools: create_pool, draw, get_pool, list_pools, topup_pool, delete_pool, get_credits, get_receipt. See SKILL.md for when to use it and when not to.

Price

1 credit per pool creation. 1 credit per draw call — a denied draw still costs 1 credit, the draw was performed. An idempotent replay (same Idempotency-Key) is free and returns the original receipt.

Files in this repo

  • app/mcp_server.py — MCP wrapper client (stdio, stdlib only)
  • SKILL.md — when to use it, how to read allowed/denied
  • agent-card.json — A2A-style discovery card
  • server.json — MCP Registry metadata
  • pyproject.toml — package metadata for the MCP client
↑↓ navigate openesc close