# io.github.halowerk/halowerk-mcp (npm · halowerk-mcp)

134 paid APIs as MCP tools, billed per call in USDC on Base. No account, no login.

- Trust score: 79/100 (medium)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- npm · `halowerk-mcp`: 79/100 (this document), [markdown](https://verifymcp.io/servers/halowerk-halowerk-mcp/halowerk-mcp.md), [page](https://verifymcp.io/servers/halowerk-halowerk-mcp/halowerk-mcp)

## Channel facts

- Registry: `npm`
- Package: `halowerk-mcp`
- Version: `0.1.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Supply Chain Security**: 99/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 31 of 114 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 39 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4564 tokens (~326/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 83/100
  - Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 99% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the io.github.halowerk/halowerk-mcp server?

io.github.halowerk/halowerk-mcp runs locally as an npm package, launched with npx -y halowerk-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add halowerk-halowerk-mcp -- npx -y halowerk-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "halowerk-halowerk-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "halowerk-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "halowerk-halowerk-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "halowerk-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add halowerk-halowerk-mcp -- npx -y halowerk-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "halowerk-halowerk-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "halowerk-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add halowerk-halowerk-mcp --command npx --arg -y --arg halowerk-mcp
```

### Hermes

```yaml
mcp_servers:
  halowerk-halowerk-mcp:
    command: "npx"
    args: ["-y", "halowerk-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "halowerk-halowerk-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "halowerk-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add halowerk-halowerk-mcp -t stdio -c npx -a -y halowerk-mcp
```

### Other

```json
{
  "mcpServers": {
    "halowerk-halowerk-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "halowerk-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-19 (score 79, −3)

- [functional] Stability: pass → 0.80

### 2026-09-18 (score 82, +1)

- [security] Stability: 0.97 → pass

### 2026-09-16 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-14 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-12 (score 79, −3)

- [functional] Stability: pass → 0.80

### 2026-09-11 (score 82, +1)

- [security] Stability: 0.97 → pass

### 2026-09-09 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-07 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (14)

### `halowerk_katalog` (~114 tokens)

HALOWERK: Dienste auflisten

Lists every HALOWERK service with its price, hub and one-line summary. Free — no wallet needed and no payment is made. Use this first to see what is available before spending anything.

Input parameters:

- `hoechstpreis_usdc` (number): Only services whose maximum price per call is at or below this.
- `hub` (string): Only this hub, e.g. sicher, modell, medien, buero.
- `suche` (string): Only services whose name or description contain all these words.

### `halowerk_preis` (~96 tokens)

HALOWERK: Preis vorab

Returns what a planned call would cost, which amount the budget check uses, and whether it would pass the per-call cap and the session budget. Free — makes no payment. For tiered prices this reports the ceiling, not the minimum.

Input parameters:

- `koerper`: The intended request body. Optional; the estimate does not depend on it.
- `werkzeug` (string, required): Tool name from halowerk_katalog.

### `cost_estimate` (~329 tokens)

HALOWERK: Estimate token use and price for a prompt across several models before you spend

Estimate token use and price for a prompt across several models before you spend anything, including cache and batch discounts.

Kostenpflichtig: 0.002 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.002 USDC je Aufruf.

Works out what a call would cost. Give either the text itself or a token count, plus the expected output length, and get input, output, cache-read and cache-write cost per model with the total. Token counts derived from text are estimates from character and word statistics, not a tokeniser, and typically land within about 15 percent — where an exact count matters, count with the vendor tokeniser. Prices come from a table with a stated date; a model whose price has moved since is reported with its table date, so an old figure is visible rather than silently wrong. Unknown model names are refused with the closest matches rather than guessed. Preis 0.002 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `batch` (boolean): Apply the batch discount where the model has one.
- `cached_input_tokens` (integer): Of the input tokens, how many are served from cache.
- `calls` (integer): Number of identical calls to multiply by.
- `input_tokens` (integer): Known input token count. Either this or text.
- `models` (array): Model ids to price. All known models if omitted.
- `output_tokens` (integer): Expected output length in tokens.
- `text` (string): The prompt text. Either this or input_tokens.

### `output_validate` (~329 tokens)

HALOWERK: Check a model answer against a JSON schema and get every deviation named in plai

Check a model answer against a JSON schema and get every deviation named in plain language with its path, plus whether the JSON was wrapped in prose or a code fence.

Kostenpflichtig: 0.002 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.002 USDC je Aufruf.

Validates output against a JSON Schema and reports each violation with its JSON path, the rule it broke and a sentence saying what to change. Accepts either a parsed object or the raw string a model returned: a payload wrapped in a code fence or surrounded by prose is unwrapped, and the wrapping is reported separately from schema errors so you fix the right layer. Draft 2020-12 and draft-07 are both supported, along with the common string formats. Optionally the repairable problems are listed: missing fields that have a default, and unexpected extra fields. It validates structure, never truth — a document that satisfies the schema perfectly can still be factually wrong, and nothing here checks that. Preis 0.002 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `all_errors` (boolean): Report every violation instead of stopping at the first.
- `output`: The model answer, as a parsed JSON value. Either this or output_text.
- `output_text` (string): The raw answer as text. Code fences and surrounding prose are stripped.
- `schema` (object, required): JSON Schema to validate against.
- `suggest_repairs` (boolean): List repairable problems (defaultable missing fields, extra fields).

### `tool_arg_validate` (~340 tokens)

HALOWERK: Check tool arguments against their schema before an expensive or irreversible ca

Check tool arguments against their schema before an expensive or irreversible call, and get warnings for values that pass the schema but look like mistakes.

Kostenpflichtig: 0.002 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.002 USDC je Aufruf.

Two checks in one. First the arguments are validated against the tool input schema and every violation is reported with its path and a sentence saying what to change. Second, values that satisfy the schema but look wrong are flagged: an unset required field filled with a placeholder like "string" or "TODO", a number at a suspicious order of magnitude, an address that fails its checksum shape, a destructive flag set to true, an empty string where content was expected. Fields whose names suggest an irreversible effect — amounts, recipients, deletion and force flags — are held to the stricter standard. Warnings are heuristics and can be wrong in both directions: treat them as a prompt to look, not a verdict, and never as a substitute for the tool own checks. Preis 0.002 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `arguments` (object, required): The arguments about to be sent.
- `expected_magnitude` (object): Optional per-field order-of-magnitude hint, e.g. {"amount": 100}. A value more than 100x off is flagged.
- `irreversible` (boolean): Mark the call as irreversible. Raises every warning one level.
- `schema` (object, required): The tool input schema.
- `tool_name` (string): Name of the tool, carried into the report.

### `state_store` (~327 tokens)

HALOWERK: Store, read, list and delete small pieces of agent state under a namespace, with

Store, read, list and delete small pieces of agent state under a namespace, with a mandatory expiry so nothing is kept forever.

Kostenpflichtig: 0.002 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.002 USDC je Aufruf.

Key-value state for agents that need to survive between calls. Every write carries a time-to-live; the maximum is 30 days and there is no way to store something permanently. Values are opaque JSON up to 64 KB, at most 1000 live keys per namespace. Actions: set, get, list, delete. A get on a missing or expired key answers found=false, it is not an error. The namespace is a plain string chosen by the caller and is not authenticated — anyone who knows it can read it, so do not put secrets in it. Expired rows are removed on access, not on a timer, so a list can lag a few seconds behind the exact expiry moment. Preis 0.002 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `action` (string, required): What to do.
- `key` (string): Key. Required for set, get and delete.
- `limit` (integer): Maximum keys returned by list.
- `namespace` (string, required): Namespace the key lives in. Not a secret and not authenticated.
- `ttl_seconds` (integer): Lifetime in seconds, at most 30 days.
- `value`: Any JSON value. Required for set. Serialised size must stay under 64 KB.

### `cve_check` (~319 tokens)

HALOWERK: Check a package list against known vulnerabilities and get, per package, the sev

Check a package list against known vulnerabilities and get, per package, the severity breakdown and the lowest version that closes every finding.

Kostenpflichtig: 0.005 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.005 USDC je Aufruf.

Queries OSV.dev for a list of packages with versions across npm, PyPI, Go, Maven, crates.io, NuGet, RubyGems, Packagist and the Linux distributions. For each package it returns the vulnerabilities found with their identifiers, severity and summary, and the single figure that decides what to do next: the lowest version that fixes all of them, derived from the fixed-version events in the affected ranges. Findings are counted by severity and the whole list gets one worst-case verdict so a pipeline can gate on it. Severity is read from several places because databases disagree on where they put it, and the source of the rating is reported. OSV records what is published — a package with no finding is not proven safe, only unreported, and an internal or vendored package is invisible here. Preis 0.005 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `ecosystem` (string): Default ecosystem for entries that do not name one.
- `include_details` (boolean): Fetch summary and severity per finding. Off is faster but returns ids only.
- `min_severity` (string): Only report findings at or above this severity.
- `packages` (array, required): The packages to check.

### `license_check` (~310 tokens)

HALOWERK: Resolve package licences and classify them for commercial use: which force discl

Resolve package licences and classify them for commercial use: which force disclosure, which only need attribution, and which are unknown.

Kostenpflichtig: 0.002 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.002 USDC je Aufruf.

Looks up the declared licence of each package through deps.dev and sorts the result by the only question that matters for a closed, sold product: what does this licence demand. Permissive licences need attribution. Weak copyleft affects changes to the library itself. Strong copyleft can force disclosure of the whole work on distribution. Network copyleft such as AGPL and SSPL bites on operating the software as a service, which is the sharpest case for a paid API. Multi-licence expressions are handled by their operator — with OR the mildest applies because you may choose, with AND the strictest does. Packages whose licence is undeclared or outside the table are reported as unknown instead of assumed harmless. This is a classification to triage with, not legal advice, and the licence deps.dev records is what the package declared, which is not always what its files say. Preis 0.002 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `ecosystem` (string): Default ecosystem.
- `packages` (array, required): Packages to check.
- `usage` (string): How you use the code. saas = operated as a network service, which is what triggers AGPL.

### `tls_chain` (~309 tokens)

HALOWERK: Read the TLS certificate chain of a host: every certificate with its names, vali

Read the TLS certificate chain of a host: every certificate with its names, validity, key type and signature, plus expiry warnings and whether the hostname is actually covered.

Kostenpflichtig: 0.002 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.002 USDC je Aufruf.

Opens a TLS connection and reports the chain the server presents. Per certificate: subject and issuer, validity window with days remaining, serial, SHA-256 fingerprint, key type and size, and the subject alternative names. Above that it answers the questions a monitor asks: is the requested hostname covered by the leaf certificate including wildcard rules, how many days until the nearest expiry, is any certificate self-signed or signed with a weak algorithm, does the server send its intermediates or leave the client to find them — a chain that validates in a browser can still fail in a language runtime that does not fetch missing intermediates. The negotiated protocol version and cipher are reported. It connects to the host itself, so there is no third-party dependency and no rate limit. Preis 0.002 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `host` (string, required): Hostname or https URL, e.g. example.com.
- `port` (integer): TLS port.
- `servername` (string): SNI name if it differs from host.
- `warn_days` (integer): Warn when a certificate expires within this many days.

### `jwt_verify` (~392 tokens)

HALOWERK: Verify a JWT signature and claims, and name the classic token attacks explicitly

Verify a JWT signature and claims, and name the classic token attacks explicitly: alg none, HMAC confusion, unbounded lifetime, missing audience.

Kostenpflichtig: 0.002 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.002 USDC je Aufruf.

Decodes a JWT and checks it in two layers. Structure and claims: expiry, not-before and issued-at against the current time with the clock skew you allow, issuer and audience against the values you expect, and the token lifetime. Signature: HMAC with a shared secret, or RSA, RSA-PSS and ECDSA against a PEM key or a JWKS you point at, with the kid matched to the right key. On top of that it names the attacks that live in this exact spot: alg set to none, an HMAC algorithm where an asymmetric key is expected which is the classic key-confusion path, a token with no expiry at all, and an audience that does not name you. Without a key or secret the token is decoded and its claims judged, and the signature is reported as unverified rather than assumed good. Preis 0.002 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `clock_skew_seconds` (integer): Tolerance for exp and nbf.
- `expected_audience` (string): Audience the token must name.
- `expected_issuer` (string): Issuer the token must carry.
- `jwks_url` (string): JWKS endpoint; the key is picked by kid.
- `max_lifetime_seconds` (integer): Flag tokens valid for longer than this.
- `public_key_pem` (string): PEM public key for RS/PS/ES algorithms.
- `secret` (string): Shared secret for HS256/384/512.
- `token` (string, required): The JWT in compact form.

### `webhook_signature` (~391 tokens)

HALOWERK: Verify a signed webhook from GitHub, Stripe, Shopify, Slack, Svix or a plain HMA

Verify a signed webhook from GitHub, Stripe, Shopify, Slack, Svix or a plain HMAC scheme, with the timestamp window checked where the provider signs one.

Kostenpflichtig: 0.002 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.002 USDC je Aufruf.

Providers each build their signing string differently — some sign only the body, others prepend a timestamp, an id, or a version marker in a fixed order — and getting that order wrong produces a mismatch that looks exactly like an attack. This checks the signature the way the named provider actually specifies, with constant-time comparison, and returns the string that was signed so a mismatch can be debugged instead of guessed at. Where the provider signs a timestamp, it is checked against a tolerance window, because a signature valid forever lets any captured delivery be replayed. The body must be passed exactly as received, byte for byte: a re-serialised JSON payload has different bytes and will never match, which is the single most common cause of a failed check and is called out when the body looks reformatted. Preis 0.002 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `body` (string, required): The raw request body exactly as received, not re-serialised.
- `headers` (object): All request headers; the right one is picked by provider.
- `message_id` (string): Message id for schemes that sign one, e.g. Svix.
- `provider` (string, required): Which provider signed the request.
- `secret` (string, required): The signing secret.
- `signature` (string): The signature header value. Required unless headers is given.
- `timestamp` (string): Timestamp, if the provider signs one and it is not in the headers.
- `tolerance_seconds` (integer): How old a signed timestamp may be.

### `doc_diff` (~512 tokens)

HALOWERK: Compares two versions of a document — PDF, DOCX, ODT, HTML, Markdown or plain te

Compares two versions of a document — PDF, DOCX, ODT, HTML, Markdown or plain text — and returns which paragraphs were removed, added or reworded, with a word-level diff inside every reworded paragraph and a symmetric similarity score.

Kostenpflichtig: 0.002 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.002 USDC je Aufruf.

Takes two documents, by URL, inline base64 or raw text, extracts the text of each and compares them. Paragraphs are the unit: the answer lists every block that was removed, added, or kept but reworded, and for reworded blocks it names the individual words that went and came, so a single changed number in a long clause is visible instead of the whole clause being flagged. Alongside the content diff a structural comparison reports headings, paragraph, list and table-line counts on both sides. The similarity score is deliberately symmetric — two times the shared words divided by the sum of both lengths — because a one-sided measure would rate a heavily shortened document as almost unchanged. Both sides are measured the same way over the same units; if the two inputs arrive in different formats, so that one text comes out of a PDF and the other out of a DOCX, that is reported as a caveat, because part of any structural difference then comes from the extraction path and not from the documents. Ordering and duplicate paragraphs are handled by a shortest-edit-script diff, not by set comparison. What this endpoint does not do is judge: it says what changed, never whether the change is favourable, material or lawful. Preis 0.002 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `a` (object, required): The earlier version. Exactly one of url, content_base64 or text.
- `b` (object, required): The later version. Same shape as a.
- `block_char_limit` (integer): Longer block texts are shortened in the answer; the diff itself always runs on the full text.
- `ignore_case` (boolean): Compare case-insensitively.
- `ignore_whitespace` (boolean): Treat runs of spaces and tabs as one space before comparing.
- `include_unchanged` (boolean): Also list the unchanged blocks. Off by default — the changes are the answer.
- `max_blocks_returned` (integer): Ceiling on returned blocks. What is dropped is counted and reported, never silently cut.

### `web_archive` (~362 tokens)

HALOWERK: List archived versions of a URL with dates, status codes and content changes, an

List archived versions of a URL with dates, status codes and content changes, and get the snapshot closest to any date you name.

Kostenpflichtig: 0.005 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.005 USDC je Aufruf.

Queries the Internet Archive for the captured versions of a URL and returns them with capture time, HTTP status, MIME type and content digest, oldest and newest first. Because consecutive captures share a digest when nothing changed, the versions where the content actually differed are marked — that is the list worth reading, not the raw capture log. A target date returns the nearest snapshot with the gap in days, which is what a citation of a page as it stood on a given day needs. Captures that returned an error at the time are separated from successful ones, so a run of 404s reveals when a page disappeared. The CDX index is the complete source but goes down regularly; when it does, the availability endpoint answers with the closest capture and the degraded state is reported rather than passed off as an empty history. Preis 0.005 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `changes_only` (boolean): Only captures whose content differed from the previous one.
- `from_date` (string): Earliest capture to list (YYYY-MM-DD).
- `include_errors` (boolean): Include captures that recorded an HTTP error.
- `limit` (integer): How many captures to return.
- `target_date` (string): Find the snapshot closest to this date (YYYY-MM-DD or ISO).
- `to_date` (string): Latest capture to list (YYYY-MM-DD).
- `url` (string, required): The URL to look up.

### `invoice_audit` (~434 tokens)

HALOWERK: Recompute an invoice from its line items: totals, tax per rate, discounts and ro

Recompute an invoice from its line items: totals, tax per rate, discounts and rounding, and report every deviation with the exact amount.

Kostenpflichtig: 0.002 USDC je Aufruf. Bezahlt per x402 auf Base, ohne Konto.
Hoechstens 0.002 USDC je Aufruf.

Rebuilds an invoice from its lines and compares the result with the stated totals. Line by line it checks quantity times unit price against the line total, applies line and document discounts in the right order, groups the net amounts by tax rate and computes the tax per group, then compares net, tax and gross with what the document claims. All arithmetic runs in whole cents, because adding decimal amounts as floating point produces cent-level noise that reads like an error by the issuer when it is an error by the checker. Rounding differences up to one cent per tax group are reported separately from real discrepancies. It also checks the formal side: a due date before the invoice date, a tax rate that is not one of the country standard rates, a negative line without a credit-note marker, and a missing VAT number where the reverse charge is claimed. Preis 0.002 USDC je Aufruf, Abrechnung über x402.

Input parameters:

- `country` (string): Country whose standard rates the tax rates are checked against.
- `currency` (string)
- `customer_vat_number` (string): Customer VAT number, required for the reverse charge.
- `default_tax_rate` (number): Tax rate for lines that do not carry one.
- `document_discount_pct` (number): Discount on the whole document, applied after line discounts.
- `due_date` (string): Due date as YYYY-MM-DD.
- `invoice_date` (string): Invoice date as YYYY-MM-DD.
- `lines` (array, required): The invoice lines.
- `reverse_charge` (boolean): Whether the invoice claims the reverse charge.
- `stated_gross` (number): Gross total as stated.
- `stated_net` (number): Net total as stated on the invoice.
- `stated_tax` (number): Tax total as stated.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/halowerk-halowerk-mcp/halowerk-mcp#diagnostics

## Score history

- 2026-09-20: 79
- 2026-09-19: 79
- 2026-09-18: 82
- 2026-09-17: 81
- 2026-09-16: 81
- 2026-09-15: 80
- 2026-09-14: 80
- 2026-09-13: 79
- 2026-09-12: 79
- 2026-09-11: 82
- 2026-09-10: 81
- 2026-09-09: 81
- 2026-09-08: 80
- 2026-09-07: 80
- 2026-09-06: 79
- 2026-09-05: 79
- 2026-09-04: 79
- 2026-09-03: 78
- 2026-09-02: 78
- 2026-09-01: 77
- 2026-08-31: 77
- 2026-08-30: 76
- 2026-08-29: 76
- 2026-08-28: 75
- 2026-08-27: 75
- 2026-08-26: 74
- 2026-08-25: 73
- 2026-08-24: 72
- 2026-08-23: 72
- 2026-08-22: 71

## Common questions

### What is the io.github.halowerk/halowerk-mcp server?

io.github.halowerk/halowerk-mcp is listed in the public MCP registry as io.github.halowerk/halowerk-mcp. 134 paid APIs as MCP tools, billed per call in USDC on Base. No account, no login. This page covers its npm package (halowerk-mcp).

### Is the io.github.halowerk/halowerk-mcp server safe to use?

io.github.halowerk/halowerk-mcp scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.halowerk/halowerk-mcp server expose?

io.github.halowerk/halowerk-mcp exposes 14 tools: halowerk_katalog, halowerk_preis, cost_estimate, output_validate, tool_arg_validate, and 9 more. Their descriptions and schemas cost roughly 4,564 tokens of context every time the server is loaded.

### Is the io.github.halowerk/halowerk-mcp server still maintained?

io.github.halowerk/halowerk-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the io.github.halowerk/halowerk-mcp server under?

io.github.halowerk/halowerk-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/halowerk-mcp
- Socket report: https://socket.dev/npm/package/halowerk-mcp
- Repository: https://github.com/halowerk/halowerk-mcp
- Changelog RSS feed: https://verifymcp.io/servers/halowerk-halowerk-mcp/halowerk-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/halowerk-halowerk-mcp/halowerk-mcp.json
- HTML version of this page: https://verifymcp.io/servers/halowerk-halowerk-mcp/halowerk-mcp
