Skip to content

tradik/mddb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

374 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

MDDB β€” AI-Native Document Database

Go Version License Release Docker Docker Pulls Tests

AI-native document database with built-in MCP server, file upload (PDF/DOCX/HTML/ODT/RTF/TEX/YAML/Wikipedia XML→Markdown), vector search, RAG pipelines, and 67 MCP tools. Plugs directly into Claude, ChatGPT, Cursor, Windsurf, and any MCP-compatible agent.

MDDB is a document database purpose-built for AI agents and LLM workflows. Upload files (PDF, DOCX, HTML, ODT, RTF, TEX, YAML, TXT) β€” they're auto-converted to Markdown and embedded for semantic search. Expose everything to AI agents via 67 built-in MCP tools. Integrates with Docling, Langflow, OpenSearch, SSG, wpexporter, and Airbyte for production pipelines. Single ~29MB binary, zero configuration, BoltDB embedded storage, triple-protocol APIs (HTTP + gRPC + GraphQL).

🎯 What is MDDB?

MDDB gives your AI agents a persistent, searchable knowledge base:

  • File Upload - Upload PDF, DOCX, HTML, ODT, RTF, TEX, YAML, TXT files β€” auto-converted to Markdown and indexed
  • Wikipedia Import - Stream and import MediaWiki XML dumps (.xml.bz2) β€” wikitext auto-converted to Markdown, namespace filtering, handles multi-GB files
  • Built-in MCP Server - 67 tools for Claude Desktop, Cursor, Windsurf, or any MCP client
  • Vector Search - Auto-embed documents, semantic similarity with 7 index algorithms (Flat, HNSW, IVF, PQ, OPQ, SQ, BQ) + per-collection quantization (int8/int4) + ARM NEON/SME hardware acceleration + goroutine parallel search
  • Geo Search - R-tree and geohash indexes for radius/bounding-box queries, composable with FTS/vector via hybrid-search, optional postcode lookup
  • RAG-Ready - Hybrid search (BM25 + vector) for retrieval-augmented generation
  • Memory RAG - Conversational memory system: store, recall, and summarize chat sessions with semantic search
  • Integrations - Docling, Langflow, OpenSearch, SSG, wpexporter, Airbyte for production pipelines
  • Zero-Shot Classification β€” Classify documents against candidate labels using embeddings, no training data
  • Custom AI Tools - Define YAML-based MCP tools for domain-specific workflows
  • Full-Text Search - Built-in inverted index with TF-IDF, BM25, BM25F, PMISparse, 8 search modes (simple, boolean, phrase, wildcard, proximity, expression, range, fuzzy), typo tolerance, multi-language stemming (18 languages), synonyms, per-query metadata boost/demote, prefix autocomplete, search-result highlighting with fragments
  • Geosearch - R-tree + geohash radius/bbox queries, GeoJSON polygon and multi-polygon containment, postcode lookup, distance-sorted hybrid search combining proximity with keyword/vector relevance
  • Async Bulk Ingest - Queue long-running document imports with job tracking, progress polling, and optional webhook callback
  • Full Revision History - Every update creates a new revision with complete snapshots
  • Multi-Protocol APIs - HTTP/JSON (easy), gRPC (fast), GraphQL (flexible), and WebSocket streaming via mddb-chat for LLM chat pipelines
  • Automation - Triggers, crons, webhooks with template variables and sentiment analysis
  • Real-Time Events - Server-Sent Events (SSE) for live document change notifications
  • MCP Transports - Streamable HTTP (/mcp, 2025-11-25), legacy SSE (/sse), and stdio
  • Built-in TLS - Native HTTPS support, connection pooling, pprof profiling
  • Zero Configuration - Single ~29MB binary, embedded database, no dependencies

Perfect for: AI agent memory, RAG pipelines, knowledge bases for LLMs, documentation chatbots, semantic search APIs, document processing (PDF/DOCX→Markdown), static site generation, WordPress migration

πŸš€ Quick Start

Docker Compose (Recommended) - Full Stack

Start all services with one command:

git clone https://github.com/tradik/mddb.git
cd mddb

# Production mode (all services)
docker compose up -d

# Development mode (with hot reload)
make dev-start

# Development + Ollama for embeddings
make dev-start-with-ollama

Services started:

Service Port Image Description
mddbd 11023 (HTTP), 11024 (gRPC), 9000 (MCP), 11443 (HTTP/3) tradik/mddb:latest Database server with MCP built-in
mddb-panel 3000 tradik/mddb:panel React web admin UI

Connect to Claude / Cursor / Windsurf (MCP)

MDDB has a built-in MCP server β€” no extra service needed. Add to your MCP config:

{
  "mcpServers": {
    "mddb": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm", "--network", "host",
        "-v", "mddb-data:/app/data",
        "-e", "MDDB_MCP_STDIO=true",
        "tradik/mddb:latest"
      ]
    }
  }
}

That's it β€” your AI agent now has full access to your knowledge base with 67 built-in tools (add, search, vector search, classify, and more).

β†’ Full MCP setup guide | β†’ MCP server config | β†’ Custom MCP tools

Docker - Individual Services

# MDDB Server only
docker run -d --name mddb \
  -p 11023:11023 -p 11024:11024 -p 9000:9000 \
  -v mddb-data:/data \
  tradik/mddb:latest

# Web Panel (connect to existing server)
docker run -d --name mddb-panel \
  -p 3000:3000 \
  -e VITE_MDDB_SERVER=host.docker.internal:11023 \
  tradik/mddb:panel

# MCP stdio mode (for Claude Desktop, Windsurf, etc.)
docker run -i --rm --network host \
  -v mddb-data:/app/data \
  -e MDDB_MCP_STDIO=true \
  tradik/mddb:latest

# Test it
curl http://localhost:11023/health

Docker Hub: https://hub.docker.com/r/tradik/mddb

Install Binary

Linux (Debian/Ubuntu):

wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-linux-amd64.deb
sudo dpkg -i mddbd-latest-linux-amd64.deb
sudo systemctl start mddbd

macOS (Apple Silicon):

wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-darwin-arm64.tar.gz
tar xzf mddbd-latest-darwin-arm64.tar.gz
sudo mv mddbd-latest-darwin-arm64/mddbd /usr/local/bin/
mddbd

CLI Client:

# Linux
wget https://github.com/tradik/mddb/releases/latest/download/mddb-cli-latest-linux-amd64.deb
sudo dpkg -i mddb-cli-latest-linux-amd64.deb

# Usage
mddb-cli stats
mddb-cli add blog hello en_US -f post.md
mddb-cli search blog -f "tags=tutorial"
mddb-cli fts blog --query="getting started" --algorithm=bm25

Other platforms: See Installation Guide

Build from Source

git clone https://github.com/tradik/mddb.git
cd mddb
make build
./services/mddbd/mddbd

Development with Go Workspace

MDDB is a Go monorepo with multiple modules (services/mddbd, services/mddb-cli, tools/bench). A go.work file at the repo root enables Go workspace mode for local development:

  • Cross-module refactoring β€” renaming a symbol in services/mddbd immediately updates references in services/mddb-cli via gopls.
  • Unified build β€” go build ./services/mddbd/... ./services/mddb-cli/... ./tools/bench/... from the repo root.
  • IDE "goto definition" works across module boundaries without opening each module separately.

CI runs in module-isolation mode (GOWORK=off in .github/workflows/test.yml and release.yml) so each module builds and tests independently. This catches missing require entries that workspace mode would transparently resolve from sibling modules.

To use the same mode locally for debugging:

GOWORK=off go build ./...   # from inside services/mddbd

Regenerating protos (buf generate) and Docker builds are unaffected by go.work β€” they operate on individual modules.

πŸ“¦ Packages & Client Libraries

MDDB ships as a monorepo with multiple packages:

Server & Tools

Package Language Location Description
mddbd Go services/mddbd/ Database server (HTTP + gRPC + GraphQL + MCP)
mddb-panel React/JS services/mddb-panel/ Web admin panel
mddb-cli Go services/mddb-cli/ Command-line client with GraphQL support
mddb-chat Rust services/mddb-chat/ WebSocket chat server with LLM integration
mddb-chat-widget JS/TS services/mddb-chat-widget/ Embeddable JS chat widget

Client Libraries (REST)

Zero-dependency HTTP clients - copy a single file into your project:

Library Language Location Install
PHP Extension PHP 8.0+ services/php-extension/mddb.php Copy mddb.php into your project
Python Extension Python 3.8+ services/python-extension/mddb.py Copy mddb.py into your project

PHP:

require_once 'mddb.php';
$db = mddb::connect('localhost:11023', 'write');
$db->collection('blog')->add('hello', 'en_US', ['author' => ['John']], '# Hello');
$results = $db->collection('blog')->vectorSearch('cancel subscription', 5, 0.7);

Python:

from mddb import MDDB
db = MDDB.connect('localhost:11023', 'write').collection('blog')
db.add('hello', 'en_US', {'author': ['John']}, '# Hello')
results = db.vector_search('cancel subscription', top_k=5)

Client Libraries (gRPC)

High-performance clients generated from Protocol Buffers:

Library Language Location Description
Go Client Go services/mddbd/proto/ Native Go gRPC stubs
Python gRPC Python clients/python/ Generated Python gRPC client
Node.js gRPC Node.js clients/nodejs/ Uses @grpc/grpc-js

Proto definitions at proto/mddb.proto - generate clients for any language supported by protobuf.

Docker Images (Docker Hub)

Image Size Description
tradik/mddb:latest ~29MB Database server with MCP built-in (Alpine)
tradik/mddb:panel ~88MB Web admin panel (Node Alpine)
tradik/mddb:cli ~8MB CLI client (Alpine)

System Packages

Format Platform Contents
.deb Debian/Ubuntu mddbd + systemd unit + man page
.rpm RHEL/CentOS/Fedora mddbd + systemd unit + man page
.tar.gz Any (Linux, macOS, FreeBSD) Standalone binary

πŸ’‘ Key Features

AI & Search

  • βœ… MCP Server - 67 built-in tools via Model Context Protocol 2025-11-25 (stdio + Streamable HTTP + SSE) with tool annotations, prompts, completion, and structured output
  • βœ… File Upload - Upload PDF, DOCX, HTML, ODT, RTF, TEX, YAML, TXT β€” auto-converted to Markdown (single and batch, configurable size limit)
  • βœ… Wikipedia Import - Stream MediaWiki XML dumps (.xml.bz2) with wikitextβ†’Markdown conversion, namespace filtering, batch processing
  • βœ… Vector Search - Semantic similarity with auto-embeddings (OpenAI, Ollama, Cohere, Voyage), ARM NEON/SME SIMD acceleration
  • βœ… Full-Text Search - Built-in inverted index with TF-IDF, BM25, BM25F, PMISparse scoring, 7 search modes (simple, boolean, phrase, wildcard, proximity, range, fuzzy), typo tolerance, metadata pre-filtering, multi-language stemming and stop words (18 languages)
  • βœ… Hybrid Search - Sparse (BM25) + dense (vector) fusion with alpha blending or RRF
  • βœ… Aggregations - Metadata facets (value counts) and date histograms with optional pre-filtering
  • βœ… Inline Facets on Search (v2.9.14+) - Pass facetBy to /v1/fts or /v1/hybrid-search and get per-key value counts alongside results β€” no separate aggregate call
  • βœ… Curation Rules (v2.9.14+) - Pin or hide documents for specific queries via /v1/curation (CRUD). Inspired by Typesense; applied in FTS + Hybrid pipelines
  • βœ… Zero-Shot Classification - Classify documents against candidate labels using embedding similarity
  • βœ… Custom MCP Tools - Define YAML-based AI tools for domain-specific workflows
  • βœ… RAG Pipeline - Built-in support for retrieval-augmented generation workflows
  • βœ… Integrations - Docling, Langflow, OpenSearch, SSG, wpexporter, Airbyte (guide)

Core Functionality

  • βœ… Document Management - Full CRUD with metadata and collections
  • βœ… Revision History - Complete version control with snapshots, per-collection retention cap (maxRevisions, v2.9.14+) trimmed synchronously on every write
  • βœ… Metadata Search - Fast indexed queries with multi-value tags
  • βœ… Collection Checksum - Lightweight CRC32 checksum per collection for cache invalidation
  • βœ… Partial Document Update - Update metadata and/or content independently
  • βœ… Document TTL - Time-to-live with automatic cleanup
  • βœ… Temporal Tracking - Document event history (create/update/access), hot-docs leaderboard, activity histograms (env MDDB_TEMPORAL=true)
  • βœ… Spell Correction - SymSpell-based FTS spell suggestions, text cleanup, per-collection custom dictionaries (env MDDB_SPELL=true)
  • βœ… Automation - Triggers, crons, webhooks with template variables, sentiment analysis, execution logs
  • βœ… Multi-language - Same key, multiple languages
  • βœ… Schema Validation - JSON Schema validation per collection
  • βœ… Per-Collection Storage Backends - Choose BoltDB (default), in-memory (ephemeral), or S3/MinIO per collection

APIs & Protocols

  • βœ… HTTP/JSON REST - Easy debugging, extensive docs
  • βœ… gRPC/Protobuf - 16x faster, 70% smaller payload
  • βœ… GraphQL - Flexible queries, schema introspection, Playground
  • βœ… CLI Client - Full-featured command-line with GraphQL support
  • βœ… Web Panel - React UI with REST/GraphQL toggle

Security & Access

  • βœ… Authentication - JWT tokens and API keys
  • βœ… Authorization - Collection-level RBAC (Read/Write/Admin)
  • βœ… Per-Protocol Access Modes - MDDB_MCP_MODE=read (MCP read-only), MDDB_API_MODE, MDDB_GRPC_MODE, MDDB_HTTP3_MODE
  • βœ… MCP Tool Control - MDDB_MCP_BUILTIN_TOOLS=false to expose only custom YAML tools
  • βœ… User Management - Multi-user with admin roles
  • βœ… Group Permissions - Organize users into groups
  • βœ… TLS / HTTPS - MDDB_TLS_ENABLED=true, MDDB_TLS_CERT, MDDB_TLS_KEY β€” user-supplied PEM cert + key, TLS 1.2 minimum
  • βœ… Mutual TLS (mTLS) - MDDB_TLS_CLIENT_CA points to a PEM bundle of trusted client CAs; MDDB_TLS_CLIENT_AUTH=require (default) or request. Rejects unauthenticated clients when require
  • βœ… Unix Domain Socket transport - MDDB_HTTP_ADDR=unix:/tmp/mddb-http.sock and MDDB_GRPC_ADDR=unix:/tmp/mddb-grpc.sock β€” zero-network local transport with 0600 filesystem perms. Clients in Python (MDDB.connect('unix:/tmp/mddb-http.sock')), PHP (mddb::connect('unix:/tmp/mddb-http.sock')), Node/Python gRPC (unix:/tmp/mddb-grpc.sock channel target)
  • βœ… Audit log (ISO 27001 / SOC 2) β€” MDDB_AUDIT_ENABLED=true persists structured JSON events (auth attempts, writes, deletes) to a dedicated BoltDB bucket. Admin-only GET /v1/audit query with actor / action / result / time-window filters. Retention configurable via MDDB_AUDIT_RETENTION_DAYS (default 90)
  • βœ… Incident webhook events β€” subscribe on /v1/webhooks to security.auth_failure_burst, security.rate_limit_exceeded, ops.replication_lag_high, ops.panic_recovered, ops.disk_usage_high. Panic-recovery middleware turns handler crashes into structured 500 + event instead of process kill
  • βœ… At-rest encryption (opt-in per collection) β€” AES-256-GCM on document values. Enable globally with MDDB_ENCRYPTION_KEY (32 B base64) and flip CollectionConfig.encrypted=true per collection. Legacy plaintext stays readable after flip. FTS / vector indexes remain plaintext (queryable). Losing the key is terminal β€” store in HSM + escrow
  • βœ… Encryption key rotation (2.9.16) β€” V2 ciphertext format prefixes the keyID byte so the encryptor can hold a primary plus any number of read-only previous keys. Rotate by setting a fresh MDDB_ENCRYPTION_KEY + MDDB_ENCRYPTION_KEY_ID and listing every superseded key in MDDB_ENCRYPTION_KEYS_PREVIOUS (JSON [{"id":1,"key":"..."}]). Old documents stay readable; the admin endpoint POST /v1/encryption/rotate (or panel "Encryption" β†’ "Start rotation") rewrites every encrypted entry under the new primary in the background. V1 (2.9.15) ciphertexts continue to decrypt β€” non-breaking
  • βœ… Audit log export to SIEM / syslog (2.9.16) β€” MDDB_AUDIT_EXPORT_WEBHOOK_URL mirrors every audit event as JSON to a SIEM (Splunk HEC, Datadog Logs, ELK) with custom auth headers from MDDB_AUDIT_EXPORT_WEBHOOK_HEADER. MDDB_AUDIT_EXPORT_SYSLOG_ADDR=host:port (or tcp://host:port) sends RFC 5424 framed messages to a syslog collector. Both can run together. Per-sink delivered/failed/dropped counters at GET /v1/audit/exporters and in the Security panel
  • βœ… HTTP + gRPC rate limiting β€” MDDB_RATE_LIMIT_ENABLED=true enforces a single sliding-window budget across both transports (per-IP by default, MDDB_RATE_LIMIT_BY=user keys on authenticated username). Emits X-RateLimit-* headers + 429 Retry-After on HTTP; ResourceExhausted on gRPC. Health / metrics endpoints are always exempt
  • βœ… Production hardening switch β€” MDDB_PRODUCTION=true fails startup unless every compliance guardrail is satisfied (auth on, JWT secret β‰₯32 bytes, TLS on, CORS explicit, audit + rate limit enabled). Unset = silent warning; no breaking change for existing deployments. β†’ Details

β†’ Full compliance map, threat model, operational checklist

Replication & High Availability

  • βœ… Leader-Follower Replication - Binlog streaming for read scaling
  • βœ… Automatic Catch-up - Followers pull missing transactions
  • βœ… Zero-Downtime Snapshots - Full sync for new followers
  • βœ… Cluster Monitoring - Web panel with health and lag metrics

β†’ See all features | β†’ Compare with alternatives | β†’ Performance benchmarks

πŸ”„ Replication Architecture

MDDB supports leader-follower replication allowing you to scale read operations horizontally.

graph LR
    C[Clients] -->|Writes/Reads| L[Leader]
    C -->|Reads| F1[Follower 1]
    C -->|Reads| F2[Follower 2]
    L -->|gRPC StreamBinlog| F1
    L -->|gRPC StreamBinlog| F2
Loading
  • Leader: Handles writes, maintains changes in a binary log, and streams them via gRPC.
  • Followers: Read-only, pulls transactions, reconnects automatically.

β†’ Read Full Replication Guide

🎨 Web Admin Panel

Modern React-based UI for managing documents, users, and search with REST/GraphQL API toggle.

MDDB Web Panel

Features: Browse collections, view/edit documents, vector search, user management, API mode switching (REST ↔ GraphQL), live markdown preview.

β†’ Panel documentation

πŸ“– Quick Examples

Upload Files (PDF, DOCX, HTML, ODT, RTF, TEX, YAML, TXT)

# Upload a PDF β€” auto-converted to Markdown
curl -X POST http://localhost:11023/v1/upload \
  -F "file=@report.pdf" \
  -F "collection=docs" \
  -F "lang=en_US"

# Upload with custom key and metadata
curl -X POST http://localhost:11023/v1/upload \
  -F "file=@manual.docx" \
  -F "collection=docs" \
  -F "key=user-manual" \
  -F "lang=en_US" \
  -F 'meta={"category":["documentation"]}'

# Batch upload multiple files
curl -X POST http://localhost:11023/v1/upload \
  -F "files[]=@doc1.pdf" \
  -F "files[]=@doc2.html" \
  -F "files[]=@doc3.txt" \
  -F "collection=docs" \
  -F "lang=en_US"

Add and Retrieve Documents

# Add a document
curl -X POST http://localhost:11023/v1/add \
  -H 'Content-Type: application/json' \
  -d '{
    "collection": "blog",
    "key": "hello-world",
    "lang": "en_US",
    "meta": {"author": ["John"], "tags": ["tutorial"]},
    "contentMd": "# Hello World\n\nWelcome to MDDB!"
  }'

# Get document
curl -X POST http://localhost:11023/v1/get \
  -H 'Content-Type: application/json' \
  -d '{"collection": "blog", "key": "hello-world", "lang": "en_US"}'

# Search by metadata
curl -X POST http://localhost:11023/v1/search \
  -H 'Content-Type: application/json' \
  -d '{"collection": "blog", "filterMeta": {"tags": ["tutorial"]}, "limit": 10}'

Vector Search (Semantic)

# Documents auto-embedded in background
# Search by meaning, not keywords
curl -X POST http://localhost:11023/v1/vector-search \
  -H 'Content-Type: application/json' \
  -d '{
    "collection": "kb",
    "query": "how do I cancel my subscription?",
    "topK": 5,
    "threshold": 0.7,
    "includeContent": true
  }'

Hybrid Search (Sparse + Dense)

Combine keyword (BM25/BM25F) and semantic (vector) search in a single query. Two merge strategies:

  • Alpha Blending: combined = (1-a) * BM25_score + a * vector_score -- configurable weight
  • RRF (Reciprocal Rank Fusion): rank-based fusion that is robust to different score distributions
curl -X POST http://localhost:11023/v1/hybrid-search \
  -H "Content-Type: application/json" \
  -d '{
    "collection": "docs",
    "query": "machine learning",
    "topK": 10,
    "strategy": "alpha",
    "alpha": 0.5
  }'

Full-Text Search (7 Modes)

FTS supports simple, boolean, phrase, wildcard, proximity, range, and fuzzy modes with auto-detection:

# Simple search with metadata pre-filtering
curl -X POST http://localhost:11023/v1/fts \
  -H "Content-Type: application/json" \
  -d '{
    "collection": "blog",
    "query": "getting started",
    "limit": 10,
    "algorithm": "bm25",
    "filterMeta": {"category": ["tutorial"]}
  }'

# Boolean search (AND, OR, NOT, +required, -excluded)
curl -X POST http://localhost:11023/v1/fts \
  -H "Content-Type: application/json" \
  -d '{
    "collection": "blog",
    "query": "rust AND performance NOT garbage",
    "mode": "boolean"
  }'

# Phrase search (exact sequence)
curl -X POST http://localhost:11023/v1/fts \
  -H "Content-Type: application/json" \
  -d '{
    "collection": "blog",
    "query": "\"machine learning\"",
    "mode": "phrase"
  }'

# Proximity search (terms within N words)
curl -X POST http://localhost:11023/v1/fts \
  -H "Content-Type: application/json" \
  -d '{
    "collection": "blog",
    "query": "\"database performance\"~5",
    "mode": "proximity",
    "distance": 5
  }'

GraphQL

# Enable GraphQL
docker run -e MDDB_GRAPHQL_ENABLED=true -p 11023:11023 tradik/mddb

# Query
curl -X POST http://localhost:11023/graphql \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "{ document(collection: \"blog\", key: \"hello-world\", lang: \"en\") { contentMd meta } }"
  }'

# Interactive Playground
open http://localhost:11023/playground

CLI Client

# Install CLI
wget https://github.com/tradik/mddb/releases/latest/download/mddb-cli-latest-linux-amd64.deb
sudo dpkg -i mddb-cli-latest-linux-amd64.deb

# Use CLI
mddb-cli add blog hello en_US -f post.md -m "author=John,tags=tutorial"
mddb-cli get blog hello en_US
mddb-cli search blog -f "tags=tutorial"
mddb-cli fts blog --query="getting started"
mddb-cli stats

β†’ More examples | β†’ Use case examples | β†’ Client libraries

πŸ“š Documentation

🌐 Official Website - Complete documentation, downloads, examples

Getting Started

API Documentation

Features & Guides

Operations

Development

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     AI Agents (Claude, ChatGPT, Cursor, Windsurf)   β”‚
β”‚     ↕ MCP (stdio / HTTP :9000)                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚         Other Clients                               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚HTTP/JSON β”‚gRPC/Protoβ”‚ GraphQL  β”‚ HTTP/3             β”‚
β”‚  :11023  β”‚  :11024  β”‚ /graphql β”‚ :11443             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚           MDDB Server (Go)                          β”‚
β”‚  β€’ File Upload (PDF/DOCX/HTML/TXT β†’ Markdown)       β”‚
β”‚  β€’ Auto-Embeddings (OpenAI, Ollama, Cohere, Voyage) β”‚
β”‚  β€’ Vector + Full-Text + Hybrid Search               β”‚
β”‚  β€’ Zero-Shot Classification                         β”‚
β”‚  β€’ Automation (triggers, crons, webhooks)            β”‚
β”‚  β€’ JWT Auth + RBAC                                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚      BoltDB (Embedded ACID Storage)                 β”‚
β”‚  β€’ B+Tree index β€’ Single-file β€’ MVCC transactions   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β†’ Detailed architecture

πŸ—ΊοΈ Roadmap

β†’ Full roadmap

🀝 Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

Security issues: See SECURITY.md

πŸ“„ License

BSD 3-Clause License - see LICENSE

πŸ”— Quick Links

About

A minimal, lightweight structured data store designed for small applications, scripts and automation workflows. Built for simplicity, portability and low overhead.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors