Skip to main content
Glama
ivmarcos

MCP File Tools Server

by ivmarcos
README.md
# MCP File Tools Server

An MCP (Model Context Protocol) server that provides file system and utility tools for Claude.

## Features

### Tools
- **get_time**: Get current time in any timezone
- **search_files**: Search for files by pattern in a directory
- **read_file**: Read file contents (with optional line limit)
- **list_directory**: List directory contents
- **file_info**: Get detailed file/directory information
- **run_command**: Run safe shell commands (limited set)

### Resources
- **env://system**: System and environment information

## Prerequisites

- Node.js 18+
- npm or yarn

## Installation

```bash
npm install
```

## Usage

### Development
```bash
npm run dev
```

### Production
```bash
npm run build
npm start
```

### Testing with Inspector
```bash
npm run inspect
```

This opens a web UI to test your tools interactively.

## Connecting to Claude

### Claude Code

Add to `~/.claude/config.json`:

```json
{
  "mcpServers": {
    "file-tools": {
      "command": "npx",
      "args": ["tsx", "/absolute/path/to/src/index.ts"]
    }
  }
}
```

### Claude Desktop

Add to your Claude Desktop config:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "file-tools": {
      "command": "npx",
      "args": ["tsx", "/absolute/path/to/src/index.ts"]
    }
  }
}
```

## Example Prompts

Once connected, try these with Claude:

- "What time is it in Tokyo?"
- "Find all TypeScript files in my project"
- "Read the package.json file"
- "Show me what's in the src directory"
- "Get info about this file: ./tsconfig.json"

## Project Structure

```
├── src/
│   └── index.ts     # Main MCP server
├── package.json
├── tsconfig.json
└── README.md
```

## Technologies

- **@modelcontextprotocol/sdk**: Official MCP SDK
- **Zod**: Schema validation
- **TypeScript**: Type safety

## Security Notes

- The `run_command` tool only allows a whitelist of safe commands
- File operations are limited to what the process has permission to access
- Consider running with appropriate permissions in production

## License

MIT

## Article

Read the full tutorial: *[Link to Medium article]*