passwerk MCP server
io.github.ShahriarBijoy/passwerk·v0.1.1Offline EU Battery Passport compiler: ingest documents, map, validate (IDTA 02035), emit AASX.
0 stars49 downloads/wk
Reviews
Write oneNobody has reviewed passwerk yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
passwerk tools (12, 1 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
apply_mappingsFolds accepted mapping decisions (or manual values) into a PassportDraft. Idempotent: the same decision twice is a no-op; a different value for an attribute that already has one is reported as a conflict and not applied unless override is true. Pass meta instead of draft to start a new draft.
check_obligationsWhether a battery passport is required for a battery type, role, energy and market date under Regulation (EU) 2023/1542 Article 77(1); returns the category, the mandatory, conditional and deferred attribute sets and the legal timeline. Answers required, not_required or insufficient_input. Not legal advice.
emit_passportEmits a PassportDraft as AAS JSON (IDTA 02035 submodels), an AASX package, the draft JSON and/or the HTML sheet, and re-validates the emitted output. Fail-honest: files are returned even when the verdict is invalid, and the verdict is never better than validate_passport’s. Bytes come back base64 inline unless outDir is given.
explain_attributeEverything the knowledge base holds about one passport attribute (official DIN definition, DE/EN explanation, synonyms, who typically has the data, unit, range, applicability per category, legal references, IDTA template elements) or one plausibility rule (message, fix hint, legal reference). Nothing is composed; unknown ids are an error.
extract_factsTurns a DocumentBundle into a FactSet: labelled values with normalised numbers, units and dates, each with file, page, line or cell provenance. Pure heuristics, no model. Returns the FactSet and a factSetId to pass to suggest_mappings.
gap_reportThe to-do list for a PassportDraft: every attribute bucketed as required, conditional, deferred or optional with status, legal references, who typically has the data and a suggested action; completeness for mandatory and overall data points, grouped by submodel and by data owner. Runs validate_passport first so invalid values count as gaps. Ask for detail "full" and a status/bucket filter to see e
generate_carrierBuilds the data carrier for a passport: the unique identifier (the draft’s passportId, an absolute https URI), an optional GS1 Digital Link (/01/{gtin}/21/{serial} or /8004/{giai}) and the QR code as SVG or PNG. The QR encodes the Digital Link when GS1 data is given, else the identifier. Says nothing about validity; validate_passport does.
ingest_documentsReads PDF, XLSX, CSV, DOCX and TXT documents into a DocumentBundle with page, line, table and cell provenance, deterministically and without OCR or a model. Returns a per-document summary and a bundleId to pass to extract_facts; ask for detail "full" to see the pages. Unsupported or unreadable files are reported, not dropped.
list_capabilitiesVersions of the bundled IDTA 02035 templates and AAS schemas, knowledge-base statistics, when the artefacts were retrieved, the sovereignty statement, and this server’s tools and session-store usage. Call first to learn what this server can do.
review_passportOpens the interactive passwerk workbench in hosts that render MCP Apps (Claude Desktop, Claude web): upload documents, accept or edit mapping proposals, read the gap report and export, all on the user’s machine. Pass the current draft so the user reviews it visually; the workbench keeps the draft id in sync so gap_report and emit_passport can continue on it. Hosts without a UI receive the same dra
suggest_mappingsScores every fact against the knowledge-base synonym index (DE/EN), unit and type checks and the attribute range, and returns candidate mappings sorted by confidence with a DE/EN explanation and provenance. Review proposals under 0.7 with the user or the source page, then pass the accepted ones to apply_mappings. Ask for detail "full", or pass attributeIds, to see every candidate with its file, pa
validate_passportwrite actionRuns all four validation layers on a PassportDraft: L1 schema, L2 AAS meta-model (aas-core), L3 IDTA 02035 template conformance, L4 domain plausibility. Returns the verdict (valid, valid_with_warnings, invalid) and every finding with layer, rule id, path, DE/EN message, legal reference and fix hint. The only source of a validity claim.
Public scan report
scanner v0.1.10 · 2026-10-03 · same rubric, same numbers if you re-run it
- Code scan63 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 18 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How passwerk compares
Against every graded Maps and travel MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 95% of 681 Maps and travel servers
- Tools
- 12
- the typical Maps and travel server has 6
- Tools that change things
- 8%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 49
- more than 42% of 150 Maps and travel servers with a package
What its tools let an agent do: 9 read · 1 create · 1 change · 1 run or deploy
Install passwerk in Claude Code, Cursor or VS Code
Runs npx -y @passwerk/server on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add passwerk -- npx -y @passwerk/server
What the publisher says
From the passwerk repository's README, as published. We do not edit it. Read it on GitHub
Passwerk
Offline EU Battery Passport Compiler.
Drop in a supplier's messy documents (BOMs, Excel exports, energy bills, supplier declarations). Get back a conformant Digital Battery Passport in the official AAS format (IDTA 02035-1 to -7) plus a legally cited gap report of what is still missing.
100 % offline. Zero API keys. Agent-agnostic: an MCP server for Claude Desktop, Claude Code, Codex, Cursor and OpenCode, a scriptable CLI, a plain TypeScript library, and a client-side web app with QR preview.
Claude Desktop with the .mcpb bundle: the model ingests the Musterwerk documents, maps and validates, then opens the workbench inside the chat. Full-resolution MP4, 71 seconds.
Quick start
Let your agent install it. Paste this into Claude Code, Codex, Cursor, OpenCode or any other coding agent. It checks Node, picks the right commands for its host, installs passwerk and tells you how to check that it works:
Install passwerk for me by following
https://raw.githubusercontent.com/ShahriarBijoy/passwerk/main/docs/install/agent.mdOr run the commands yourself (Node >= 22.13):
Start a new session afterwards, then ask the agent to call list_capabilities.
Claude Desktop: download passwerk-.mcpb from the releases page and open it. Claude Desktop installs the server, asks for your document folder, and the twelve passwerk tools are ready after a restart. Details in docs/install/claude-desktop.md.
Everything else:
npx -y @passwerk/server # MCP server over stdio, offline, no keys
npx -y @passwerk/cli audit passport.draft.json
docker run -e PASSWERK_AUTH_TOKEN=$(openssl rand -hex 32) -p 127.0.0.1:3777:3777 ghcr.io/shahriarbijoy/passwerkHost snippets for Codex, Cursor, OpenCode and plain HTTP are in docs/install. The agent workflow (ingest, map, validate, fix, emit) is taught by the bundled skill in skills/passwerk.
Why
Regulation (EU) 2023/1542, Art. 77: from 18 February 2027 every EV, light-means-of-transport and industrial >2 kWh battery placed on the EU market needs a Digital Battery Passport. The passport is roughly 90 data points scattered across a supplier's ERP, spreadsheets and PDFs. Every commercial platform sells to OEMs and Tier-1s. passwerk is the on-ramp for the Tier-2 and Mittelstand supplier who receives the data request and has no tooling to answer it.
Conformance is measured, not asserted. Every emitted golden passport is replayed through the official aas-test-engines oracle on every CI run (docs/CONFORMANCE.md); the badge reports verdict parity with that oracle, expected failures included. Mapping quality on unseen supplier documents is scored in docs/EVALUATION.md. A sovereignty test and a --network none Docker job prove zero network calls. None of this is a certification of battery-passport compliance; the template (L3) and plausibility (L4) checks are passwerk's own.
Packages
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
passwerk: common questions
- Is passwerk MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the passwerk safety report
- How do I install passwerk?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does passwerk need an API key?
- No secret keys are declared. It reads 2 settings from the environment.
- Is passwerk maintained?
- The last commit was 50 days ago (2026-09-15). The latest release is v0.1.1.
- What can I use instead of passwerk?
- Servers from other publishers that do the same job: SpecLeft MCP server, Repo Graph MCP server and Agentmap MCP server.
- How does passwerk compare with other Maps and travel MCP servers?
- safety score 92/100 (higher than 95% of 681 Maps and travel servers); tools 12 (the typical Maps and travel server has 6); tools that change things 8% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to passwerk
Same job from other publishers: the closest match first, then the best rated.
- SpecLeftPython intent tracing MCP: map specs to pytest tests, monitor implementation progress, offline-only.not reviewedGrowingB
- Repo GraphStructural graph map of any codebase so LLMs navigate by structure, not guesswork.not reviewedGrowingA
- AgentmapThe TS/JS-accurate repo map for coding agents: ts-morph import/symbol/call graph + MCP query toolsnot reviewedGrowingA
- Infranodus InfranodusMap text into knowledge graphs to create a structured representation of conceptual relations and t…not reviewedGrowingA
- OpenchargemapFind EV charging stations, detail, and reliability check-ins via the global Open Charge Map.not reviewedGrowingA