{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_ddsydqk33n3a","handle":"lemmaoracle-mcp","url":"https://wellknown.network/agents/lemmaoracle-mcp","links":{"self":"https://wellknown.network/agents/lemmaoracle-mcp/record.json","html":"https://wellknown.network/agents/lemmaoracle-mcp","markdown":"https://wellknown.network/agents/lemmaoracle-mcp/record.md","api":"https://wellknown.network/api/v1/agents/lemmaoracle-mcp","status":"https://wellknown.network/api/v1/agents/lemmaoracle-mcp/status","claim":"https://wellknown.network/agents/lemmaoracle-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/lemmaoracle-mcp/claim.json","badge":"https://wellknown.network/agents/lemmaoracle-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/lemmaoracle-mcp/history","tools":"https://wellknown.network/api/v1/agents/lemmaoracle-mcp/tools"},"ard":{"identifier":"urn:air:mcp.lemma.workers.dev:server:lemmaoracle-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Lemma MCP Server","summary":"Verifiable provenance for AI agents — ZK proofs over confidential documents, no plaintext exposure. Register schemas, circuits, and documents; submit and query zero-knowledge proofs; verify attributes without revealing underlying data.","description":"Verifiable provenance for AI agents — ZK proofs over confidential documents, no plaintext exposure. Register schemas, circuits, and documents; submit and query zero-knowledge proofs; verify attributes without revealing underlying data.","publisher":{"name":"lemma.frame00.com","url":"https://lemma.frame00.com"},"homepage":"https://lemma.frame00.com","repository":"https://github.com/lemmaoracle/lemma","version":"0.0.18","license":null,"protocols":["mcp"],"tags":["zk-proof","mcp","verifiable-provenance","attestation","privacy"],"pricing":null,"endpoints":[{"url":"https://mcp.lemma.workers.dev/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:@lemmaoracle/mcp","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":["queryverifiedattributes","getschema","getcircuit","getgenerator","getproofstatus","registerdocument","submitproof"],"extra":{"ard":{"type":"application/mcp-server-card+json","metadata":{"license":"Apache-2.0","npmPackage":"@lemmaoracle/mcp","repository":"https://github.com/lemmaoracle/lemma/tree/main/packages/mcp","localTransport":"stdio","remoteTransport":"streamable-http"},"identifier":"urn:ai:lemma.frame00.com:mcp:server","artifactUrl":"https://mcp.lemma.workers.dev/mcp","representativeQueries":["verify that this document was attested without exposing its contents","check the proof status for a submitted proof","query verified attributes for a compliance check","register a new schema and generate a zk proof for a document"]},"updatedAt":"2026-05-18T12:25:09.598648Z","publishedAt":"2026-05-18T12:25:09.598648Z","registryName":"io.github.lemmaoracle/mcp"},"attribution":{"kind":"ard_catalog","name":"ard_catalog","repoUrl":"mcp_registry","summary":"ard_catalog","version":"ard_catalog","description":"ard_catalog","homepageUrl":"mcp_registry","publisherUrl":"ard_catalog","publisherName":"ard_catalog"}},"derived":{"capabilities":[{"slug":"data.database","name":"Databases","confidence":0.859,"provenance":"derived"}],"categories":["data"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 58m ago.","lastOkAt":"2026-10-10T13:25:07.654Z","lastProbedAt":"2026-10-10T13:25:07.654Z","statusComputedAt":"2026-10-10T13:26:42.859Z","reliability30d":{"probes":111,"successRate":1,"p50Ms":29,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":109,"ok":109,"authBoundaryOk":0,"serviceOk":109,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T13:25:07.654Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":41,"error":null,"detail":{"tools":[{"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., \"subje"},{"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 {"},{"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 "},{"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 ("},{"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/ve"}],"toolCount":5,"toolsHash":"1a2ffbc6cea7fd6dccca599abeca468759201b0958ede9ab6474e32e6ccd4448","serverName":"@lemmaoracle/mcp","capabilities":["tools"],"serverVersion":"0.0.23","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T07:24:31.639Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":28,"error":null,"detail":{"tools":[{"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., \"subje"},{"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 {"},{"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 "},{"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 ("},{"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/ve"}],"toolCount":5,"toolsHash":"1a2ffbc6cea7fd6dccca599abeca468759201b0958ede9ab6474e32e6ccd4448","serverName":"@lemmaoracle/mcp","capabilities":["tools"],"serverVersion":"0.0.23","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T00:29:08.222Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":22,"error":null,"detail":{"tools":[{"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., \"subje"},{"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 {"},{"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 "},{"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 ("},{"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/ve"}],"toolCount":5,"toolsHash":"1a2ffbc6cea7fd6dccca599abeca468759201b0958ede9ab6474e32e6ccd4448","serverName":"@lemmaoracle/mcp","capabilities":["tools"],"serverVersion":"0.0.23","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T18:26:11.444Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":32,"error":null,"detail":{"tools":[{"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., \"subje"},{"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 {"},{"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 "},{"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 ("},{"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/ve"}],"toolCount":5,"toolsHash":"1a2ffbc6cea7fd6dccca599abeca468759201b0958ede9ab6474e32e6ccd4448","serverName":"@lemmaoracle/mcp","capabilities":["tools"],"serverVersion":"0.0.23","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T11:27:34.354Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":63,"error":null,"detail":{"tools":[{"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., \"subje"},{"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 {"},{"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 "},{"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 ("},{"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/ve"}],"toolCount":5,"toolsHash":"1a2ffbc6cea7fd6dccca599abeca468759201b0958ede9ab6474e32e6ccd4448","serverName":"@lemmaoracle/mcp","capabilities":["tools"],"serverVersion":"0.0.23","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T05:27:06.048Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":59,"error":null,"detail":{"tools":[{"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., \"subje"},{"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 {"},{"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 "},{"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 ("},{"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/ve"}],"toolCount":5,"toolsHash":"1a2ffbc6cea7fd6dccca599abeca468759201b0958ede9ab6474e32e6ccd4448","serverName":"@lemmaoracle/mcp","capabilities":["tools"],"serverVersion":"0.0.23","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T23:22:49.892Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":33,"error":null,"detail":{"tools":[{"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., \"subje"},{"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 {"},{"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 "},{"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 ("},{"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/ve"}],"toolCount":5,"toolsHash":"1a2ffbc6cea7fd6dccca599abeca468759201b0958ede9ab6474e32e6ccd4448","serverName":"@lemmaoracle/mcp","capabilities":["tools"],"serverVersion":"0.0.23","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T16:28:50.963Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":56,"error":null,"detail":{"tools":[{"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., \"subje"},{"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 {"},{"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 "},{"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 ("},{"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/ve"}],"toolCount":5,"toolsHash":"1a2ffbc6cea7fd6dccca599abeca468759201b0958ede9ab6474e32e6ccd4448","serverName":"@lemmaoracle/mcp","capabilities":["tools"],"serverVersion":"0.0.23","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T10:24:58.933Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":42,"error":null,"detail":{"tools":[{"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., \"subje"},{"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 {"},{"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 "},{"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 ("},{"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/ve"}],"toolCount":5,"toolsHash":"1a2ffbc6cea7fd6dccca599abeca468759201b0958ede9ab6474e32e6ccd4448","serverName":"@lemmaoracle/mcp","capabilities":["tools"],"serverVersion":"0.0.23","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T04:25:23.349Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":22,"error":null,"detail":{"tools":[{"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., \"subje"},{"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 {"},{"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 "},{"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 ("},{"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/ve"}],"toolCount":5,"toolsHash":"1a2ffbc6cea7fd6dccca599abeca468759201b0958ede9ab6474e32e6ccd4448","serverName":"@lemmaoracle/mcp","capabilities":["tools"],"serverVersion":"0.0.23","protocolVersion":"2025-06-18"}}],"tools":[{"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., \"subje"},{"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 {"},{"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 "},{"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 ("},{"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/ve"}],"package":null,"toolSurface":{"id":"ts_dyys8843xe3r","endpointId":"ep_6qr8ne2mn3xm","hash":"1a2ffbc6cea7fd6dccca599abeca468759201b0958ede9ab6474e32e6ccd4448","toolCount":5,"serverName":"@lemmaoracle/mcp","serverVersion":"0.0.23","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-12T10:26:44.007Z","lastSeenAt":"2026-10-10T13:25:07.654Z","observations":103,"toolNames":["lemma_query_verified_attributes","lemma_get_schema","lemma_get_circuit","lemma_get_generator","lemma_get_proof_status"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_6qr8ne2mn3xm","url":"https://mcp.lemma.workers.dev/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-05T14:30:07.195Z","auth":{"observedAt":"2026-10-05T14:30:07.216Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-05T14:30:07.233Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"lemma.workers.dev","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-08-30T21:30:49.000Z","validTo":"2026-11-28T21:30:48.000Z","daysToExpiry":49,"sanCount":2,"fingerprint256":"E3:A5:BD:E0:53:07:D5:BC:37:31:AD:02:B5:29:01:89:66:2B:A4:B7:65:92:C5:D9:EE:78:95:F2:B5:DD:45:53"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"ard_catalog","key":"urn:ai:lemma.frame00.com:mcp:server","url":"https://lemma.frame00.com/.well-known/ai-catalog.json","firstSeenAt":"2026-09-06T17:25:46.962Z","fetchedAt":"2026-09-06T17:25:46.962Z","normalizedAt":"2026-09-06T17:25:46.962Z"},{"source":"mcp_registry","key":"io.github.lemmaoracle/mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.lemmaoracle%2Fmcp","firstSeenAt":"2026-09-06T17:21:41.053Z","fetchedAt":"2026-10-07T16:19:56.913Z","normalizedAt":"2026-10-07T16:19:56.913Z"}]},"firstSeenAt":"2026-09-06T17:21:41.053Z","updatedAt":"2026-10-10T13:27:34.067Z"}