RAGDown
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | serve only. The HTTP port. | 3000 |
| RAGDOWN_TOKEN | No | serve: the bearer token /mcp and /api/context require. Hook: the token it sends. | |
| RAGDOWN_WATCH | No | Watch the folder; without a watcher, sync on start and on ragdown_reindex only. | true |
| RAGDOWN_MODELS | No | Model cache, shared by every folder. | ~/.cache/ragdown/models |
| RAGDOWN_THREADS | No | ONNX Runtime threads for bge-small. | half the cores |
| RAGDOWN_DATA_DIR | No | The index. Deleting it only costs a rebuild. | ~/.cache/ragdown/<hash of docs dir> |
| RAGDOWN_DOCS_DIR | Yes | The Markdown folder, walked recursively. Dot-folders and node_modules are skipped, and symlinks are not followed. Indexes .md, .markdown and .mdx. | |
| RAGDOWN_EMBEDDER | No | bge-small, openai:<model> (any OpenAI-compatible /embeddings endpoint, such as Ollama or llama.cpp), or hash (tests only). | bge-small |
| SECURE_LOCAL_NET | No | serve only. Skip the token on a trusted network. serve refuses to start with neither. | false |
| RAGDOWN_NOTES_DIR | No | Where ragdown_remember writes. Must be inside the docs folder. | notes |
| RAGDOWN_READ_ONLY | No | Hide the write tools. | false |
| RAGDOWN_HOOK_TOP_K | No | Most sections injected per prompt. | 4 |
| RAGDOWN_TEXT_LIMIT | No | Characters per hit in text output. Every cut names the ragdown_read_doc call that returns the rest. | 2000 |
| RAGDOWN_EMBEDDING_URL | No | For openai:<model>. The URL of the OpenAI-compatible embeddings endpoint. | OpenAI |
| RAGDOWN_HOOK_MAX_CHARS | No | Most characters injected per prompt. | 6000 |
| RAGDOWN_HOOK_MIN_SCORE | No | Lowest cosine similarity the hook injects. | 0.7 |
| RAGDOWN_HOOK_TIMEOUT_MS | No | How long the hook waits for the server. | 5000 |
| RAGDOWN_EMBEDDING_API_KEY | No | For openai:<model>. The API key for the OpenAI-compatible embeddings endpoint. | OpenAI |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ragdown_recallA | Hybrid (semantic + keyword) search over the user's Markdown notes. Returns the most relevant sections with file path, line range, heading breadcrumb and cosine similarity (above ~0.8 is usually on topic). Use it before answering anything the notes may cover; follow up with ragdown_read_doc for the surrounding text. |
| ragdown_contextA | For hooks that run before a turn: the notes related to a user prompt, as a ready-to-inject block, or empty text when nothing is similar enough. Unlike ragdown_recall it filters by min_score, skips short prompts and slash commands, and never returns a section twice for the same session_id. |
| ragdown_read_docA | Read a Markdown file from the notes folder, whole or by line range, straight from disk. Never clipped. Use it to see the context around a ragdown_recall hit, or to follow a [[wikilink]] in a note. The result's hash is the whole file's, for ragdown_edit's base_hash. |
| ragdown_backlinksA | The notes that link to a note — by [[wikilink]], alias, or relative Markdown link — each with the lines the links are on. Use it to find what depends on or refers to a note, e.g. before changing or superseding it. |
| ragdown_listA | Browse the notes rather than search them: every note's path, title, tags and last change, optionally under a subfolder or with a tag. sort: 'recent' puts the most recently changed first. |
| ragdown_statsA | The notes folder, index size (files, chunks), embedder, whether this process is the indexing primary, and the last sync. include_files lists every indexed file. |
| ragdown_rememberA | Save something worth keeping (a decision, a fix, a how-to) as a new Markdown note in the notes folder, indexed immediately so later searches find it. Never overwrites an existing file. When this note replaces an earlier one, pass that note's path as supersedes so searches stop returning the old version. |
| ragdown_editA | Change an existing note, or create one at a path you choose. By default text replaces the whole file (frontmatter included), which for an existing note needs base_hash: the hash ragdown_read_doc returned, so you never overwrite a version you have not read. append: true adds text at the end of the note, or with heading at the end of that section, leaving the rest as it is. If the file changed since base_hash, nothing is written: read it again and redo the edit. |
| ragdown_reindexA | Bring the index up to date with the folder now. Changes are normally picked up automatically within a second; use this after bulk edits made while no server was running, or full: true to re-embed everything. |
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 9 tools
Recall and context both perform similarity retrieval, but their descriptions clearly separate ad-hoc search from pre-turn hook injection; remember and edit also overlap in creating notes but are distinguished by auto-named immutable notes vs explicit path/update. The remaining tools map cleanly to distinct actions.
All tools share the ragdown_ prefix and are readable, but the second part mixes verb forms like reindex, remember, read_doc, and recall with noun forms like stats, backlinks, and context. This is a minor inconsistency rather than a chaotic pattern.
Nine tools is well within the ideal range for a notes-RAG server. Each tool covers a distinct function—indexing, adding, reading, editing, browsing, backlinks, stats, search, and context injection—so none feels redundant.
The surface covers the core notes lifecycle plus retrieval and context integration: create via remember/edit, read via read_doc/list, update via edit, search via recall/context, and note graph via backlinks. The main gap is an explicit delete/remove operation, though supersede and empty edits provide partial workarounds.