{"name":"io.github.lemmaoracle/mcp","slug":"lemmaoracle-mcp","title":null,"description":"Verifiable provenance for AI agents — ZK proofs over confidential documents, no plaintext exposure.","url":"https://mcp.market/server/lemmaoracle-mcp","rating":null,"grade":"A","score":90,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":34,"stars":1,"forks":2,"downloads_week":45,"last_push_at":"2026-09-27T20:00:33.000Z","license":"NOASSERTION"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T07:40:44.620Z","last_ok_at":"2026-11-04T07:40:44.620Z","latency_ms":136},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/lemmaoracle/lemma","website":"https://lemma.frame00.com","version":"0.0.17","remotes":[{"type":"streamable-http","url":"https://mcp.lemma.workers.dev/mcp","headers":[{"description":"Lemma API key as Bearer token. Format: 'Bearer <LEMMA_API_KEY>'. Get a key at https://lemma.frame00.com/services","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@lemmaoracle/mcp","version":"0.0.17","transport":{"type":"stdio"},"environmentVariables":[{"description":"Lemma API key (Bearer token). Get one at https://lemma.frame00.com/services","isRequired":true,"isSecret":true,"name":"LEMMA_API_KEY"},{"description":"Optional API base URL. Defaults to production endpoint.","name":"LEMMA_API_BASE"}]}],"tools":[{"name":"lemma_get_circuit","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"circuitId":{"type":"string","description":"Circuit ID. Returned in the `proof.circuitId` field of VerifiedAttributesQueryResponseItem from lemma_query_verified_attributes, or registered via POST /v1/circuits. NOTE: this matches the OpenAPI field name `circuitId`, not a generic `id`."}},"required":["circuitId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"lemma_get_generator","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"generatorId":{"type":"string","description":"Generator ID. Each generator is bound to a single schema and describes how source documents are produced. Registered via POST /v1/doc-generators. NOTE: this matches the OpenAPI field name `generatorId`, not a generic `id`."}},"required":["generatorId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"lemma_get_proof_status","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"verificationId":{"type":"string","description":"verificationId returned by lemma_submit_proof. Internally treated as a docHash filter on POST /v1/verified-attributes/query (no dedicated GET /v1/proofs/{id} endpoint in v2 API)."}},"required":["verificationId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"lemma_get_schema","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Schema ID. Returned in the `schema` field of VerifiedAttributesQueryResponseItem from lemma_query_verified_attributes, or registered via POST /v1/schemas."}},"required":["id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"lemma_query_verified_attributes","description":"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`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute key as defined by the schema."},"operator":{"type":"string","enum":["eq","neq","gt","gte","lt","lte","in","contains"],"description":"Comparison operator. Defaults to eq when omitted. 'in' takes an array value; 'contains' is substring/array-element match."},"value":{"description":"Comparison target value. Type depends on the schema's attribute definition. For 'in', pass an array."}},"required":["name"],"additionalProperties":false},"description":"Attribute predicates to AND-combine."},"schemas":{"type":"array","items":{"type":"string"},"description":"Restrict results to documents conforming to these schema IDs."},"chainIds":{"type":"array","items":{"type":"number"},"description":"Restrict results to attributes verified on these chain IDs (EVM)."},"limit":{"type":"number","minimum":1,"maximum":200,"description":"Max results per page (1–200). Defaults to API server default (50)."},"offset":{"type":"number","minimum":0,"description":"Pagination offset. Pair with `hasMore` in the response to walk pages."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":90,"grade":"A","scanned_at":"2026-09-27T21:28:02.189Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T21:28:02.161Z","components":{"code":{"score":25,"max":25,"notes":["35 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 520ms"]},"poisoning":{"score":15,"max":15,"notes":["5 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.lemma.workers.dev/mcp","reachable":true,"authRequired":false,"latencyMs":520,"serverInfo":{"name":"@lemmaoracle/mcp","version":"0.0.23"}}],"packages":[{"registryType":"npm","identifier":"@lemmaoracle/mcp","version":"0.0.17","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":6,"publishedAt":"2026-05-18T12:05:37.984Z","repositoryUrl":"git+https://github.com/lemmaoracle/lemma.git","weeklyDownloads":45}],"repo":{"found":true,"owner":"lemmaoracle","repo":"lemma","archived":false,"pushedAt":"2026-09-27T20:00:33Z","stars":1,"forks":2,"openIssues":4,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/261871631?v=4","ownerCreatedAt":"2026-02-16T07:30:11Z","license":"NOASSERTION"},"icon":{"url":"https://avatars.githubusercontent.com/u/261871631?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":2,"downloadsWeek":45,"license":"NOASSERTION","lastPushAt":"2026-09-27T20:00:33.000Z","score":34}}}},"grade_history":[],"reviews":[]}