ZKshare
About
Stdio MCP server that exposes zkShare tools to AI clients: store encrypted context, proofs, semantic search, sharing, and sandbox calls via POST /api/v1/context with ZKSHARE_API_KEY.
Details
- Author
- sp0oby
- Categories
- Developer Tools, Other, Knowledge Base, Search
Jump to
Setup
Install ZKshare in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/sp0oby/zkShare
Follow the installation instructions in the repository README, then restart your MCP client.
Privacy-oriented context API for users, AI agents, and back-office systems. A single HTTP entrypoint (POST /api/v1/context) handlesencrypted fact storage,commitment-based proof envelopes,semantic search over encrypted data,end-to-end-encrypted (client-sealed) facts, and aisolated sandbox executionfor sensitive computations. The implementation is a Next.js (App Router) application backed by PostgreSQL withpgvector.
This document is for developers integrating against the API and operators self-hosting the service. It isnota marketing brochure — pricing tiers, dashboards, and billing are optional layers defined separately in the application code.
The platform is designed around three trust boundaries:
- Userscan prove a property of a personal fact (for example, "the user prefers beach trips") to a third party without exposing the underlying value. The third party verifies the envelope throughverify_proof.
- Agentscan hold and exchange context across sessions or tool boundaries without surfacing the raw values to downstream systems. Sharing produces a single-use, time-boundshare_tokenbound to a recipient agent identifier.
- Businessesintegrating the API can offer privacy guarantees that are technical, not contractual — RLS denies direct table access, the encryption key is server-only, the proof HMAC secret is server-only, and the client-sealed path lets sensitive data stay outside the operator's reach entirely.
Authoritative request and response shapes live intypes/index.tsandopenapi.json.
The npm packagezkshare-mcp(npm, sourcepackages/zkshare-mcp/) is astdio MCP serverexposing tools (zkshare_store,zkshare_prove, …) that callPOST https://zkshare.io/api/v1/context(or yourZKSHARE_API_URL) withZKSHARE_API_KEY.
Official MCP Registrycanonical name:io.github.sp0oby/zkshare—registry lookup·About the MCP Registry(discovery metadata; runnable package remains on npm).
End users:Node.js ≥ 18, thennpx -y zkshare-mcp— no clone. Configure your host (example below).
Contributors:from the repo rootpnpm install, thenpnpm mcpto run the local package; source ispackages/zkshare-mcp/.
Advancedclient-sealedstorebodies stay on HTTPS/OpenAPI — not via MCP tools.
// ~/.cursor/mcp.json { "mcpServers": { "zkshare": { "command": "npx", "args": ["-y", "zkshare-mcp"], "env": { "ZKSHARE_API_KEY": "zk_live_…", "ZKSHARE_API_URL": "https://zkshare.io" } } } }
- Runtime:/api/v1/contextis a Node.js route handler (not Edge) so AES-256-GCM, scrypt key derivation, and the Supabase service-role client behave deterministically.
- Persistence:PostgreSQL with extensions and tables managed by versioned migrations undersupabase/migrations/. Tables:api_keys,facts,audit_logs,share_tokens. Thefactstable stores ciphertext, IV, auth tag, commitment, avector(1536)embedding, and aclient_encryptedflag.
- Search:match_facts(api_key_id, logical_user_id, query_embedding, match_count)is asecurity definerfunction with an IVFFlat index. It returns server-sealed rows only. Updating the function's row type requiresDROP FUNCTION ... CASCADE-style replacement (a PostgreSQL constraint) — the migrations handle this explicitly.
- Authentication and authorization:
- End-user dashboard: Supabase Auth magic-link sign-in.middleware.tsredirects unauthenticated visitors away from/dashboard.
- HTTP API:x-api-keyheader. Keys are stored as SHA-256 hashes; only the prefix is shown in the dashboard. Rotating a key requires generating a new one — plaintext is never persisted.
- Database access: RLS denies all direct access fromanonandauthenticatedroles. The application uses the Supabaseservice roleserver-side only.
- ZKSHARE_ENCRYPTION_SECRET— server-side AES-256-GCM master secret (scrypt-derived; minimum 32 characters).
- ZKSHARE_PROOF_SECRET— HMAC secret for commitments and proof envelopes (minimum 16 characters).
- ZKSHARE_ENCLAVE_JWT_SECRET— HS256 secret for sandbox attestations (minimum 32 characters).
- All three are required for the relevant code paths. The application throws on startup if any are missing or too short.
pnpm install cp .env.local.example .env.local # Fill the Supabase, ZKSHARE_, and (optionally) LLM, Upstash, and Stripe values. # Defaults for LLM model slugs live in lib/llm-client.ts. pnpm dev
Apply migrations against your Supabase database before exercising the API. Seesupabase/README.md.
Server-sealed store followed by a proof:
curl -sS -X POST http://localhost:3000/api/v1/context \ -H "x-api-key: zk_live_..." \ -H "Content-Type: application/json" \ -d '{"operation":"store","user_id":"user_123","fact_key":"example","value":"hello"}' curl -sS -X POST http://localhost:3000/api/v1/context \ -H "x-api-key: zk_live_..." \ -H "Content-Type: application/json" \ -d '{"operation":"prove","user_id":"user_123","fact_key":"example","query":"does the fact say hello?"}'
curl -sS -X POST http://localhost:3000/api/v1/context \ -H "x-api-key: zk_live_..." \ -H "Content-Type: application/json" \ -d '{"operation":"verify_proof","proof":"<base64url envelope from the prove response>"}'
- Liveness:GET /api/health
- Readiness (database):GET /api/health/ready
This runsscripts/verify-crypto.tsdirectly under Node's built-in TypeScript support and asserts encryption round-trip, tamper detection, deterministic commitments, and all threeverify_proofoutcomes (valid,invalid,malformed).
The full operator checklist lives inSECURITY.md → Operator checklist. At a minimum, before exposing the API to the public internet:
- All threeZKSHARE_secrets are set with high-entropy values; the application throws on startup otherwise.
- ZKSHARE_CORS_ORIGINis an explicit comma-separated allow list of origins.*is for unauthenticated demos only.
- Migrations undersupabase/migrations/have been applied in timestamp order on the target environment.
- Upstash Redis is configured (UPSTASH_REDIS_REST_URL+UPSTASH_REDIS_REST_TOKEN); the in-process rate-limit fallback is for local development only.
- GET /api/health/readyreturns200with nomissingentries and acknowledgedwarnings.
Status of the "zero-knowledge" claim
Theprooffield returned today is aversioned JSON envelope signed with HMAC-SHA256, binding the commitment, the query, and the yes/no answer.snarkjsis included as a dependency, andcircuits/documents the intended Groth16 path for future work.Groth16 verification is not on the default response path.Treat any external claim of full SNARK-on-every-call as aspirational unless the verifier and circuit artifacts have been shipped and audited.
Pleasedo notopen a public issue for security vulnerabilities. The disclosure process and contact channels are documented inSECURITY.md.
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Local code analysis MCP server with 25+ tools: semantic search, call graph tracing, dependency analysis, and symbol navigation. Built with Tree-sitter and CozoDB. Supports Go, Python, JS, TS.
A local-first code indexer that enhances LLMs with deep code understanding. It integrates with AI assistants via the Model Context Protocol (MCP) and supports AI-powered semantic search.
A server for managing structured project context using SQLite, with support for vector embeddings for semantic search and Retrieval Augmented Generation (RAG).
MCP of MCPs is a meta-server that merges all your MCP servers into a single smart endpoint. It gives AI agents instant tool discovery, selective schema loading, and massively cheaper execution, so you stop wasting tokens and time. With persistent tool metadata, semantic search, and direct code execution between tools, it turns chaotic multi-server setups into a fast, efficient, hallucination-free workflow. It also automatically analyzes the tools output schemas if not exist and preserves them across sessions for consistent behavior.
Persistent memory for AI coding agents with semantic search, contradiction detection, memory decay, and cross-session learning. 25 MCP tools, local-first, #1 on LongMemEval (95.4%).
An MCP server for intelligent semantic search and automatic learning within codebases, allowing AI agents to efficiently query and index project artifacts.
Embeddings, vector search, document storage, and full-text search with the open-source AI application database
Semantic search through Dickens' classic tale. Find passages by meaning, theme, or concept - not just keywords.
An MCP server providing semantic search capabilities for APLCart data.
MCP server for Christian scholarship and research — scripture, Greek/Hebrew word data, cross-references, patristic texts, and semantic search,
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





