# io.github.johnInarti/agent-passport (npm · @fractalai/agent-passport-mcp)

Post-quantum (ML-DSA-65/FIPS-204) proofs for AI agents via x402: sign, notarize, provenance, KYA.

- Trust score: 63/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-20

## Components

- npm · `@fractalai/agent-passport-mcp`: 63/100 (this document), [markdown](https://verifymcp.io/servers/johninarti-agent-passport/fractalai-agent-passport-mcp.md), [page](https://verifymcp.io/servers/johninarti-agent-passport/fractalai-agent-passport-mcp)

## Channel facts

- Registry: `npm`
- Package: `@fractalai/agent-passport-mcp`
- Version: `0.2.1`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-20.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 30 of 100 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 2 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2761 tokens (~251/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 10/100
  - Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add johninarti-agent-passport -- npx -y @fractalai/agent-passport-mcp
```

### Codex

```bash
codex mcp add johninarti-agent-passport -- npx -y @fractalai/agent-passport-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "johninarti-agent-passport": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@fractalai/agent-passport-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add johninarti-agent-passport --command npx --arg -y --arg @fractalai/agent-passport-mcp
```

### Hermes

```yaml
mcp_servers:
  johninarti-agent-passport:
    command: "npx"
    args: ["-y", "@fractalai/agent-passport-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "johninarti-agent-passport": {
      "command": "npx",
      "args": [
        "-y",
        "@fractalai/agent-passport-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-20 (score 63, −5)

- [security regression] Source repository: pass → fail
- [functional regression] Security disclosure: fail → unverified

### 2026-08-19 (score 68, +11)

- [security improvement] Known CVEs: unverified → pass
- [functional improvement] Dependency health: unverified → 0.87

### 2026-08-18 (score 57, +5)

- [security regression] Known CVEs: pass → unverified
- [security improvement] Malware scan: unverified → pass
- [functional regression] Dependency health: 0.87 → unverified
- [functional improvement] Stability: unverified → 0.03
- [functional] Package version: 0.2.0 → 0.2.1

### 2026-08-17 (score 52)

First indexed and scored.

## MCP tools (11)

### `verify_passport` (~455 tokens)

Independently verify an agent passport

Free. Independently verify a verifiable agent passport / attestation. Give it an attestation permalink (https://fractalai.net.co/attestation/0x…) or the bare 0x hash — optionally plus the receipt JSON you were handed at issue time (if it carries an `ml_dsa65` field). It: (1) fetches the public attestation record, (2) [independent] recomputes sha256(input)/sha256(output) and reconstructs the exact canonical signed message, (3) [independent] verifies the ML-DSA-65 (NIST FIPS 204) signature 100% OFFLINE with @noble/post-quantum against a key PINNED IN SOURCE (the FractalAI receipt key — NEVER the key quoted in the receipt), (4) [server-assisted] verifies the Dilithium-2 signature over the canonical bytes plus a tamper negative-control, and (5) reads the agent's on-chain FRC-55 state (fractal_getAgent) when agent_id is an on-chain id. Returns { valid_independent, valid_server_assisted, valid, algorithm, checks[], anchored, decision, agent }. TRUST: rely on `valid_independent` — it is true ONLY when an ML-DSA-65 signature verifies against the pinned key (fail-closed: no/empty signature ⇒ false). `valid_server_assisted` trusts the FractalAI server. `valid` aliases the conservative independent verdict. HONEST SCOPE: a pass means the signature is intact over the exact bytes and the record is internally consistent and anchored on FractalAI's L1 — it does NOT prove the assertion is true or that the agent's decision was correct.

Input parameters:

- `attestation` (string, required): Attestation permalink (…/attestation/0x…) or the bare 0x attestation hash.
- `receipt` (object): Optional: the receipt JSON handed to you at issue time. If it contains an `ml_dsa65` { signature, public_key, signed_payload_sha256 } object, the ML-DSA-65 signature is verified fully offline against…

### `issue_passport` (~428 tokens)

Issue a verifiable agent passport

Issue a verifiable agent passport = an agent id + a SIGNED assertion + a re-verifiable permalink. It (a) resolves the agent on the FRC-55 registry when agent_id is an on-chain id (fractal_getAgent), and (b) seals the assertion through the REAL x402 (HTTP 402) attest-decision flow: the assertion is Dilithium-2 signed, Black-Box chained and anchored on FractalAI's L1, returning a receipt anyone can re-check with verify_passport. WHAT IT PROVES: this exact assertion was attested by (and bound to) this agent id, is cryptographically intact, and is anchored on-chain. WHAT IT DOES NOT PROVE: that the assertion is TRUE, that the agent's decision was CORRECT, or any decentralized/consensus-scored reputation — it does NOT register reputation. PAYMENT: this is a paid x402 resource ($0.05 USDC on Base). Call once WITHOUT payment_tx_hash to get the exact payment challenge (accepts[]: amount, USDC asset, payTo); pay that USDC yourself; then call again WITH payment_tx_hash set to the confirmed transaction hash. Without payment it returns the challenge — it never fabricates a passport.

Input parameters:

- `agent_id` (string, required): The agent's identifier. A 0x FRC-55 on-chain id is resolved against the registry; any other stable label is bound as-is (and flagged agent_resolved:false).
- `assertion` (string, required): The action/claim to attest and bind to the agent (becomes the sealed decision output).
- `input` (string): Optional context/input that produced the assertion (defaults to the assertion itself).
- `model` (string): Optional model/agent version that produced the assertion.
- `payer` (string): Optional payer address hint.
- `payment_tx_hash` (string): A confirmed USDC-on-Base transaction hash paying the required amount. If omitted, the tool returns the x402 payment challenge instead of a passport. One txHash issues exactly one passport.

### `lookup_agent` (~149 tokens)

Look up an agent's public on-chain state

Free. Read an agent's PUBLIC state from the FRC-55 registry on the live FractalAI L1 node (fractal_getAgent) — name, owner, status, model, price_per_call, total_calls, rating, total_ratings, created_at — for reputation/status checks. Omit agent_id to list all registered agents (fractal_listAgents). Always returns registry-wide stats (fractal_getAgentStats). This is on-chain registry data as reported by the node; ratings are the registry's own counters, not an independent audit.

Input parameters:

- `agent_id` (string): A 0x FRC-55 on-chain agent id to fetch. Omit to list all agents.

### `list_fractalai_proofs` (~92 tokens)

Discover FractalAI's post-quantum proof catalog

Free. Return the live catalog of FractalAI's x402 post-quantum proof services (price, algorithm, endpoint, and what each proves) read straight from the canonical /.well-known/x402.json. Call this first to discover every proof you can buy: signatures, AI-decision notarization, dataset/training provenance, CBOM sealing, Know-Your-Agent, and signature verification.

### `seal_ml_dsa` (~198 tokens)

Post-quantum signature (ML-DSA-65 / Dilithium-3)

Get a post-quantum ML-DSA-65 / Dilithium-3 (NIST FIPS 204) signature over any message or hash — signed locally, verifiable OFFLINE, with a verifiable on-chain-anchored receipt. Call when your agent needs a durable, quantum-safe signature or proof of authenticity. Price $0.02 USDC on Base.

Input parameters:

- `hash` (string): Hex digest already computed; signed directly. Provide message OR hash.
- `message` (string): UTF-8 message; we sign sha256(message).
- `payment` (string): Optional base64 x402 X-PAYMENT (EIP-3009 exact-scheme payload, or {txHash}). x402-aware wallet clients pass this automatically via _meta["x402/payment"] — set it explicitly only if your client does n…

### `notarize_decision` (~257 tokens)

Notarize an AI decision (auditable, on-chain)

Notarize an AI decision: bind (input, output, model) into a post-quantum-signed, Black-Box-chained, on-chain-anchored attestation with a re-verifiable permalink. Call to make an autonomous agent's decision auditable and non-repudiable (EU AI Act Art. 12 alignment). Proves the decision was sealed intact — NOT that it was correct. Price $0.05 USDC on Base.

Input parameters:

- `agent_id` (string, required): REQUIRED. Agent id (a 0x FRC-55 id is resolved on-chain; any label is bound as-is).
- `input` (string, required): The context/input that produced the decision.
- `model` (string): Model/agent version that produced the decision (bound as model_id).
- `output` (string, required): The decision/output to seal.
- `payment` (string): Optional base64 x402 X-PAYMENT (EIP-3009 exact-scheme payload, or {txHash}). x402-aware wallet clients pass this automatically via _meta["x402/payment"] — set it explicitly only if your client does n…

### `prove_provenance` (~241 tokens)

Post-quantum provenance seal (dataset/content)

Seal the provenance of a dataset / training run / AI-generated content: a post-quantum signature + a drand lower-bound timestamp (cannot be backdated) + an on-chain anchor. Call to prove PRIOR EXISTENCE and INTEGRITY of AI data your agent produced or consumed. Privacy-preserving (send a hash). Price $0.05 USDC on Base.

Input parameters:

- `content` (string): Raw content to seal; we seal sha256(content).
- `content_hash` (string): A sha256 hex you already computed; sealed as-is (content never leaves you). Provide content OR content_hash.
- `issuer` (string): Optional declaring party (recorded).
- `kind` (string): Provenance kind: "dataset" | "training" | "content".
- `payment` (string): Optional base64 x402 X-PAYMENT (EIP-3009 exact-scheme payload, or {txHash}). x402-aware wallet clients pass this automatically via _meta["x402/payment"] — set it explicitly only if your client does n…

### `attest_training` (~256 tokens)

AI training-provenance attestation (C2PA)

Attest how/what an AI model was trained: a post-quantum-signed C2PA-style provenance manifest over a dataset/training hash for a given model_id. Call to give a model a verifiable training-provenance record. Privacy-preserving (send dataset_hash). Price $0.05 USDC on Base.

Input parameters:

- `content_type` (string): Optional label (e.g. "application/jsonl", "dataset").
- `dataset` (string): Raw dataset/training content; we bind sha256(dataset).
- `dataset_hash` (string): A sha256 hex you already computed; bound as-is. Provide dataset OR dataset_hash.
- `issuer` (string): Optional declaring party (recorded).
- `model_id` (string, required): Model/dataset identifier (e.g. "fane-1", "acme-corpus-v3").
- `payment` (string): Optional base64 x402 X-PAYMENT (EIP-3009 exact-scheme payload, or {txHash}). x402-aware wallet clients pass this automatically via _meta["x402/payment"] — set it explicitly only if your client does n…

### `seal_cbom` (~210 tokens)

Seal a Cryptographic Bill of Materials (CBOM)

Seal a CycloneDX CBOM (ECMA-424, cryptographic inventory) with a post-quantum signature + drand timestamp — a machine-readable PQC-readiness / crypto-posture disclosure (CNSA 2.0, procurement). Call to certify your declared cryptographic inventory. Price $0.05 USDC on Base.

Input parameters:

- `cbom` (object, required): The CycloneDX CBOM (ECMA-424) as a JSON object.
- `issuer` (string): Optional organization declaring the inventory (recorded).
- `payment` (string): Optional base64 x402 X-PAYMENT (EIP-3009 exact-scheme payload, or {txHash}). x402-aware wallet clients pass this automatically via _meta["x402/payment"] — set it explicitly only if your client does n…
- `subject` (string): Optional target system/product this CBOM describes (recorded).

### `verify_agent_kya` (~201 tokens)

Know-Your-Agent: verify an agent credential

Know-Your-Agent (KYA): verify another agent's FractalAI credential (post-quantum signature) and read its live FRC-55 on-chain reputation. Call BEFORE trusting, delegating to, or paying another agent. Returns a post-quantum-signed verdict. Price $0.03 USDC on Base.

Input parameters:

- `check_reputation` (boolean): Default true: re-read live FRC-55 on-chain reputation.
- `credential` (object, required): A FractalAI KYA credential ({ claim, signature, public_key, credential_id }) to verify.
- `payment` (string): Optional base64 x402 X-PAYMENT (EIP-3009 exact-scheme payload, or {txHash}). x402-aware wallet clients pass this automatically via _meta["x402/payment"] — set it explicitly only if your client does n…

### `verify_proof` (~274 tokens)

Verify a post-quantum signature (floor primitive)

Verify a post-quantum signature over a message against a public key — auto-detects ML-DSA-65 / Dilithium-3 (verified offline) or Dilithium-2 (node). The floor primitive ($0.01) for any proof pipeline; returns a post-quantum-signed verdict receipt. Price $0.01 USDC on Base.

Input parameters:

- `message` (string): The UTF-8 message that was signed. Provide message OR message_b64.
- `message_b64` (string): The exact base64 bytes that were signed (use for /sign outputs).
- `payment` (string): Optional base64 x402 X-PAYMENT (EIP-3009 exact-scheme payload, or {txHash}). x402-aware wallet clients pass this automatically via _meta["x402/payment"] — set it explicitly only if your client does n…
- `public_key` (string, required): Base64 public key to verify against (1952B ML-DSA-65 or 1312B Dilithium-2).
- `signature` (string, required): Base64 signature to verify (ML-DSA-65 3309B or Dilithium-2 2420B).

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/johninarti-agent-passport/fractalai-agent-passport-mcp#diagnostics

## Score history

- 2026-08-20: 63
- 2026-08-19: 68
- 2026-08-18: 57
- 2026-08-17: 52

## Links

- npm package: https://www.npmjs.com/package/@fractalai/agent-passport-mcp
- Socket report: https://socket.dev/npm/package/@fractalai/agent-passport-mcp
- Website: https://fractalai.net.co/
- Changelog RSS feed: https://verifymcp.io/servers/johninarti-agent-passport/fractalai-agent-passport-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/johninarti-agent-passport/fractalai-agent-passport-mcp.json
- HTML version of this page: https://verifymcp.io/servers/johninarti-agent-passport/fractalai-agent-passport-mcp
