Skip to content

io.github.lemmaoracle/mcp

by lemmaoracle · remote · local (npm) · no sign-in to list tools · v0.0.17 · published by GitHub user lemmaoracle

Verifiable provenance for AI agents — ZK proofs over confidential documents, no plaintext exposure.

Read only

5 tools: 5 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http lemmaoracle https://mcp.lemma.workers.dev/mcp --header 'Authorization: <your-authorization>'

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

5 tools

Only reads 5Claude Code: allow
  • lemma_get_circuitRetrieve a zero-knowledge proof circuit by its circuitId via GET /v1/circuits/{circuitId}.No findings

    Why it is in this group

    • The name "lemma_get_circuit" says "get": a word for reading.
    Description, as the server wrote it
    Retrieve a zero-knowledge proof circuit by its circuitId via GET /v1/circuits/{circuitId}. A circuit defines the constraints that proofs must satisfy and binds to a single schema. Returns CircuitMeta { circuitId, schema, description?, inputs?, verifier?: { type: 'onchain'|'offchain', address?, chainId? }, artifact?: { location: { type: 'ipfs'|'https', wasm, zkey } } }. Use this before lemma_submit_proof to confirm the circuit's schema, public inputs, and verifier configuration. Circuits are immutable; new variants get new circuitIds.

    Annotations the server declares

    • title: Lemma — get circuit
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
    • destructiveHint: false
  • lemma_get_generatorRetrieve a Lemma document generator by generatorId via GET /v1/doc-generators/{generatorId}.No findings

    Why it is in this group

    • The name "lemma_get_generator" says "get": a word for reading.
    Description, as the server wrote it
    Retrieve a Lemma document generator by generatorId via GET /v1/doc-generators/{generatorId}. A generator describes how a class of source documents is produced (e.g., what fields a 'KYC-v2' issuer must populate). Returns GeneratorMeta { generatorId, schema, description?, language?, source?: { type: 'url', uri }, inputsSpec?, outputsSpec? }. Each generator is bound to one schema. Use this when onboarding a new issuer or auditing how an existing schema is being populated.

    Annotations the server declares

    • title: Lemma — get generator
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
    • destructiveHint: false
  • lemma_get_proof_statusGet the verification status of a proof.No findings

    Why it is in this group

    • The name "lemma_get_proof_status" says "get": a word for reading.
    Description, as the server wrote it
    Get the verification status of a proof. NOTE: the v2 API does not yet expose a dedicated GET /v1/proofs/{id} endpoint, so this tool internally calls POST /v1/verified-attributes/query filtered by docHash (treating the verificationId returned from lemma_submit_proof as a docHash filter). Returns { status, circuitId, chainId, docHash } extracted from the matched item, or undefined if the verificationId is unknown. Status enum: received | verified | onchain-verified | rejected. Use the SDK's isVerified() helper (or check status === 'verified' || status === 'onchain-verified') to determine cryptographic validity.

    Annotations the server declares

    • title: Lemma — get proof status
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
    • destructiveHint: false
  • lemma_get_schemaRetrieve a Lemma schema by its ID via GET /v1/schemas/{id}.No findings

    Why it is in this group

    • The name "lemma_get_schema" says "get": a word for reading.
    Description, as the server wrote it
    Retrieve a Lemma schema by its ID via GET /v1/schemas/{id}. A schema declares how documents of a given type are interpreted and normalized. Returns SchemaMeta { id, description? } with additionalProperties open — implementations commonly include a `normalize` artifact (WASM that maps raw documents to canonical form) and its content hash. Use this when you need to interpret attribute keys returned by lemma_query_verified_attributes.

    Annotations the server declares

    • title: Lemma — get schema
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
    • destructiveHint: false
  • lemma_query_verified_attributesQuery cryptographically verified attributes from Lemma.No findings

    Why it is in this group

    • The name "lemma_query_verified_attributes" says "query": a word for reading.
    Description, as the server wrote it
    Query cryptographically verified attributes from Lemma. Use this as the primary tool for finding documents whose attributes match given conditions (e.g., "subject's birthYear lt 2008"). Returns { results: Array<{ docHash, schema, issuerId, subjectId, attributes, isVerified, proof?: { status, circuitId, chainId }, disclosure? }>, hasMore }. The MCP layer enriches each item with an `isVerified` flag derived from `proof.status` (true when status is 'verified' or 'onchain-verified'). Use lemma_get_proof_status to monitor a specific proof; use lemma_get_schema to interpret the keys returned in `attributes`.

    Annotations the server declares

    • title: Lemma — query verified attributes
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
    • destructiveHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.0.17. Values in angle brackets are yours to fill in.

claude mcp add --transport http lemmaoracle https://mcp.lemma.workers.dev/mcp --header 'Authorization: <your-authorization>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__lemmaoracle__lemma_query_verified_attributes",
      "mcp__lemmaoracle__lemma_get_schema",
      "mcp__lemmaoracle__lemma_get_circuit",
      "mcp__lemmaoracle__lemma_get_generator",
      "mcp__lemmaoracle__lemma_get_proof_status"
    ],
    "ask": [],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as lemmaoracle. Review it before you use it.