
Halowerk Mcp
io.github.halowerkPublished by GitHub account halowerkv0.1.1Updated Oct 25, 2026
134 paid APIs as MCP tools, billed per call in USDC on Base. No account, no login.
Overview
A local MCP server that exposes paid third-party APIs as tools, paying per call in USDC on Base from a wallet you supply.
- What you can do
- Browse the service catalogue and check what a planned call would cost, free and without a wallet (halowerk_katalog, halowerk_preis). In gateway mode, search services by description, read a service's input schema, then execute it (halowerk_suche, halowerk_beschreibe, halowerk_rufe_auf). Call the twelve curated everyday services, such as cost estimation, output and tool-argument validation, state storage, CVE and license checks, TLS chain and JWT checks, webhook signature checks, document diffing, web archiving and invoice auditing. Switch to all mode to reach the full set of 70 services. See the amount paid, the remaining budget and the transaction hash on every paid answer.
- When to use it
- Useful when an assistant needs occasional paid utility APIs, such as validation, security checks or document comparison, without creating an account or subscription, and you are willing to fund a small crypto wallet for it.
- Requirements
- Runs locally via npx (Node.js). Payment needs HALOWERK_PRIVATE_KEY, the private key of a wallet holding USDC on Base; without it only the free catalogue and price tools work. Optional limits: HALOWERK_BUDGET_USDC (default 1.00), HALOWERK_MAX_PREIS_USDC (default 0.05), HALOWERK_MODUS (hero, gateway or all) and HALOWERK_TROCKEN for a dry run. No ETH is needed for gas. Desktop client only.
Installation
In SourceWeft
- Open Halowerk Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
halowerk-mcp
70 paid APIs as MCP tools. No account, no login, no subscription — a throwaway wallet with a few dollars is enough.
Your spend is capped before anything is signed:
Every paid answer carries bezahlt_usdc, budget_rest_usdc and the transaction hash, so the model and you see the same numbers.
Try it without a wallet
Two tools work with no wallet and cost nothing: halowerk_katalog lists every service with its price, and halowerk_preis tells you what a planned call would cost. Install it, browse, decide later.
That goes in your Claude Desktop config (claude_desktop_config.json), Cursor's mcp.json, or Cline's MCP settings.
Paying for calls
Payment is x402 with USDC on Base. There is no account to create, no card, no invoice: the call carries a signed authorisation for the exact amount, and the service settles it.
Use a throwaway wallet
Create a fresh wallet, put a few dollars of USDC on it, use it for nothing else.
Not because this package is untrustworthy — because you have no reason to trust it yet. A key in an MCP config is a key that a model-driven process can reach. The way to make that safe is not to trust the code but to make the blast radius small: if the wallet holds three dollars, three dollars is the worst case.
You do not need ETH for gas. Payment uses EIP-3009 transferWithAuthorization, so a third party submits the transaction. A balance of exactly 0 ETH is normal and correct.
What the code does with your key
- It is read from
HALOWERK_PRIVATE_KEYand from nowhere else — no file, no argument, no prompt. - It is never logged, never put in an error message, never returned in an answer, not even truncated. There is a test for this:
npm run pruefesearches the entire output for the first eight characters of a key and fails if it finds them. src/x402.tsis about 300 lines and is the only file that touches it. It is meant to be read in five minutes.
Where your money can go
The server only ever pays the ten hosts baked into the catalogue at build time. The list is frozen in the package; it cannot be extended by a file, an environment variable or a tool argument.
This is the point of the whole design. A tool that accepts an arbitrary URL and pays for it is a payment instruction with a blank payee field. A model that reads a web page, a PDF or an email can be told, by that text, to call such a tool with an attacker's address. So:
- The target host must match the built-in list exactly. No suffix comparison —
halowerk.com.attacker.examplepasses anyendsWithcheck and is a different host. httpsonly. Redirects are not followed: a 301 to a foreign host is the attack, not an inconvenience.- No IP addresses, no
localhost, no private ranges. - On violation: refusal with the reason, before anything is signed.
halowerk_rufe_auf takes a tool name from the catalogue, never a URL.
Modes
Seventy tools at once makes the tool picker worse for everybody, especially if you have other MCP servers connected. So:
In gateway mode: halowerk_suche finds a service by description, halowerk_beschreibe returns its input schema, halowerk_rufe_auf executes it.
Why these twelve
One measure only: what does an agent need more than once in the same task? A tool used once per session can be looked up; one used ten times belongs in the toolbox. All twelve are also text in, text out — in a chat window, a tool that needs a file upload first is close to unusable.
Tiered prices — read this before you set a budget
Some services bill per unit: per audio minute, per 1000 characters, per sample point. For those, price_usdc is only the minimum.
The budget check therefore uses max_usdc, the ceiling. Checking against the minimum would approve 0.006 and pay 0.25 — the endpoint bills by length, and the length is in the request body, not in the catalogue.
If a service has no ceiling at all, it counts as unbounded and is not called without unbegrenzt_erlauben: true. A budget that checks against an unknown amount is not a budget.
What this package is not
- It is not a wallet manager. It signs payments; it never moves funds anywhere else.
- It does not create or store keys.
- It does not phone home. The only outbound requests go to the ten catalogue hosts.
- The catalogue is generated from the live services and shipped with the package. It is not fetched at runtime, so a compromised server cannot add itself to your allowlist between calls.
Development
katalog.json is generated. Never edit it by hand — regenerate and republish, otherwise the package promises a price the service does not charge.
License
MIT. See LICENSE.
Source: README.md at commit 20b0cfa
Tools
0Version history
1- v0.1.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts