Overview
What is MCP File Reader Server?
A simple MCP server that reads files from a designated data directory. It supports two transport modes: Stdio (managed by Cursor) and SSE (run manually via Uvicorn/Starlette). Designed for developers who want to make local file content accessible to AI assistants within Cursor.
How to use MCP File Reader Server?
Install Python 3.8+, clone the repo, create a virtual environment, and install dependencies (mcp, uvicorn[standard], starlette, httpx). For Stdio mode, configure the global Cursor MCP config file to point to the server script and toggle it on in Cursor Settings. For SSE mode, run ./start_sse.sh and let Cursor discover the server via the project’s .mcp.json file. Then issue prompts like read test.txt using the file-reader server (Stdio) or read sse_test.txt using the file-reader-sse server (SSE).
Key features of MCP File Reader Server
- Two transport modes: Stdio (Cursor-managed) and SSE (manual Uvicorn)
- Reads files from a dedicated data directory per mode
- Includes an SSE client script for manual testing
- Logging output to stderr for troubleshooting
- MIT licensed
Use cases of MCP File Reader Server
- Let an AI assistant read configuration or log files from a local data folder
- Provide file content as context during coding sessions in Cursor
- Test MCP server interactions using the included SSE client script
- Securely expose a limited directory of text files to an MCP client
FAQ from MCP File Reader Server
Which data directory does each mode use?
Stdio mode (file-reader) reads from ~/mcp_data (home directory). SSE mode (file-reader-sse) reads from ./project_mcp_data_sse (within the project directory).
How do I run the SSE server?
Run ./start_sse.sh in the project root. It installs dependencies and starts a Uvicorn server listening on http://127.0.0.1:8080. The client connects to the /sse path.
What dependencies are required?
Python 3.8+, the mcp package, and for SSE mode additionally uvicorn[standard], starlette, and httpx.
Can I toggle the server in Cursor’s UI?
Yes, for Stdio mode you must first configure the global cursor_mcp_config.json, then restart Cursor and toggle file-reader on in Cursor Settings → MCP.
What transport does each mode use?
Stdio mode runs the server as a subprocess managed by Cursor. SSE mode runs an HTTP server that listens for SSE connections; the client connects via sse_client.