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
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 36 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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.
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
claude mcp add lukasschwarz-elster-mcp-server -- npx -y elster-mcp-server
codex mcp add lukasschwarz-elster-mcp-server -- npx -y elster-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"lukasschwarz-elster-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"elster-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add lukasschwarz-elster-mcp-server --command npx --arg -y --arg elster-mcp-server
mcp_servers:
lukasschwarz-elster-mcp-server:
command: "npx"
args: ["-y", "elster-mcp-server"] {
"mcpServers": {
"lukasschwarz-elster-mcp-server": {
"command": "npx",
"args": [
"-y",
"elster-mcp-server"
]
}
}
} 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.
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.
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.
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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | — | Optional 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. |
| year | integer | yes | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | yes | Map of field names to numeric amounts. Supported fields: betriebseinnahmen, kfzPrivatNutzung, fahrzeugkosten, kfzSteuer, telekommunikation, versicherungen, bewirtung, reisekosten, bankgebuehren, frem… |
| year | integer | yes | — |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | — |
No output schema declared.
No examples provided.
elster_sync_history ~48
Reads "Übermittelte Formulare" (transmission history) from ELSTER. Optionally downloads PDFs.
| Name | Type | Req | Description |
|---|---|---|---|
| downloadPdfs | boolean | — | — |
| years | array | — | — |
No output schema declared.
No examples provided.
elster_sync_inbox ~46
Reads ELSTER inbox messages ("Posteingang"). Optionally downloads each message as PDF.
| Name | Type | Req | Description |
|---|---|---|---|
| downloadPdfs | boolean | — | — |
| maxPages | integer | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| contactName | string | — | — |
| description | string | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| period | integer|string | yes | Month (1-12) or quarter as "Q1".."Q4" |
| report | object | yes | Map 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. |
| year | integer | yes | Tax 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.
| Name | Type | Req | Description |
|---|---|---|---|
| period | integer|string | yes | Month (1-12) or "Q1".."Q4" |
| report | object | yes | Map of Kennziffer → amount in EUR (bare digit keys, e.g. "81":12345.67). |
| year | integer | yes | — |
No output schema declared.
No examples provided.