Skip to main content
Glama

zerodb_store_memory

Store agent conversation memory in persistent database to maintain context across sessions for continuous AI interactions.

Instructions

Store agent memory in ZeroDB for persistent context

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
agent_idNoAgent identifier (auto-generated if not provided)
contentYesMemory content to store
metadataNoAdditional metadata
roleYesMessage role
session_idNoSession identifier (auto-generated if not provided)

Implementation Reference

  • Input schema definition for the zerodb_store_memory tool, including properties for content, role, session_id, agent_id, and metadata.
    { name: 'zerodb_store_memory', description: 'Store agent memory in ZeroDB for persistent context', inputSchema: { type: 'object', properties: { content: { type: 'string', description: 'Memory content to store' }, role: { type: 'string', enum: ['user', 'assistant', 'system'], description: 'Message role' }, session_id: { type: 'string', description: 'Session identifier (auto-generated if not provided)' }, agent_id: { type: 'string', description: 'Agent identifier (auto-generated if not provided)' }, metadata: { type: 'object', description: 'Additional metadata' } }, required: ['content', 'role'] } },
  • Routing dispatch in routeToolCall method that maps zerodb_store_memory tool calls to the backend operation 'store_memory'.
    case 'zerodb_store_memory': return await this.executeOperation('store_memory', args)
  • Core handler function that executes the tool by making an HTTP POST request to the ZeroDB API (/v1/public/zerodb/mcp/execute) with the mapped operation name and parameters, handling authentication, errors, and response formatting.
    async executeOperation (operation, params) { try { // Add project_id to params if not present and we have one if (!params.project_id && this.projectId) { params.project_id = this.projectId } console.error(`Executing operation: ${operation}`) const response = await axios.post( `${this.apiUrl}/v1/public/zerodb/mcp/execute`, { operation, params }, { headers: { Authorization: `Bearer ${this.apiToken}`, 'Content-Type': 'application/json' }, timeout: 30000 // 30 second timeout for operations } ) // Check if operation was successful if (response.data.success) { return { content: [{ type: 'text', text: JSON.stringify(response.data.result, null, 2) }] } } else { return { content: [{ type: 'text', text: `Operation failed: ${JSON.stringify(response.data.error, null, 2)}` }], isError: true } } } catch (error) { const errorMsg = error.response?.data?.error?.message || error.message const errorDetails = error.response?.data?.error?.details || '' console.error(`Operation ${operation} failed:`, errorMsg) return { content: [{ type: 'text', text: `Error executing ${operation}: ${errorMsg}${errorDetails ? '\nDetails: ' + JSON.stringify(errorDetails) : ''}` }], isError: true } } }
  • index.js:58-911 (registration)
    Registration of all tools including zerodb_store_memory via the ListToolsRequestSchema handler in setupTools method.
    this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ // ==================== MEMORY OPERATIONS (3) ==================== { name: 'zerodb_store_memory', description: 'Store agent memory in ZeroDB for persistent context', inputSchema: { type: 'object', properties: { content: { type: 'string', description: 'Memory content to store' }, role: { type: 'string', enum: ['user', 'assistant', 'system'], description: 'Message role' }, session_id: { type: 'string', description: 'Session identifier (auto-generated if not provided)' }, agent_id: { type: 'string', description: 'Agent identifier (auto-generated if not provided)' }, metadata: { type: 'object', description: 'Additional metadata' } }, required: ['content', 'role'] } }, { name: 'zerodb_search_memory', description: 'Search agent memory using semantic similarity', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query' }, session_id: { type: 'string', description: 'Filter by session' }, agent_id: { type: 'string', description: 'Filter by agent' }, role: { type: 'string', description: 'Filter by role' }, limit: { type: 'number', description: 'Max results', default: 10 } }, required: ['query'] } }, { name: 'zerodb_get_context', description: 'Get agent context window for current session', inputSchema: { type: 'object', properties: { session_id: { type: 'string', description: 'Session identifier' }, agent_id: { type: 'string', description: 'Agent identifier' }, max_tokens: { type: 'number', description: 'Max tokens in context' } }, required: ['session_id'] } }, // ==================== VECTOR OPERATIONS (10) ==================== { name: 'zerodb_upsert_vector', description: 'Store or update a vector embedding with metadata (1536 dimensions)', inputSchema: { type: 'object', properties: { vector_embedding: { type: 'array', items: { type: 'number' }, description: 'Vector embedding (exactly 1536 dimensions required)', minItems: 1536, maxItems: 1536 }, document: { type: 'string', description: 'Source document or text' }, metadata: { type: 'object', description: 'Document metadata' }, namespace: { type: 'string', description: 'Vector namespace', default: 'default' }, vector_id: { type: 'string', description: 'Optional vector ID for updates' } }, required: ['vector_embedding', 'document'] } }, { name: 'zerodb_batch_upsert_vectors', description: 'Batch upsert multiple vectors for efficiency', inputSchema: { type: 'object', properties: { vectors: { type: 'array', items: { type: 'object', properties: { vector_embedding: { type: 'array', items: { type: 'number' } }, document: { type: 'string' }, metadata: { type: 'object' }, vector_id: { type: 'string' } }, required: ['vector_embedding', 'document'] }, description: 'Array of vectors to upsert' }, namespace: { type: 'string', description: 'Vector namespace', default: 'default' } }, required: ['vectors'] } }, { name: 'zerodb_search_vectors', description: 'Search vectors using semantic similarity', inputSchema: { type: 'object', properties: { query_vector: { type: 'array', items: { type: 'number' }, description: 'Query vector (exactly 1536 dimensions required)', minItems: 1536, maxItems: 1536 }, namespace: { type: 'string', description: 'Vector namespace' }, limit: { type: 'number', description: 'Max results', default: 10 }, threshold: { type: 'number', description: 'Similarity threshold', default: 0.7 }, filter_metadata: { type: 'object', description: 'Metadata filters' } }, required: ['query_vector'] } }, { name: 'zerodb_delete_vector', description: 'Delete a specific vector by ID', inputSchema: { type: 'object', properties: { vector_id: { type: 'string', description: 'Vector ID to delete' }, namespace: { type: 'string', description: 'Vector namespace' } }, required: ['vector_id'] } }, { name: 'zerodb_get_vector', description: 'Retrieve a specific vector by ID', inputSchema: { type: 'object', properties: { vector_id: { type: 'string', description: 'Vector ID to retrieve' }, namespace: { type: 'string', description: 'Vector namespace' }, include_embedding: { type: 'boolean', description: 'Include full embedding in response', default: false } }, required: ['vector_id'] } }, { name: 'zerodb_list_vectors', description: 'List vectors in a project/namespace with pagination', inputSchema: { type: 'object', properties: { namespace: { type: 'string', description: 'Vector namespace' }, limit: { type: 'number', description: 'Results per page', default: 100 }, offset: { type: 'number', description: 'Pagination offset', default: 0 }, filter_metadata: { type: 'object', description: 'Metadata filters' } }, required: [] } }, { name: 'zerodb_vector_stats', description: 'Get vector statistics for a project', inputSchema: { type: 'object', properties: { namespace: { type: 'string', description: 'Optional namespace filter' }, detailed: { type: 'boolean', description: 'Include detailed statistics', default: false } }, required: [] } }, { name: 'zerodb_create_vector_index', description: 'Create optimized index for vector search', inputSchema: { type: 'object', properties: { namespace: { type: 'string', description: 'Namespace to index' }, index_type: { type: 'string', enum: ['ivf', 'hnsw', 'flat'], description: 'Index algorithm', default: 'hnsw' }, distance_metric: { type: 'string', enum: ['cosine', 'euclidean', 'dot'], description: 'Distance metric', default: 'cosine' }, index_params: { type: 'object', description: 'Algorithm-specific parameters' } }, required: [] } }, { name: 'zerodb_optimize_vectors', description: 'Optimize vector storage for better performance', inputSchema: { type: 'object', properties: { namespace: { type: 'string', description: 'Namespace to optimize' }, optimize_type: { type: 'string', enum: ['compress', 'reindex', 'deduplicate'], description: 'Optimization type', default: 'reindex' }, dry_run: { type: 'boolean', description: 'Preview changes without applying', default: false } }, required: [] } }, { name: 'zerodb_export_vectors', description: 'Export vectors to various formats (JSON, CSV, Parquet)', inputSchema: { type: 'object', properties: { namespace: { type: 'string', description: 'Namespace to export' }, format: { type: 'string', enum: ['json', 'csv', 'parquet'], description: 'Export format', default: 'json' }, filter_metadata: { type: 'object', description: 'Metadata filters' }, include_embeddings: { type: 'boolean', description: 'Include vector embeddings', default: true } }, required: [] } }, // ==================== QUANTUM OPERATIONS (6) ==================== { name: 'zerodb_quantum_compress', description: 'Apply quantum-inspired compression to vector (reduces dimensionality)', inputSchema: { type: 'object', properties: { vector_embedding: { type: 'array', items: { type: 'number' }, description: 'Vector to compress' }, compression_ratio: { type: 'number', description: 'Target compression ratio (0.0-1.0)', default: 0.5 }, preserve_similarity: { type: 'boolean', description: 'Preserve similarity relationships', default: true } }, required: ['vector_embedding'] } }, { name: 'zerodb_quantum_decompress', description: 'Decompress quantum-compressed vector back to original dimensions', inputSchema: { type: 'object', properties: { compressed_vector: { type: 'array', items: { type: 'number' }, description: 'Compressed vector' }, original_dimensions: { type: 'number', description: 'Original vector dimensions', default: 1536 }, compression_metadata: { type: 'object', description: 'Compression metadata from compress operation' } }, required: ['compressed_vector'] } }, { name: 'zerodb_quantum_hybrid_search', description: 'Hybrid similarity search using quantum enhancement', inputSchema: { type: 'object', properties: { query_vector: { type: 'array', items: { type: 'number' }, description: 'Query vector' }, namespace: { type: 'string', description: 'Vector namespace' }, quantum_weight: { type: 'number', description: 'Quantum similarity weight (0.0-1.0)', default: 0.3 }, classical_weight: { type: 'number', description: 'Classical similarity weight (0.0-1.0)', default: 0.7 }, limit: { type: 'number', description: 'Max results', default: 10 } }, required: ['query_vector'] } }, { name: 'zerodb_quantum_optimize', description: 'Optimize quantum circuits for project vectors', inputSchema: { type: 'object', properties: { namespace: { type: 'string', description: 'Namespace to optimize' }, optimization_level: { type: 'number', description: 'Optimization level (1-3)', default: 2 }, target_backend: { type: 'string', enum: ['simulator', 'ionq', 'rigetti'], description: 'Target quantum backend', default: 'simulator' } }, required: [] } }, { name: 'zerodb_quantum_feature_map', description: 'Apply quantum feature mapping to vector', inputSchema: { type: 'object', properties: { vector_embedding: { type: 'array', items: { type: 'number' }, description: 'Input vector' }, feature_map_type: { type: 'string', enum: ['zz', 'pauli', 'custom'], description: 'Feature map type', default: 'zz' }, num_qubits: { type: 'number', description: 'Number of qubits to use', default: 10 }, reps: { type: 'number', description: 'Number of repetitions', default: 2 } }, required: ['vector_embedding'] } }, { name: 'zerodb_quantum_kernel', description: 'Calculate quantum kernel similarity between vectors', inputSchema: { type: 'object', properties: { vector_a: { type: 'array', items: { type: 'number' }, description: 'First vector' }, vector_b: { type: 'array', items: { type: 'number' }, description: 'Second vector' }, kernel_type: { type: 'string', enum: ['fidelity', 'swap_test'], description: 'Kernel type', default: 'fidelity' }, shots: { type: 'number', description: 'Number of quantum shots', default: 1024 } }, required: ['vector_a', 'vector_b'] } }, // ==================== TABLE/NoSQL OPERATIONS (8) ==================== { name: 'zerodb_create_table', description: 'Create a new NoSQL table with schema', inputSchema: { type: 'object', properties: { table_name: { type: 'string', description: 'Unique table name' }, schema: { type: 'object', description: 'Table schema definition', properties: { fields: { type: 'object', description: 'Field definitions' }, indexes: { type: 'array', description: 'Index definitions' } } }, description: { type: 'string', description: 'Table description' } }, required: ['table_name', 'schema'] } }, { name: 'zerodb_list_tables', description: 'List all tables in the project', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Max results', default: 100 }, offset: { type: 'number', description: 'Pagination offset', default: 0 } }, required: [] } }, { name: 'zerodb_get_table', description: 'Get table details and schema', inputSchema: { type: 'object', properties: { table_id: { type: 'string', description: 'Table ID or name' }, include_stats: { type: 'boolean', description: 'Include row count and stats', default: true } }, required: ['table_id'] } }, { name: 'zerodb_delete_table', description: 'Delete a table and all its data', inputSchema: { type: 'object', properties: { table_id: { type: 'string', description: 'Table ID or name to delete' }, confirm: { type: 'boolean', description: 'Confirmation flag', default: false } }, required: ['table_id', 'confirm'] } }, { name: 'zerodb_insert_rows', description: 'Insert rows into a table', inputSchema: { type: 'object', properties: { table_id: { type: 'string', description: 'Table ID or name' }, rows: { type: 'array', items: { type: 'object' }, description: 'Array of row objects to insert' }, return_ids: { type: 'boolean', description: 'Return inserted row IDs', default: true } }, required: ['table_id', 'rows'] } }, { name: 'zerodb_query_rows', description: 'Query rows from a table with filters', inputSchema: { type: 'object', properties: { table_id: { type: 'string', description: 'Table ID or name' }, filter: { type: 'object', description: 'MongoDB-style query filter' }, sort: { type: 'object', description: 'Sort specification' }, limit: { type: 'number', description: 'Max results', default: 100 }, offset: { type: 'number', description: 'Pagination offset', default: 0 }, projection: { type: 'object', description: 'Field projection' } }, required: ['table_id'] } }, { name: 'zerodb_update_rows', description: 'Update rows in a table', inputSchema: { type: 'object', properties: { table_id: { type: 'string', description: 'Table ID or name' }, filter: { type: 'object', description: 'MongoDB-style query filter' }, update: { type: 'object', description: 'Update operations ($set, $inc, etc.)' }, upsert: { type: 'boolean', description: 'Insert if not found', default: false } }, required: ['table_id', 'filter', 'update'] } }, { name: 'zerodb_delete_rows', description: 'Delete rows from a table', inputSchema: { type: 'object', properties: { table_id: { type: 'string', description: 'Table ID or name' }, filter: { type: 'object', description: 'MongoDB-style query filter to match rows' }, limit: { type: 'number', description: 'Max rows to delete (0 = all matching)', default: 0 } }, required: ['table_id', 'filter'] } }, // ==================== FILE OPERATIONS (6) ==================== { name: 'zerodb_upload_file', description: 'Upload file to ZeroDB storage', inputSchema: { type: 'object', properties: { file_name: { type: 'string', description: 'File name' }, file_content: { type: 'string', description: 'Base64-encoded file content' }, content_type: { type: 'string', description: 'MIME type', default: 'application/octet-stream' }, metadata: { type: 'object', description: 'File metadata' }, folder: { type: 'string', description: 'Virtual folder path' } }, required: ['file_name', 'file_content'] } }, { name: 'zerodb_download_file', description: 'Download file from ZeroDB storage', inputSchema: { type: 'object', properties: { file_id: { type: 'string', description: 'File ID to download' }, return_base64: { type: 'boolean', description: 'Return as base64 string', default: true } }, required: ['file_id'] } }, { name: 'zerodb_list_files', description: 'List files in project storage', inputSchema: { type: 'object', properties: { folder: { type: 'string', description: 'Filter by folder path' }, content_type: { type: 'string', description: 'Filter by MIME type' }, limit: { type: 'number', description: 'Max results', default: 100 }, offset: { type: 'number', description: 'Pagination offset', default: 0 } }, required: [] } }, { name: 'zerodb_delete_file', description: 'Delete file from storage', inputSchema: { type: 'object', properties: { file_id: { type: 'string', description: 'File ID to delete' } }, required: ['file_id'] } }, { name: 'zerodb_get_file_metadata', description: 'Get file metadata without downloading content', inputSchema: { type: 'object', properties: { file_id: { type: 'string', description: 'File ID' } }, required: ['file_id'] } }, { name: 'zerodb_generate_presigned_url', description: 'Generate presigned URL for file access', inputSchema: { type: 'object', properties: { file_id: { type: 'string', description: 'File ID' }, expiration_seconds: { type: 'number', description: 'URL expiration time', default: 3600 }, operation: { type: 'string', enum: ['download', 'upload'], description: 'URL operation type', default: 'download' } }, required: ['file_id'] } }, // ==================== EVENT OPERATIONS (5) ==================== { name: 'zerodb_create_event', description: 'Create an event in the event stream', inputSchema: { type: 'object', properties: { event_type: { type: 'string', description: 'Event type/category' }, event_data: { type: 'object', description: 'Event payload data' }, source: { type: 'string', description: 'Event source identifier' }, correlation_id: { type: 'string', description: 'Correlation ID for event tracking' } }, required: ['event_type', 'event_data'] } }, { name: 'zerodb_list_events', description: 'List events with filtering', inputSchema: { type: 'object', properties: { event_type: { type: 'string', description: 'Filter by event type' }, source: { type: 'string', description: 'Filter by source' }, start_time: { type: 'string', description: 'ISO timestamp - events after this time' }, end_time: { type: 'string', description: 'ISO timestamp - events before this time' }, limit: { type: 'number', description: 'Max results', default: 100 }, offset: { type: 'number', description: 'Pagination offset', default: 0 } }, required: [] } }, { name: 'zerodb_get_event', description: 'Get event details by ID', inputSchema: { type: 'object', properties: { event_id: { type: 'string', description: 'Event ID' } }, required: ['event_id'] } }, { name: 'zerodb_subscribe_events', description: 'Subscribe to event stream (returns subscription ID)', inputSchema: { type: 'object', properties: { event_types: { type: 'array', items: { type: 'string' }, description: 'Event types to subscribe to' }, filter: { type: 'object', description: 'Event filter criteria' }, webhook_url: { type: 'string', description: 'Optional webhook URL for events' } }, required: ['event_types'] } }, { name: 'zerodb_event_stats', description: 'Get event stream statistics', inputSchema: { type: 'object', properties: { event_type: { type: 'string', description: 'Filter by event type' }, time_range: { type: 'string', enum: ['hour', 'day', 'week', 'month'], description: 'Statistics time range', default: 'day' } }, required: [] } }, // ==================== PROJECT OPERATIONS (7) ==================== { name: 'zerodb_create_project', description: 'Create a new ZeroDB project', inputSchema: { type: 'object', properties: { project_name: { type: 'string', description: 'Unique project name' }, description: { type: 'string', description: 'Project description' }, settings: { type: 'object', description: 'Project settings and configuration' } }, required: ['project_name'] } }, { name: 'zerodb_get_project', description: 'Get project details', inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID (optional, uses env default if not provided)' } }, required: [] } }, { name: 'zerodb_list_projects', description: 'List all accessible projects', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Max results', default: 100 }, offset: { type: 'number', description: 'Pagination offset', default: 0 } }, required: [] } }, { name: 'zerodb_update_project', description: 'Update project settings', inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID' }, project_name: { type: 'string', description: 'New project name' }, description: { type: 'string', description: 'New description' }, settings: { type: 'object', description: 'Updated settings' } }, required: ['project_id'] } }, { name: 'zerodb_delete_project', description: 'Delete a project and all its data', inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID to delete' }, confirm: { type: 'boolean', description: 'Confirmation flag', default: false } }, required: ['project_id', 'confirm'] } }, { name: 'zerodb_get_project_stats', description: 'Get project usage statistics', inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID (optional, uses env default)' }, include_details: { type: 'boolean', description: 'Include detailed breakdowns', default: true } }, required: [] } }, { name: 'zerodb_enable_database', description: 'Enable database features for a project', inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID' }, features: { type: 'array', items: { type: 'string' }, description: 'Features to enable: vectors, quantum, nosql, files, events' } }, required: ['project_id', 'features'] } }, // ==================== RLHF OPERATIONS (10) ==================== { name: 'zerodb_rlhf_interaction', description: 'Collect user interaction for RLHF training', inputSchema: { type: 'object', properties: { prompt: { type: 'string', description: 'User prompt' }, response: { type: 'string', description: 'Agent response' }, feedback: { type: 'number', description: 'User feedback score (-1 to 1)' }, context: { type: 'object', description: 'Interaction context' }, agent_id: { type: 'string', description: 'Agent identifier' } }, required: ['prompt', 'response'] } }, { name: 'zerodb_rlhf_agent_feedback', description: 'Collect agent-level feedback', inputSchema: { type: 'object', properties: { agent_id: { type: 'string', description: 'Agent identifier' }, feedback_type: { type: 'string', enum: ['thumbs_up', 'thumbs_down', 'rating'], description: 'Feedback type' }, rating: { type: 'number', description: 'Rating value (1-5 for rating type)' }, comment: { type: 'string', description: 'Optional feedback comment' }, context: { type: 'object', description: 'Feedback context' } }, required: ['agent_id', 'feedback_type'] } }, { name: 'zerodb_rlhf_workflow', description: 'Collect workflow-level feedback', inputSchema: { type: 'object', properties: { workflow_id: { type: 'string', description: 'Workflow identifier' }, success: { type: 'boolean', description: 'Workflow success status' }, duration_ms: { type: 'number', description: 'Workflow duration in milliseconds' }, steps_completed: { type: 'number', description: 'Number of steps completed' }, feedback: { type: 'object', description: 'Detailed workflow feedback' } }, required: ['workflow_id', 'success'] } }, { name: 'zerodb_rlhf_error', description: 'Collect error report for RLHF improvement', inputSchema: { type: 'object', properties: { error_type: { type: 'string', description: 'Error type/category' }, error_message: { type: 'string', description: 'Error message' }, stack_trace: { type: 'string', description: 'Error stack trace (sanitized)' }, context: { type: 'object', description: 'Error context' }, severity: { type: 'string', enum: ['low', 'medium', 'high', 'critical'], description: 'Error severity', default: 'medium' } }, required: ['error_type', 'error_message'] } }, { name: 'zerodb_rlhf_status', description: 'Get RLHF collection status', inputSchema: { type: 'object', properties: { session_id: { type: 'string', description: 'Optional session ID filter' } }, required: [] } }, { name: 'zerodb_rlhf_summary', description: 'Get RLHF data summary and statistics', inputSchema: { type: 'object', properties: { time_range: { type: 'string', enum: ['hour', 'day', 'week', 'month'], description: 'Summary time range', default: 'day' }, agent_id: { type: 'string', description: 'Filter by agent' } }, required: [] } }, { name: 'zerodb_rlhf_start', description: 'Start RLHF data collection for session', inputSchema: { type: 'object', properties: { session_id: { type: 'string', description: 'Session identifier' }, config: { type: 'object', description: 'Collection configuration' } }, required: ['session_id'] } }, { name: 'zerodb_rlhf_stop', description: 'Stop RLHF data collection for session', inputSchema: { type: 'object', properties: { session_id: { type: 'string', description: 'Session identifier' }, export_data: { type: 'boolean', description: 'Export collected data', default: false } }, required: ['session_id'] } }, { name: 'zerodb_rlhf_session', description: 'Get RLHF interactions for a session', inputSchema: { type: 'object', properties: { session_id: { type: 'string', description: 'Session identifier' }, limit: { type: 'number', description: 'Max results', default: 100 } }, required: ['session_id'] } }, { name: 'zerodb_rlhf_broadcast', description: 'Broadcast RLHF event to subscribers', inputSchema: { type: 'object', properties: { event_type: { type: 'string', description: 'Event type' }, event_data: { type: 'object', description: 'Event payload' }, target_agents: { type: 'array', items: { type: 'string' }, description: 'Target agent IDs' } }, required: ['event_type', 'event_data'] } }, // ==================== ADMIN OPERATIONS (5) ==================== { name: 'zerodb_admin_system_stats', description: 'Get system-wide statistics (admin only)', inputSchema: { type: 'object', properties: { include_performance: { type: 'boolean', description: 'Include performance metrics', default: true }, include_usage: { type: 'boolean', description: 'Include usage metrics', default: true } }, required: [] } }, { name: 'zerodb_admin_list_projects', description: 'List all projects system-wide (admin only)', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Max results', default: 100 }, offset: { type: 'number', description: 'Pagination offset', default: 0 }, filter_user: { type: 'string', description: 'Filter by user ID' } }, required: [] } }, { name: 'zerodb_admin_user_usage', description: 'Get user usage statistics (admin only)', inputSchema: { type: 'object', properties: { user_id: { type: 'string', description: 'User ID to query' }, time_range: { type: 'string', enum: ['hour', 'day', 'week', 'month'], description: 'Statistics time range', default: 'day' } }, required: ['user_id'] } }, { name: 'zerodb_admin_health', description: 'Get system health status (admin only)', inputSchema: { type: 'object', properties: { include_components: { type: 'boolean', description: 'Include component health', default: true } }, required: [] } }, { name: 'zerodb_admin_optimize', description: 'Run database optimization (admin only)', inputSchema: { type: 'object', properties: { optimization_type: { type: 'string', enum: ['vacuum', 'reindex', 'analyze'], description: 'Optimization type' }, project_id: { type: 'string', description: 'Optional project ID to optimize' }, dry_run: { type: 'boolean', description: 'Preview without applying', default: false } }, required: ['optimization_type'] } }, // ==================== UTILITY OPERATIONS (1) ==================== { name: 'zerodb_renew_token', description: 'Manually renew authentication token', inputSchema: { type: 'object', properties: {}, required: [] } } ] })) }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AINative-Studio/ainative-zerodb-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server