# ZeroDB MCP Server [Health: Active]

**Category:** 🗄️ Databases  
**Repository:** https://github.com/AINative-Studio/ainative-zerodb-mcp-server  
**GitHub Stars:** 0  
**npm Downloads (last month):** 1534  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/ainative-zerodb-mcp-server

## Description
AINative ZeroDB tools for vector search, NoSQL tables, managed PostgreSQL, files, events and knowledge graphs. Local stdio server.

## Tools
Capabilities this server exposes over MCP:

- **zerodb_generate_embeddings** — Generate embeddings using specified model (384/768/1024 dimensions). Supports BAAI/bge-small-en-v1.5 (384-dim, default), BAAI/bge-base-en-v1.5 (768-dim), BAAI/bge-large-en-v1.5 (1024-dim). Use when you need raw embedding vectors without storing them. Does not persist data — for embed + store in one step, use zerodb_embed_and_store instead.
- **zerodb_embed_and_store** — Generate embeddings and store in ZeroDB in one step. Auto-detects dimension based on model and routes to correct storage. Use when you want to embed text and persist the vectors in a single call. Combines zerodb_generate_embeddings + zerodb_upsert_vector.
- **zerodb_semantic_search** — Semantic search using text query (auto-embeds query text). Searches vectors in the same dimension as the model used. Use when searching vectors using a text query (auto-embeds the text). Unlike zerodb_search_vectors which requires a raw vector, this accepts plain text. Unlike zerodb_search_memory which searches agent conversation memory, this searches the general vector store.
- **zerodb_store_memory** — Store agent memory in ZeroDB for persistent context. Use when the agent needs to persist conversation turns, decisions, or observations for later recall. Stores with role, session, and agent metadata for filtered retrieval.
- **zerodb_search_memory** — Search agent memory using semantic similarity. Use when searching agent conversation memory by natural language. Unlike zerodb_search_vectors which requires a raw vector, and zerodb_semantic_search which searches the general vector store, this searches agent-specific memory entries filtered by session/agent/role.
- **zerodb_get_context** — Get agent context window for current session. Use when the agent needs to retrieve its recent conversation context within token limits. Returns the most recent memories for a session, bounded by max_tokens.
- **zerodb_upsert_vector** — Store or update a vector embedding with metadata. Supports 384, 768, 1024, or 1536 dimensions. Dimension is auto-detected and validated. Use when you have a pre-computed embedding vector to store or update. For embedding text and storing in one step, use zerodb_embed_and_store instead.
- **zerodb_batch_upsert_vectors** — Batch upsert multiple vectors for efficiency. Use when storing many vectors at once to reduce API round-trips. Accepts an array of vector objects and processes them in a single request.
- **zerodb_search_vectors** — Search vectors using semantic similarity. Supports 384, 768, 1024, or 1536 dimension query vectors. Auto-detects dimension. Use when searching raw vector embeddings by similarity with a query vector. Unlike zerodb_semantic_search which accepts text (auto-embeds), this requires a pre-computed vector. Unlike zerodb_search_memory which searches agent memory, this searches the general vector store.
- **zerodb_delete_vector** — Delete a specific vector by ID. Use when removing a single vector embedding from the store. WARNING: This operation is irreversible.
- **zerodb_get_vector** — Retrieve a specific vector by ID. Use when you need to inspect a particular vector's metadata or embedding values. Optionally includes the full embedding array.
- **zerodb_list_vectors** — List vectors in a project/namespace with pagination. Use when the agent needs to browse or enumerate stored vectors, or answer "what vectors exist?". Supports filtering by namespace and metadata.
- **zerodb_vector_stats** — Get vector statistics for a project. Use when checking how many vectors are stored, their dimensions, and namespace distribution. Returns counts, dimension breakdowns, and optionally detailed statistics.
- **zerodb_create_vector_index** — Create optimized index for vector search. Use when search performance needs improvement on large vector collections. Supports IVF, HNSW, and flat index types with configurable distance metrics.
- **zerodb_optimize_vectors** — Optimize vector storage for better performance. Use when vector search is slow or storage needs compaction. Supports compress, reindex, and deduplicate operations. Use dry_run to preview changes first.
- **zerodb_export_vectors** — Export vectors to various formats (JSON, CSV, Parquet). Use when you need to download or migrate vector data out of ZeroDB. Supports filtering by namespace and metadata.
- **zerodb_quantum_compress** — Compress vector using TurboQuant (PolarQuant + QJL) algorithm from Google Research (ICLR 2026). Achieves ~3.5x compression with 0.9999+ cosine similarity preservation. Data-oblivious — no calibration needed. Returns base64-encoded compressed data.
- **zerodb_quantum_decompress** — Decompress a TurboQuant-compressed vector back to original dimensions. Reconstructs the full vector from the base64-encoded compressed data returned by zerodb_quantum_compress.
- **zerodb_quantum_hybrid_search** — Hybrid similarity search combining cosine similarity with metadata boosting. Returns ranked results with configurable weighting between similarity score and metadata relevance.
- **zerodb_quantum_optimize** — Analyze vector space characteristics for optimal TurboQuant compression settings. Reports sparsity, magnitude distribution, and recommended precision level.
- **zerodb_quantum_feature_map** — Transform vector into feature space for enhanced similarity computation. Applies configurable feature mapping for dimensionality transformation.
- **zerodb_quantum_kernel** — Calculate kernel similarity between two vectors. Supports fidelity (normalized dot product squared) and swap_test kernel types for measuring vector similarity.
- **zerodb_create_table** — Create a new NoSQL table with schema. Use when you need to set up a new data structure for storing structured records. Define fields and indexes for the table schema.
- **zerodb_list_tables** — List all NoSQL tables in the project with their schemas. Use when the agent needs to discover available data structures or answer "what tables exist?". Returns table names, row counts, and field definitions.
- **zerodb_get_table** — Get table details and schema. Use when you need to inspect a specific table's structure, field types, indexes, and optionally row count statistics.
- **zerodb_delete_table** — Delete a table and all its data. Use when a table is no longer needed and should be permanently removed. Requires confirm flag. WARNING: This operation is irreversible.
- **zerodb_insert_rows** — Insert rows into a table. Use when adding new records to a NoSQL table. Accepts an array of row objects and optionally returns inserted IDs.
- **zerodb_query_rows** — Query rows from a table with filters. Use when reading data from a NoSQL table. Supports MongoDB-style filters, sorting, pagination, and field projection.
- **zerodb_update_rows** — Update rows in a table. Use when modifying existing records in a NoSQL table. Supports MongoDB-style update operators ($set, $inc, etc.) and optional upsert behavior.
- **zerodb_delete_rows** — Delete rows from a table matching a filter. Use when removing specific records from a NoSQL table. Supports MongoDB-style filters. WARNING: This operation is irreversible.
- **zerodb_upload_file** — Upload file to ZeroDB storage. Use when you need to store a file (base64-encoded) in the project's S3-compatible object storage. Supports metadata and virtual folder organization.
- **zerodb_download_file** — Download file from ZeroDB storage. Use when you need to retrieve a previously uploaded file by its ID. Returns base64-encoded content by default.
- **zerodb_list_files** — List files in project storage. Use when the agent needs to discover available files or answer "what files are stored?". Supports filtering by folder and MIME type with pagination.
- **zerodb_delete_file** — Delete file from storage. Use when a file is no longer needed and should be permanently removed. WARNING: This operation is irreversible.
- **zerodb_get_file_metadata** — Get file metadata without downloading content. Use when you need to check a file's size, type, upload date, or custom metadata without fetching the actual file data.
- **zerodb_generate_presigned_url** — Generate presigned URL for file access. Use when you need a temporary URL to share file access with external systems. Supports download and upload operations with configurable expiration.
- **zerodb_create_event** — Create an event in the event stream. Use when you need to publish an event for tracking, auditing, or triggering downstream workflows. Supports event types, payloads, and correlation IDs.
- **zerodb_list_events** — List events with filtering. Use when you need to browse or query the event stream by type, source, or time range. Supports pagination for large result sets.
- **zerodb_get_event** — Get event details by ID. Use when you need to inspect a specific event's full payload, timestamps, and metadata.
- **zerodb_subscribe_events** — Subscribe to event stream (returns subscription ID). Use when you need to set up real-time event notifications. Supports filtering by event type and optional webhook delivery.
- **zerodb_event_stats** — Get event stream statistics. Use when you need to understand event volume, frequency, and distribution over time. Supports filtering by event type and time range.
- **zerodb_create_project** — Create a new ZeroDB project. Use when you need to set up a new isolated workspace for storing vectors, tables, files, and events. Projects are the top-level organizational unit.
- **zerodb_get_project** — Get project details. Use when you need to inspect a project's configuration, settings, and enabled features. Uses the configured project ID by default.
- **zerodb_list_projects** — List all accessible projects. Use when the agent needs to discover available projects or answer "what projects do I have access to?". Returns project names, IDs, and basic info.
- **zerodb_update_project** — Update project settings. Use when you need to modify a project's name, description, or configuration settings.
- **zerodb_delete_project** — Delete a project and all its data. Use when a project is no longer needed. Removes all vectors, tables, files, and events within the project. Requires confirm flag. WARNING: This operation is irreversible.
- **zerodb_get_project_stats** — Get project usage statistics. Use when you need to check storage consumption, vector counts, API call volumes, and other usage metrics for a project.
- **zerodb_enable_database** — Enable database features for a project. Use when you need to activate specific capabilities (vectors, compression, nosql, files, events) on a project that does not yet have them enabled.
- **zerodb_rlhf_interaction** — Collect user interaction for RLHF training. Use when recording a prompt-response pair with optional feedback score for reinforcement learning. Each call creates a new training data point.
- **zerodb_rlhf_agent_feedback** — Collect agent-level feedback. Use when recording user satisfaction signals (thumbs up/down, ratings) for a specific agent. Useful for tracking agent quality over time.
- **zerodb_rlhf_workflow** — Collect workflow-level feedback. Use when recording the outcome of a multi-step workflow including success status, duration, and steps completed.
- **zerodb_rlhf_error** — Collect error report for RLHF improvement. Use when recording errors encountered during agent operation to improve future behavior. Include sanitized stack traces and severity levels.
- **zerodb_rlhf_status** — Get RLHF collection status. Use when you need to check whether RLHF data collection is active and how many interactions have been recorded for a session.
- **zerodb_rlhf_summary** — Get RLHF data summary and statistics. Use when you need an overview of collected RLHF data including interaction counts, average feedback scores, and trends over time.
- **zerodb_rlhf_start** — Start RLHF data collection for session. Use when initiating RLHF tracking at the beginning of an agent session. Safe to call multiple times — idempotent for the same session.
- **zerodb_rlhf_stop** — Stop RLHF data collection for session. Use when ending RLHF tracking at the end of an agent session. Optionally exports collected data before stopping.
- **zerodb_rlhf_session** — Get RLHF interactions for a session. Use when reviewing all recorded interactions within a specific RLHF session for analysis or export.
- **zerodb_rlhf_broadcast** — Broadcast RLHF event to subscribers. Use when sending RLHF-related notifications to specific agents or all subscribers. Supports targeted delivery to specific agent IDs.
- **zerodb_admin_system_stats** — Get system-wide statistics (admin only). Use when you need a global view of platform performance and usage metrics. Requires admin privileges.
- **zerodb_admin_list_projects** — List all projects system-wide (admin only). Use when you need to see all projects across all users for administrative purposes. Supports filtering by user ID. Requires admin privileges.
- **zerodb_admin_user_usage** — Get user usage statistics (admin only). Use when you need to inspect a specific user's resource consumption and API usage. Requires admin privileges.
- **zerodb_admin_health** — Get system health status (admin only). Use when you need to check the health of all system components (database, storage, search). Requires admin privileges.
- **zerodb_admin_optimize** — Run database optimization (admin only). Use when the database needs maintenance such as vacuum, reindex, or analyze operations. Supports dry_run to preview changes. Requires admin privileges.
- **zerodb_postgres_query** — Execute SQL query on provisioned PostgreSQL instance with security validations. Use when you need to run arbitrary SQL (SELECT, INSERT, UPDATE, DELETE) against the dedicated PostgreSQL database. Supports parameterized queries and read-only mode enforcement.
- **zerodb_postgres_schema_info** — Get database schema information (tables, columns, indexes). Use when you need to discover or inspect the PostgreSQL schema structure. Returns table definitions, column types, indexes, and constraints.
- **zerodb_postgres_create_table** — Create new PostgreSQL table with schema definition. Use when you need to define a new relational table with typed columns, constraints, and indexes. Supports if_not_exists for idempotent creation.
- **zerodb_postgres_backup** — Trigger PostgreSQL backup job. Use when you need to create a point-in-time backup of the database. Supports full and incremental backups with configurable retention and compression.
- **zerodb_postgres_restore** — Restore PostgreSQL database from backup. Use when you need to recover data from a previous backup. Supports full, schema-only, and data-only restore types. WARNING: This operation is irreversible — it overwrites existing data when confirm_overwrite is true.
- **zerodb_postgres_stats** — Get PostgreSQL database statistics (size, connections, query performance). Use when you need to monitor database health, connection pool usage, storage consumption, and query performance metrics.
- **zerodb_lakehouse_query** — Execute a read-only (SELECT/WITH only) SQL query against the project lakehouse via DuckDB over Parquet files in object storage. Use when you need to analyze or inspect data that has been ingested into the lakehouse. Destructive SQL (INSERT/UPDATE/DELETE/DROP/etc.) is rejected.
- **zerodb_lakehouse_list_tables** — List the lakehouse tables (sensor-type partitions) available for a project, with file counts, total bytes, and last-modified time. Use when you need to discover what data exists in the lakehouse before querying it.
- **zerodb_lakehouse_catalog_list** — List all partitions in the public lakehouse data catalog, with file counts and sizes. Use when you need a platform-wide overview of available lakehouse data, independent of any single project. No project_id required.
- **zerodb_lakehouse_catalog_search** — Search the public lakehouse data catalog by partition name. Use when you need to find which lakehouse partitions match a keyword (e.g. "weather", "ais") before querying them.
- **zerodb_provision_postgres** — Provision a dedicated PostgreSQL instance via Railway with dedicated resources. Use when you need to spin up a new managed PostgreSQL database. Choose instance size based on workload requirements and budget.
- **zerodb_get_postgres_status** — Get status and health metrics for dedicated PostgreSQL instance. Use when you need to check if your PostgreSQL instance is running, its uptime, and health indicators.
- **zerodb_get_postgres_connection** — Get connection credentials for PostgreSQL instance (database_url, host, port, etc.). Use when you need connection details to configure applications or tools. Supports primary, readonly, and admin credential types.
- **zerodb_get_postgres_usage** — Get usage statistics and billing information for PostgreSQL instance. Use when you need to review compute usage, storage consumption, and cost breakdown for your dedicated instance.
- **zerodb_get_postgres_logs** — Get SQL query logs with performance metrics and credit consumption. Use when you need to audit queries, debug slow operations, or review credit usage. Supports filtering by query type.
- **zerodb_restart_postgres** — Restart the dedicated PostgreSQL instance (completes in 30-60 seconds). Use when the instance needs a restart due to configuration changes or performance issues. Does not lose data.
- **zerodb_delete_postgres** — Delete the PostgreSQL instance and all data (requires confirmation). Use when the instance is no longer needed. Requires confirm=true. WARNING: This operation is irreversible.
- **zerodb_graph_upsert_entity** — Create or update a knowledge graph entity. Use when you need to add a person, organization, technology, or concept to the context graph, or refresh an existing one. If the entity already exists (matched by canonical_name + entity_type), aliases are merged and memory_count is incremented rather than duplicating the entity.
- **zerodb_graph_create_edge** — Create or strengthen a directed edge (relationship) between two existing entities in the knowledge graph. Use when you have identified a relationship between two entities you have already created with zerodb_graph_upsert_entity. Both entities must already exist — this does not create them. Unlike zerodb_graph_traverse which reads the graph, this writes to it.
- **zerodb_graph_traverse** — Multi-hop traversal of the knowledge graph starting from an entity. Use when you need to discover what is connected to an entity, directly or transitively, up to a bounded depth. Returns nodes, edges, and paths discovered within max_hops. Unlike zerodb_graph_rag_search which ranks results by relevance to a text query, this is a pure structural walk from a known starting entity.
- **zerodb_graph_rag_search** — GraphRAG hybrid search — blends vector similarity with knowledge graph proximity. Use when you want search results that are both semantically relevant to a query AND structurally connected in the entity graph, rather than relying on vector similarity alone. graph_weight=0.0 behaves like pure vector search (same as zerodb_semantic_search); graph_weight=1.0 is pure graph proximity ranking; the default 0.3 blends both.
- **zerodb_renew_token** — Manually renew authentication token. Use when the current auth token has expired or is about to expire and you need to force a refresh before the next API call.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "zerodb-mcp-server": {
    "command": "npx",
    "args": ["ainative-zerodb-mcp-server"],
    "env": {
      "ZERODB_API_URL": "",
      "ZERODB_PROJECT_ID": "",
      "ZERODB_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `ZERODB_API_URL`, `ZERODB_PROJECT_ID`, `ZERODB_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What ZeroDB MCP Server does

ZeroDB MCP Server MCP server exposes AINative ZeroDB capabilities to MCP-compatible AI clients through a local stdio process. It is suited to agents that need persistent memory, semantic retrieval, structured data access, or project-scoped storage without implementing the ZeroDB API directly.

The available operation groups cover memory, vectors, embeddings, quantum processing, NoSQL tables, files, events, projects, RLHF collection, administration, and PostgreSQL. Memory tools can store entries, search them semantically, and retrieve a context window for a session. Embedding tools can generate vectors, combine embedding with storage, and run semantic search.

For database-oriented agent workflows, the server belongs in the 🗄️ Databases category. It can be a fit for assistants that need durable preferences, searchable documents, SQL operations, flexible tables, or access to files and events within a ZeroDB project.

## How it works

The server runs locally and communicates with the MCP client over stdio. The client starts the package with `npx` or a globally installed executable, then invokes the exposed operations as MCP tools. Requests are sent to ZeroDB using the configured API URL, project identifier, and API key.

Operations are project-scoped, so the setup process requires creating a ZeroDB account and project before configuring the client. The documented API service is `https://api.ainative.studio`.

## Setup and configuration

Install the package globally with `npm install -g ainative-zerodb-mcp-server`, or run it without a permanent installation using `npx ainative-zerodb-mcp-server`. Node.js 18 or newer and npm 9 or newer are listed as requirements.

A client configuration needs these environment values:

- `ZERODB_API_URL`: the ZeroDB API base URL.
- `ZERODB_PROJECT_ID`: the project used for operations.
- `ZERODB_API_KEY`: the API credential.

The example Claude Desktop configuration starts `npx` with the package name and passes those values through its `env` object. It also shows optional `MCP_CONTEXT_WINDOW` and `MCP_RETENTION_DAYS` settings for context sizing and retention. After saving the configuration, restart the client.

## Tools and capabilities

The ZeroDB MCP Server MCP server provides tools for:

- Storing, searching, and retrieving persistent agent memory.
- Generating embeddings, storing vectors, and performing semantic search.
- Managing vector namespaces and using supported embedding dimensions.
- Executing PostgreSQL queries and handling schema, backup, and statistics operations.
- Working with NoSQL tables and stored files.
- Publishing or consuming events through the event system.
- Managing projects, collecting RLHF data, and checking system health.
- Applying quantum vector compression operations.

It also describes `zerodb_get_context` for obtaining session context within a token limit.

## Limitations and notes

The server requires an active ZeroDB account, project, and API credentials; it is not a standalone database. It is documented as a local stdio server, so the MCP client must be able to launch a local Node.js process. The README contains both a broad “70+” operation description and an API reference organized around 60 operations; the exact exposed set should be checked against the installed package version.

Vector dimension support depends on the operation and configuration. The memory context tool also uses a token limit, with 8192 shown as the default in the documentation. Keep credentials in the MCP client’s environment configuration rather than embedding them in prompts or tool arguments.

_Full upstream README: https://allmcps.com/mcp/ainative-zerodb-mcp-server/readme_

