filesystem-rag-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Host for the HTTP transport. | 127.0.0.1 |
| PORT | No | Port for the HTTP transport. | 8000 |
| NO_AUTH | No | Set to 'true' to disable OAuth 2.1 authentication (Dev Mode). | false |
| ROOT_DIR | Yes | Path to the root directory to index and search. | |
| TRANSPORT | No | Transport type: 'stdio' or 'http'. | stdio |
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 |
|---|---|
| pingA | Health check and liveness probe verifying server connectivity and runtime readiness. |
| searchA | Hybrid full-text + vector search over the indexed filesystem. Returns the top-k most relevant chunks with their file path, character offset range, and a snippet of text. Does NOT block on background indexing by default; immediately searches what is currently available and reports index completeness. Set |
| get_index_statusA | Inspect the live indexing state: background quick/thorough task status, indexed text and vector chunk counts, and completion timestamps. Set |
| refresh_indexA | Walk the configured root directory, (re-)chunk every text file, and (re-)embed + index all chunks. Safe to call repeatedly; stale chunks are evicted. May be slow on large corpora. |
| get_chunkB | Fetch a single chunk by its id. Returns the chunk text and metadata. |
| read_fileA | Read a file's contents from the configured root. The path is validated against the root; symlinks that escape are refused. |
| read_file_markdownB | Convert any document (PDF, DOCX, PPTX, XLSX, HTML, IPYNB, CSV, RTF, JSON, YAML, text, code) to clean Markdown. Validated against root. |
| download_file_rawB | Download/read a raw file as base64-encoded bytes with MIME type. Suitable for downloading binary files, images, PDFs, etc. Validated against root. |
| list_directoryC | Explore the sandboxed filesystem tree. Returns directory/file metadata including size, detected MIME/type, conversion support, and relative path. Supports depth and glob filtering. |
| fetch_targeted_dataA | Execute targeted data fetching against structured files. Supports:
|
| grep_searchB | Exact regex or substring search across files in the workspace. Returns matching lines with context lines, line numbers, and file paths. Supports path_glob filtering (e.g. 'src/**/*.py') and case sensitivity. |
| read_files_batchA | Inspect multiple files concurrently in a single roundtrip. Returns a mapping of relative paths to contents or structured error objects. Supports Markdown conversion ( |
| refresh_fileB | Incrementally (re-)chunk and re-index a single specific file into full-text and vector stores in <50ms without walking the rest of the workspace. |
| get_chunk_contextB | Fetch contextual neighbor chunks surrounding a chunk_id from the same file. Expands awareness of the document before and after a search hit. |
| deep_searchB | Multi-hop search decomposing complex research questions across multiple topics/files. Runs parallel subquery searches, clusters findings, and merges deduplicated chunks. |
| pack_contextA | Assemble a clean, token-bounded Markdown prompt context pack from search hits. Groups contiguous chunks by file, dedupes, and trims to strict token budgets (e.g. 4000 tokens). |
| get_corpus_graphB | Construct an architectural dependency and reference topology graph of the workspace. Detects central architectural hubs (highest in-degree), file dependencies, and orphan files. |
| git_searchB | Inspect git commit logs, recent changes, commit diffs, or line blame across repository files. Modes: 'commits', 'recent_changes', 'diff', 'blame'. |
| search_symbolsB | Search for function and class declarations/definitions across Python, JS/TS, and generic code. Returns symbol names, lines, parameters, and docstrings without full text scanning. |
| find_symbol_referencesB | Find call-sites, imports, and usages of a specific symbol across workspace code files. Returns occurrences with file paths, line numbers, usage classification ('import' vs 'reference'), and snippets. |
| patch_fileA | Atomically patch a sandboxed file in the workspace by replacing an exact substring with new content. Automatically triggers immediate incremental re-indexing (<50ms) upon successful edit. |
| add_workspaceC | Register an additional workspace directory for multi-root monorepos or polyrepos. |
| list_workspacesA | List all registered workspace roots and their status. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| rag_answer | Build a grounded answer from the indexed filesystem. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| index_status | Current index status: counts, last refresh time, root directory. |
| index_settings | Effective server settings (non-sensitive). |
TDQS
Scored across 23 tools
Most tools have clearly distinct purposes (search=hybrid semantic, grep_search=regex, search_symbols=declarations, find_symbol_references=usages, deep_search=multi-hop). There is mild overlap in the read family (read_file, read_file_markdown, download_file_raw, read_files_batch) and between refresh_index/refresh_file, but descriptions differentiate scope and format well.
Predominantly consistent snake_case with a verb_noun pattern (get_chunk, read_file, add_workspace, list_workspaces, refresh_index). A few deviations break the pattern: 'ping' is a bare verb, and git_search/grep_search use noun_verb ordering, but overall the convention is predictable.
23 tools sits in the heavy band for a single server. The domain is genuinely broad (search, indexing, git, multi-format reads, workspaces, graph analysis), so most tools earn their place, but several closely related read/search variants push it toward over-scoped.
Coverage of the RAG/filesystem lifecycle is strong: indexing, refresh (full and incremental), hybrid/regex/symbol search, chunk navigation, multi-format reads, git inspection, and workspace management are all present. The notable gap is write operations—only patch_file exists, with no create/delete file, limiting mutation workflows.