Skip to main content
Glama
freyajeffers

filesystem-rag-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoHost for the HTTP transport.127.0.0.1
PORTNoPort for the HTTP transport.8000
NO_AUTHNoSet to 'true' to disable OAuth 2.1 authentication (Dev Mode).false
ROOT_DIRYesPath to the root directory to index and search.
TRANSPORTNoTransport 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 wait_for_indexing=True to explicitly wait until thorough indexing finishes. Set compact=True to omit large chunk text and preserve context budget.

get_index_statusA

Inspect the live indexing state: background quick/thorough task status, indexed text and vector chunk counts, and completion timestamps. Set wait=True and optional timeout_seconds to synchronously await index completion.

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:

  • SQLite: SQL query via query parameter (e.g. 'SELECT * FROM users WHERE role="Admin"')

  • JSON/JSONL: path expression via query parameter (e.g. 'users[0].email' or 'config.db')

  • CSV/TSV: column filtering, row offsets/limits, and value match filters

  • Text/Code: line range extraction via start_line and end_line parameters.

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 (as_markdown=True) or raw text.

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

NameDescription
rag_answerBuild a grounded answer from the indexed filesystem.

Resources

Contextual data attached and managed by the client

NameDescription
index_statusCurrent index status: counts, last refresh time, root directory.
index_settingsEffective server settings (non-sensitive).

TDQS

B3.4/5.0

Scored across 23 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues