file_reader_mcp
by Ggowda2004
README.md
# file_reader_mcp
An MCP (Model Context Protocol) server for reading and discovering files from the local filesystem.
## Current capabilities
This project now provides three MCP tools:
- **`list_files`** — Lists files and folders in a given directory
- Folders are shown with a trailing `/`
- Results are sorted alphabetically
- Access is restricted to paths under the allowed workspace
- **`read_file`** — Reads the contents of a text file
- Returns the full file content as a string
- Supports files inside the allowed workspace only
- **`search_files`** — Searches for files by keyword within a directory tree
- Returns matching file paths
- Helps quickly locate relevant files
### Implementation notes
- The file access layer has been updated to use `pathlib` instead of `os` for a more modern and readable path handling approach.
- Access is still restricted to a safe allowed root for security.
## Requirements
- Python 3.10+
- [uv](https://docs.astral.sh/uv/) (recommended) or pip
## Setup
```bash
uv sync
```
## Running the server
```bash
uv run python src/server.py
```
The server uses stdio transport and is meant to be configured as an MCP server in Cursor or another MCP-compatible client.
## Project structure
```
file_reader_mcp/
├── src/
│ ├── file_access.py # Pathlib-based file access helpers
│ └── server.py # MCP server exposing list_files, read_file, and search_files
├── test/
│ └── test_os.py # Local tests for directory listing
└── pyproject.toml
```
TDQS
C2.1/5.0
Scored across 3 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: listing files, reading file contents, and searching for files. No overlap or ambiguity.
Naming Consistency4/5
All tools follow a verb_noun pattern, but read_file uses singular 'file' while list_files and search_files use plural 'files'. This minor inconsistency prevents a perfect score.
Tool Count5/5
Three tools is well-scoped for a file reader server. Each tool serves a core need without redundancy or bloat.
Completeness5/5
For a read-only file server, the surface covers listing, reading, and searching—all essential operations. No obvious gaps for the stated purpose.
Maintenance
ActivityStale
ResponsivenessNo issues