Atlas / MCP servers / iseppo / e-arveldaja-mcp

e-arveldaja-mcpBLOCK

mcp/iseppo/e-arveldaja-mcp

Experimental MCP server for Estonian e-arveldaja (RIK e-Financials) API. Not affiliated with RIK. Use at your own risk.

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
7 5r · 2w · 0d
Transport
stdio
License
Apache-2.0
Stars
38
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://www.npmjs.com/package/e-arveldaja-mcp)

MCP server for the Estonian e-arveldaja (RIK e-Financials) REST API. 127 tools on the compatibility-preserving standard profile, 16 workflow prompts, 15 resources. Works with any MCP client — Claude Code, Codex CLI, Gemini CLI, Cursor, Windsurf, Cline, and others.

Year-end close now follows RIK's method (0.26.0, behaviour change). execute_year_end_close no longer zeroes revenue and expense accounts into 2970 (that broke e-arveldaja's own income statement). It books RIK's two entries from the guide "Äriühingu majandusaasta lõpetamiskanded e-arveldajas": D 9000 "Arvestuslik koondtulemus" / K 2970 on 31 December and D 2970 / K 2960 (optionally part to reserve capital) on 1 January. Entries you already booked by hand — under any document number, on 1 January or later in the next year, plus the old YECL-YYYY closes — are detected and never booked twice; a partial, reversed, duplicate or mismatched entry is reported for manual review. Also in 0.26.0: the month-end checklist evaluates overdue invoices as of today while the month is open, attach_document refuses to replace an existing source document unless replace_existing: true, Lightyear sells book the cash the statement shows, and Wise import no longer changes confirmed purchase invoices. See the changelog for full details. ⚠️ Action required if you used v0.22.0 (incoming transactions booked backwards). A high-severity regression in 0.22.0 forced every newly created bank transaction to the "money out" direction, so incoming entries — owner deposits, customer receipts, refunds, and incoming inter-account transfers — were booked backwards (cash on the wrong side, moving the balance by twice the amount the wrong way). The ledger still balanced, so nothing errored. It is fixed in 0.22.1. If you ran an e-arveldaja-mcp session while 0.22.0 was curre
Read from source at commit dacb47c91e3aOBSERVED · 2026-10-12
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add e-arveldaja-mcp --env EARVELDAJA_API_KEY_ID=${EARVELDAJA_API_KEY_ID} --env EARVELDAJA_API_PUBLIC_VALUE=${EARVELDAJA_API_PUBLIC_VALUE} --env EARVELDAJA_API_PASSWORD=${EARVELDAJA_API_PASSWORD} -- npx -y [email protected]
03

Exposed tools (7)

5 read · 2 write · 0 destructive.

ToolRiskDescription
LHVwriteTransfer from LHV
OpenAIreadSubscription
PayeereadPayment
PayerreadInvoice 5
SEBwriteWISE:T109 Transfer to SEB [source_direction=OUT]
Vendorreaddesc
WisereadWise teenustasu
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (3 observation(s))
Network
declared (3 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (13)

HIGHPrompt injection · prompt.hide_from_user · CWE-94, CWE-1427
.claude/commands/import-camt.md:125
For possible-duplicate follow-ups, group similar duplicate decisions, show the first items plus counts, then propose one batch-friendly inline action set using the duplicate handling above. Do not tel
Why it matters. asks the agent to act without the user's knowledge
HIGHPrompt injection · prompt.hide_from_user · CWE-94, CWE-1427
workflows/import-camt.md:92
For possible-duplicate follow-ups, group similar duplicate decisions, show the first items plus counts, then propose one batch-friendly inline action set using the duplicate handling above. Do not tel
Why it matters. asks the agent to act without the user's knowledge
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
src/plan-store.test.ts:331
const secret = "RAW_SCOPE_GETTER_SECRET";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/accounting-rules.test.ts:763
expect(readAccountingKnowledgeConcept("auto-booking/../../secret.md")).toBeUndefined();
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/banking/reconciliation/amount-resolution.ts:1
import type { Transaction } from "../../types/api.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/banking/reconciliation/amount-resolution.ts:2
import { roundMoney } from "../../money.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/banking/reconciliation/amount-resolution.ts:3
import { toCents, centsEqual, centsWithinTolerance, ONE_CENT } from "../../money-cents.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/banking/reconciliation/compact-routing.test.ts:2
import { registerBankReconciliationTools } from "../../tools/bank-reconciliation.js";
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@llamaindex/liteparse, @modelcontextprotocol/sdk, @toon-format/toon, dotenv, fast-xml-parser, fastest-levenshtein, zod, @babel/parser
Why it matters. 13 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
CHANGELOG.md:788
- **Cross-process write lock for shared bundles** — a single rule write touches three files (the concept, `log.md`, and a regenerated `index.md`). When several MCP clients share one `EARVELDAJA_RULES_
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
CHANGELOG.md:876
- **Claude Code MCP transport still dropped on fast paginated tools after 0.12.3** — the 100 ms throttle introduced in 0.12.3 only suppressed the *second and later* `reportProgress` calls within an in
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
README.md:111
By default these rules are stored as an [Open Knowledge Format](https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md) bundle — a directory of Markdown files (one concept per
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOPrompt injection · prompt.conditional_escalation · CWE-94, CWE-1427
AGENTS.md:62
- If the user says to pull first, run `git pull` from the actual repo root before reviewing or changing code.

Gates applied: instruction_override, no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha dacb47c91e3afull audit observations/trust-audit/mcp-server/iseppo__e-arveldaja-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12dacb47c91e3aBLOCKD69first audit
06

Questions

What is the e-arveldaja-mcp MCP server?

Experimental MCP server for Estonian e-arveldaja (RIK e-Financials) API. Not affiliated with RIK. Use at your own risk.

What tools does e-arveldaja-mcp expose?

7 in total: 5 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is e-arveldaja-mcp safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does e-arveldaja-mcp need?

It reads EARVELDAJA_API_KEY_FILE, EARVELDAJA_API_KEY_ID, EARVELDAJA_API_PASSWORD, EARVELDAJA_API_PUBLIC_VALUE and EARVELDAJA_LITEPARSE_PASSWORD from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does e-arveldaja-mcp run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as e-arveldaja-mcp at 0.28.1.

How current is this page?

The grade is for one exact copy of the source (dacb47c91e3a), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement