Distributed search database with semantic indexing and MCP server
Project description
MeshDB
Distributed full-text search engine with LLM conversation indexing.
Part of MeshPOP — Layer 4 (Search)
Features
- Full-text search with SQLite FTS5 across all servers (BM25 ranking, snippets)
- LLM Conversation Indexing — indexes Q&A from Claude Code, Cowork, Cursor, ChatGPT, Gemini across all 14 servers
- Multi-server discovery — automatically finds and indexes conversations on remote servers via vssh protocol
- MCP-driven discover — connected AIs can register their own conversation storage paths
- Semantic search with vector embeddings (ChromaDB)
- Auto-indexing with file change detection (hash-based skip)
Install
pip install meshpop-db
Usage
Document Search
meshdb search "nginx config" # Full-text search across all servers
meshdb find "config.json" # Find files by name
meshdb semantic "how to deploy" # Semantic vector search
meshdb status # Database status
Conversation Search
# Index local conversations (Claude Code, Cursor, ChatGPT, Gemini)
meshdb-conv index
# Index local + all remote servers (d1, d2, g1, g2, g3)
meshdb-conv index --remote
# Search across all indexed AI conversations
meshdb-conv search "wireguard setup"
meshdb-conv search "PyPI upload" --source claude --project MeshPOP
# Show what conversation files exist on this machine
meshdb-conv discover
# Status — shows chunks by source, server, project
meshdb-conv status
JSON Agent Protocol (for remote vssh calls)
meshdb-conv json discover # List discovered session files as JSON
meshdb-conv json chunks <filepath> # Parse file into Q&A chunks as JSON
meshdb-conv json search <query> # Search and return JSON
meshdb-conv json status # Stats as JSON
MCP Tools
Add to Claude Desktop / Claude Code config:
{
"mcpServers": {
"meshdb": {
"command": "python3",
"args": ["/path/to/meshdb-mcp-server.py"]
}
}
}
Available tools:
| Tool | Description |
|---|---|
meshdb_search |
Full-text search across all servers (244K+ files) |
meshdb_find |
Find files by filename |
meshdb_read |
Read indexed file content |
meshdb_conversations |
Search LLM conversations (Claude, Cursor, ChatGPT, Gemini) |
meshdb_conv_read |
Read full Q&A chunk |
meshdb_conv_discover |
Discover/register conversation sources; trigger indexing |
meshdb_semantic |
Semantic code search via ChromaDB |
meshdb_status |
Database status across all servers |
Architecture
m1 (macOS) ─── direct SQLite ─── meshdb.db (central)
│
├── vssh ──→ d2: json discover → json chunks → insert
├── vssh ──→ g1: json discover → json chunks → insert
├── vssh ──→ g2: json discover → json chunks → insert
├── vssh ──→ g3: json discover → json chunks → insert
└── vssh ──→ d1: json discover → json chunks → insert
Conversation sources discovered automatically:
| Source | Format | Path |
|---|---|---|
| Claude Code | JSONL | ~/.claude/projects/**/*.jsonl |
| Cowork | JSONL | ~/Library/.../local-agent-mode-sessions/**/*.jsonl |
| Cursor | SQLite | ~/.config/Cursor/User/workspaceStorage/*/state.vscdb |
| ChatGPT | JSON | ~/Downloads/chatgpt_export/conversations.json |
| Gemini | JSONL/JSON | ~/.gemini/history/**/* |
MCP-driven discovery: Connected AIs can register new sources via meshdb_conv_discover tool — no code changes needed.
Current Stats
- 34,500+ Q&A chunks indexed across 7 servers
- 1,589 unique sessions from Claude Code, Cowork, Cursor
- Coverage: 2025-12 to 2026-03
- Indexing speed: ~17s for 231 remote files across 5 servers
Links
- Main project: github.com/meshpop/mpop
- Website: mpop.dev
- PyPI: pypi.org/project/meshpop-db
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file meshpop_db-1.0.2.tar.gz.
File metadata
- Download URL: meshpop_db-1.0.2.tar.gz
- Upload date:
- Size: 30.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68165991d88b0114c5471b6428988a0847b85f51721a815d194a01a657860339
|
|
| MD5 |
23e4176795299c78cd1c85cfb24cb206
|
|
| BLAKE2b-256 |
66186e07e2d407f3435874e5c393f358bf23178b6b17eab753c3fc275f5041d7
|
File details
Details for the file meshpop_db-1.0.2-py3-none-any.whl.
File metadata
- Download URL: meshpop_db-1.0.2-py3-none-any.whl
- Upload date:
- Size: 31.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d95060be2d9eb0828794d4f176cc79920f0590088f6447dcc222906eb7b5adc7
|
|
| MD5 |
53d1911709eca2d9c3e8e72872f9fce2
|
|
| BLAKE2b-256 |
7c911ef8515a546b2899edad79a89645afdbb8834601d751867991fa8bea4b94
|