docsonar
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| add_folderA | Register a local folder so its documents become searchable. Use this once per folder before searching it. Indexing runs in the
background — this returns immediately with the file count found; call
index_status to track progress (the first ever index also downloads
the embedding model, ~130 MB). Returns {ok, folder, files_found, status: "indexing"}. files_found counts supported files matching the globs; unsupported files are silently ignored. Searches issued while indexing runs work on the portion indexed so far. |
| remove_folderA | Unregister a folder and purge all its index data (files, chunks, search index). The documents on disk are untouched — this only forgets them. Any in-progress background indexing of this folder is cancelled. Use list_folders to see what is registered. Returns {ok, folder, files_purged}. |
| reindexA | Refresh the index: pick up new, changed, and deleted files. Use when documents changed on disk since they were indexed. Runs in
the background; track with index_status. Incremental by default —
unchanged files (by mtime, then content hash) are skipped, files
deleted from disk are purged from the index. Returns {ok, queued: [folder paths], force}. |
| index_statusA | Report index health and background indexing progress. Use after add_folder or reindex to check whether indexing has finished, or to diagnose why search results look incomplete (failed files, embeddings unavailable). Cheap to call. Returns {ok, db_path, db_size_bytes, embedding: {model, status}, totals: {folders, files_indexed, files_failed, chunks, chunks_embedded}, indexing: {active, current: {folder, files_done, files_total} | null, queued_folders, recent_jobs}, failed_files: [{path, error}, ...] (up to 10)}. embedding.status is "ready", "not loaded yet ...", or "error: ..." — errors mean keyword-only search. |
| list_foldersA | List registered folders with file/chunk counts and last index time. Use this to check what is searchable before calling search, or to find the exact registered path for remove_folder. Returns {ok, folders: [{path, files, failed_files, chunks, added_at, last_indexed_at}, ...]}. |
| searchA | Search all indexed documents and return the most relevant passages. Use this first whenever the user asks about the content of their local
documents. Returns {ok, results: [{chunk_id, path, file_type, location, score,
snippet}, ...], mode_used, note}. |
| find_similarA | Find indexed documents most similar in meaning to a given file. Use for "more like this" — e.g. finding related notes, duplicate
content, or other documents on the same topic. Returns {ok, source, similar: [{path, file_type, score, preview},
...]}. |
| read_fileA | Read the text of one indexed document, optionally a line range. Use after search to pull full context around a hit. Returns {ok, path, start_line, end_line, total_lines, truncated, text}. |
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 8 tools
Each tool has a clearly distinct purpose: status reporting, folder listing, searching, similarity lookup, file reading, folder removal/addition, and reindexing. No two tools overlap in a way that would confuse an agent.
Most tools follow a snake_case verb_noun pattern (list_folders, add_folder, remove_folder, read_file), but a few deviate: 'search' and 'reindex' are single verbs, and 'find_similar' uses an adjective. The style is uniform and readable, but not perfectly consistent.
Eight tools is ideal for this document indexing/search server. The count is neither too thin nor bloated, and each tool addresses a necessary part of the workflow.
The tool surface covers the full lifecycle: folder registration (add_folder, remove_folder), inventory (list_folders), index health (index_status, reindex), and content access (search, find_similar, read_file). No significant gaps exist for the stated purpose.