passwerk
Offline EU Battery Passport compiler: ingest documents, map, validate (IDTA 02035), emit AASX.
Connector by ShahriarBijoy · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying passwerk?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/shahriarbijoy-passwerk
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 10 read · 5 write · 0 delete
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 15
Read from the source code; the running server may list different tools.
Read 10 · Look things up without changing anything.
check_obligationsexplain_attributeextract_factsgap_reportingest_documentslist_capabilitiesreview_passportslow_echosuggest_mappingsvalidate_passport
Write 5 · Create, change, send or run things.
apply_mappingscreate_uploademit_passportgenerate_carrierrun_series
Secrets and settings it asks for
Other settings (environment variables or headers).
PASSWERK_LOG_LEVELPASSWERK_ROOT
Files it touches
- Any path the agent passes to its tools
Tools (15)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
apply_mappingsApply mapping decisionsFolds 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_obligationsCheck battery passport obligationsread-onlyWhether 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.
create_uploadOpen an upload slot for supplier documents of one battery model. Returns a PUT URL valid for 15 minutes and a curl command: run it once per local file from a shell, so the file bytes go straight to the server and never through the conversation. Then call run_series with { upload: uploadId, category }. A slot holds at most 20 files (.pdf .xlsx .docx .csv .txt), 10 MB each and 40 MB in all, and is used once.
emit_passportEmit the passport filesEmits 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_attributeExplain an attribute or ruleread-onlyEverything 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_factsExtract factsread-onlyTurns 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_reportGap reportread-onlyThe 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 every open attribute with its legal reference and next action, unabridged, for use without the structured content. Not legal advice.
generate_carrierGenerate the data carrier (QR code)Builds 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_documentsIngest supplier documentsread-onlyReads 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_capabilitiesList capabilitiesread-onlyVersions 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_passportReview a passport in the workbenchread-onlyOpens the interactive passwerk workbench in hosts that render MCP Apps (Claude Desktop, Claude web, the ChatGPT desktop app): 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 draft, validation report and gap report as text.
run_seriesRun battery models as one MCP task: every model goes through ingest, extract, suggest, apply, validate and emit. Give exactly one source: `series` (a demo series on the server), `upload` (an uploadId from create_upload, after the files were PUT; all its files are one model) or `documents` (inline base64 files, at most 1 MB in all, only for hosts without a shell). When the server reads documents with AI, values it is not sure enough to apply on its own are held. With `confirm: "ask"` (the default) the task asks the user about them in a dialog before it finishes; use `confirm: "hold"` in non-int…
slow_echoWait the given number of seconds (1 to 120), then return the text. Runs as an MCP task.
suggest_mappingsSuggest attribute mappingsread-onlyScores 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, page and cell in the text.
validate_passportValidate a passport draftread-onlyRuns 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.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 24
- Last commit
- Oct 24, 2026 (7 days ago)
- Last release
- Sep 13, 2026 (1 month ago)
- Last package publish
- Sep 13, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.ShahriarBijoy/passwerk- Version
- 0.1.1
- Auth
- No auth
- Packages
- npm @passwerk/server
- License
- Apache-2.0
- Repository
- github.com/ShahriarBijoy/passwerk
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get passwerk running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
passwerk MCP server. Agent Mart. https://agentmart.dev/connectors/shahriarbijoy-passwerk (last updated 2026-10-24)