hybrid-recall
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DOCS_DB_PATH | No | Docs corpus DB | ./data/docs.db |
| RERANKER_URL | No | Reranker (optional) | http://127.0.0.1:8001/v1/rerank |
| EMBED_SERVER_URL | No | Embedding endpoint | http://127.0.0.1:8000/v1/embeddings |
| MEMORY_SERVICE_PORT | No | Memory daemon port | 8767 |
| KNOWLEDGE_GRAPH_PATH | No | KG storage | ./data/knowledge_graph.jsonl |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sqliteA | SQLite database operations + document-corpus search. Commands: catalog, exec, list_databases, open_database, health_check, docs_search, docs_semantic_search, docs_hybrid, docs_full, docs_context, docs_search_in_doc. docs_search: FTS5 keyword search over the ingested docs corpus. Use for exact terms, API names, phrases. docs_semantic_search: Embedding similarity search over docs. Use for general queries. docs_hybrid: PREFER THIS Run both keyword + semantic with RRF fusion. Best recall. docs_full: Retrieve complete document by exact path. Use sql param with path from search results. Wildcard % optional for fuzzy match. docs_context: Expand around a chunk - params: {chunk_id, before, after}. docs_search_in_doc: Hybrid search within a specific document - params: {query, limit, threshold}. sql=path. Returns chunk positions. All docs search commands: query via 'sql' param. docs_* filters: {doc_type, source, limit, threshold}. docs_* results are pre-chunked - do NOT use file reads; run more searches or use docs_context/docs_full instead. |
| retrieveA | Unified retrieval across KG, Memory, and Docs with KG-powered query expansion. Use for conceptual queries where keyword search fails. Automatically expands query using KG domain knowledge (e.g., 'transformer optimization' -> includes KV cache, Flash Attention). Fuses results via reciprocal rank fusion. Returns results with source attribution. Default: compact=true (shorter snippets, ~500-800 tokens). Use compact=false for full content (~2000 tokens). |
| memoryA | On session start: get session:latest + project:overview. Semantic memory for cross-session persistence. Returns {success, results/value}. Actions: store (save key+message, full overwrite), append (add fragment to existing key without rewriting it - server concatenates and re-embeds), replace_section (in-place edit of marker-bounded region inside an existing entry), search (semantic query), get (exact key), delete, list. RAM-backed with async disk persist - use liberally. Key conventions: session:latest (current state), project:overview (architecture), learn: (discoveries), pref: (user prefs), todo:, code:. For large rolling docs (timelines, session logs) use append instead of store - massive token savings. For in-place section edits inside a long doc, use replace_section with HTML-comment markers like ''/''. Search is semantic with synonym expansion ('fast'->'quick'). Use preprocess=False for exact match. When encountering issues or problems search for related context. On milestones: store session:latest. |
| kgA | Entity-relationship graph for structured facts. Use for entities with relationships - concepts, tools, people, patterns. Check here before semantic_search. For free-form text/learnings, use memory instead. Hybrid search (70% semantic + 30% keyword). Limits: 10K entities, 100 obs/entity. Audit log for destructive ops. Actions: create_entities, create_relations, add_observations, delete_entities, delete_relations, search, neighbors, stats, read, prune, remove_observation, update_entity, rename_entity, merge_entities, batch. IMPORTANT: Always specify entity_type when creating entities - omitting it defaults to 'unknown' which pollutes the graph. Knowledge graph is stored as JSONL. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool has a distinct primary domain (sqlite for SQLite and doc search, retrieve for unified cross-source retrieval, memory for persistent key-value store, kg for graph), but retrieval functions overlap—sqlite's docs_search and retrieve both cover docs, and memory/kg each have search. Descriptions help, but an agent might still be uncertain which search to use.
Tool names are all lowercase but mix verb (retrieve) and nouns (sqlite, memory, kg); no consistent verb_noun pattern. Within sqlite, multi-word subcommands use underscores, but tool-level naming is inconsistent.
Four tools is well-scoped for a hybrid recall server covering docs, unified retrieval, memory, and knowledge graph; each earns its place without feeling bloated or sparse.
Covers the main retrieval surfaces (docs, memory, KG, unified) with CRUD on memory and KG and doc search operations; minor gaps like missing bulk document management are present, but core workflows are covered.