Skip to main content
Glama
Savi-04

Local File Reader MCP Server

by Savi-04
README.md
# Local File Reader MCP Server

This is a Model Context Protocol (MCP) server that provides an `analyze_spending` tool to AI assistants. It securely reads local files (CSV, JSON, TXT, MD, PDF, etc.) from the project directory and returns their text contents to the AI for analysis.

## Features
- **Supports multiple formats**: Reads text-based files out of the box, and uses `pdf-parse` to extract text from PDFs.
- **Secure**: 
  - Prevents path traversal and symlink attacks (only reads files inside the project directory).
  - Prevents Out of Memory (OOM) crashes by enforcing a 10MB file size limit.
  - Sanitizes error messages to prevent sensitive path leakage.

## Prerequisites
- Node.js (v18 or higher recommended)
- npm

## Setup & Installation

1. Open your terminal in the project directory (`mcp-project`).
2. Install the dependencies:
   ```bash
   npm install
   ```

## Testing the Server (Using the MCP Inspector)

The easiest way to test this server is to use the official MCP Inspector. This spins up a local web interface where you can pretend to be the AI and test the tool manually.

1. Run the inspector command:
   ```bash
   npx @modelcontextprotocol/inspector node index.js
   ```
2. The terminal will output a URL like `http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=...`. Open this link in your browser.
3. In the Inspector UI, go to the **Tools** tab.
4. Select `analyze_spending`.
5. Enter the `filename` of a file that exists in this directory (e.g. `test.csv` or `document.pdf`) and hit Run. The contents of the file will be returned!

## Using the Server with a real AI Agent

You can hook this local server up to any MCP-compatible AI client (like Claude Desktop or Cursor).

For example, to configure it in Claude Desktop, you would add this to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "local-file-reader": {
      "command": "node",
      "args": [
        "/absolute/path/to/your/mcp-project/index.js"
      ]
    }
  }
}
```

Once connected, you can ask the AI: *"Can you analyze my spending in the data.csv file?"* and it will seamlessly use this tool to fetch the file contents.

Maintenance

ActivityInactive
ResponsivenessNo issues