Epic: MCP server exposing AutoFirma sign/verify to agents (study) #32

Merged
EduarD3V merged 5 commits from issue/28-epic-mcp-server-exposing-autof into bullet-develop 2026-10-14 17:30:55 +02:00
Owner

Implements #28.

Refs #28

Automated by bullet: reviewed (independent model) → gates green on merged tree. Auto-merge follows.

Implements **#28**. Refs #28 Automated by bullet: reviewed (independent model) → gates green on merged tree. Auto-merge follows.
Fills in the half of the slice the design study promises but did not yet have:
vitest coverage over the input jail, the keystore, the three tools and the
audit trail, plus an end-to-end check that signs through a real MCP client and
lets `openssl cms -verify` accept the result.

- test/: input (path escape, size cap, exactly-one-source), config, certstore
  (wrong PIN, missing configuration, id separator) and tools (sign → verify,
  tampering, unsupported formats, audit). PKCS#12 containers are generated with
  openssl at test time, so no key material is committed.
- scripts/e2e.mjs: spawns the built server over the official SDK client, signs,
  verifies with openssl, rejects a tampered document, checks the error surface
  and that no response carries key material.
- verify takes `artifact_b64`/`path` (it was `file_b64`, which the design doc
  did not match), and the chain is built against AUTOFIRME_MCP_TRUSTED_ROOTS
  when the operator sets it — agent-supplied anchors would make the chain check
  report whatever the caller wanted.
- build: drop the duplicate shebang (esbuild keeps the source's) and stop
  tracking dist/, which is build output.
Refs #28
EduarD3V merged commit 76c58e65b1 into bullet-develop 2026-10-14 17:30:55 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
EduarD3V/AutoFirme!32
No description provided.