Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.lukasschwarz/elster-mcp-server

NPM · ELSTER-MCP-SERVER · SCANNED AUG 3

Drive the German tax portal ELSTER via Puppeteer: submit UStVA, prepare EUER/ESt, sync inbox.

Available components

+10 this week 53 Trust /100
Trust breakdown (6 categories)

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. How we score →

Supply Chain Security70
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects @modelcontextprotocol/sdk 0.6.1, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (115 of 116), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability71
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 1020 tokens (~72/item across 14 items; 14 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage79
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 37% of tool parameters carry a description.Partial
Capabilities20
  • Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · elster-mcp-server

# add to Claude Code
claude mcp add lukasschwarz-elster-mcp-server -- npx -y elster-mcp-server
# add to Codex CLI
codex mcp add lukasschwarz-elster-mcp-server -- npx -y elster-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "lukasschwarz-elster-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "elster-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add lukasschwarz-elster-mcp-server --command npx --arg -y --arg elster-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  lukasschwarz-elster-mcp-server:
    command: "npx"
    args: ["-y", "elster-mcp-server"]
// mcp.json
{
  "mcpServers": {
    "lukasschwarz-elster-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "elster-mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +34
    • CVE-2025-66414 affects this package: high security
    • Provenance: unverified → fail security
    • Known CVEs: unverified → fail security
    • Install scripts: unverified → pass security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • MCP protocol: unverified → fail functional
    • Tool coverage: 100 → unverified functional
    • License: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Maintenance: unverified → pass functional
    • Schema quality: unverified → good functional
    • First check of Schema quality: unverified functional
    • Licence: MIT functional
  • 31 Jul 26 −24
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 43

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-w48q-cv73-mx4w CVE-2025-66414 high yes
Dependencies 115 packages

115 packages in the resolved dependency tree · 113 deprecated · 35 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 14 exposed · ~1,020 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
elster_config_show ~36

Shows the currently loaded ELSTER configuration (with secrets redacted) so you can verify env vars / config.json were picked up.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

elster_est_start ~119

Starts an ESt 1 A (Einkommensteuererklärung) form-prep session. Opens the form, fills taxpayer basics from config + any extra fields you provide (by ELSTER input id/name hint), runs Prüfung, then waits 30 min for you to review in the portal. NEVER submits.

NameTypeReqDescription
dataobjectOptional map of field-id hints → values. Each key is matched against ELSTER input id/name as substring. Use empty {} to only fill taxpayer basics from config.
yearintegeryes

No output schema declared.

No examples provided.

elster_eur_start ~168

Starts an EÜR (Anlage Einnahmen-Überschuss-Rechnung) form-prep session. Fills the form up to Prüfung, then tries to "Speichern und Verlassen" so the draft survives in ELSTER. NEVER submits.

NameTypeReqDescription
dataobjectyesMap of field names to numeric amounts. Supported fields: betriebseinnahmen, kfzPrivatNutzung, fahrzeugkosten, kfzSteuer, telekommunikation, versicherungen, bewirtung, reisekosten, bankgebuehren, frem…
yearintegeryes

No output schema declared.

No examples provided.

elster_kennziffern_list ~55

Returns the list of supported UStVA Kennziffern (codes 81, 86, 66 etc.) with descriptions and whether they are NET (base amount) or TAX (tax amount).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

elster_login_test ~42

Verifies that the configured certificate + password can log into the ELSTER portal. Returns success and final URL or an error. Use this once before submitting anything.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

elster_session_cancel ~35

Cancels a running session (closes the browser, marks status as CANCELLED).

NameTypeReqDescription
sessionIdstringyes

No output schema declared.

No examples provided.

elster_session_list ~30

Lists all currently tracked sessions (USTVA / EUR / EST / SYNC) with their status.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

elster_session_status ~53

Returns the current status, progress log, and any screenshot path for a session started via elster_ustva_start / elster_eur_start / elster_est_start.

NameTypeReqDescription
sessionIdstringyes

No output schema declared.

No examples provided.

elster_sync_history ~48

Reads "Übermittelte Formulare" (transmission history) from ELSTER. Optionally downloads PDFs.

NameTypeReqDescription
downloadPdfsboolean
yearsarray

No output schema declared.

No examples provided.

elster_sync_inbox ~46

Reads ELSTER inbox messages ("Posteingang"). Optionally downloads each message as PDF.

NameTypeReqDescription
downloadPdfsboolean
maxPagesinteger

No output schema declared.

No examples provided.

elster_ustva_confirm ~55

Confirms submission of a UStVA session that is in AWAITING_CONFIRM state. Triggers the final "Absenden" click. Returns the transmission ticket on success.

NameTypeReqDescription
sessionIdstringyes

No output schema declared.

No examples provided.

elster_ustva_detect_reverse_charge ~69

Tests whether a voucher would be detected as Reverse-Charge (§13b UStG) based on the configured supplier patterns. Returns matched supplier and region (EU / NON_EU), or null.

NameTypeReqDescription
contactNamestring
descriptionstring

No output schema declared.

No examples provided.

elster_ustva_generate_xml ~135

Generates an ELSTER UStVA XML snapshot for archiving. Does NOT submit (submission goes via elster_ustva_start). Useful for audit trails.

NameTypeReqDescription
periodinteger|stringyesMonth (1-12) or quarter as "Q1".."Q4"
reportobjectyesMap of Kennziffer → amount in EUR. Keys are the bare 2-3 digit code (e.g. "81", "66"). Net amounts for NET-type codes, tax amounts for TAX-type codes.
yearintegeryesTax year, e.g. 2026

No output schema declared.

No examples provided.

elster_ustva_start ~129

Starts a UStVA submission session. Opens a browser, logs in, fills the form, runs Prüfung, then PAUSES at AWAITING_CONFIRM. You must explicitly call elster_ustva_confirm to send. Returns a sessionId — poll status via elster_session_status.

NameTypeReqDescription
periodinteger|stringyesMonth (1-12) or "Q1".."Q4"
reportobjectyesMap of Kennziffer → amount in EUR (bare digit keys, e.g. "81":12345.67).
yearintegeryes

No output schema declared.

No examples provided.