Skip to main content
Glama
OtterBub

File Time Search MCP Server

by OtterBub
README.md
# File Time Search MCP Server

An MCP server that provides file searching capabilities based on modification or creation time.

## Features

- Search files by `modified` or `created` time.
- Filter by time range (`from`, `to`).
- Glob pattern matching.
- Pagination support.
- Secure root path restriction (`ALLOW_ROOTS`).

## Installation

```bash
npm install
```

## Usage with npx

You can run this server directly using npx:

```bash
export ALLOW_ROOTS=/path/to/search
npx file-search-mcp
```

## Usage

### Environment Variables

- `ALLOW_ROOTS`: Comma-separated list of allowed root directories (Required).
- `DEFAULT_ROOT`: Default root directory if not specified in request (Optional).

### Running via Stdio

```bash
export ALLOW_ROOTS=/path/to/search
npm run start:stdio
```

### Development

```bash
# Run in dev mode (stdio)
export ALLOW_ROOTS=$(pwd)
npm run dev:stdio

# Run tests
npm test
```

## Documentation

See [docs/README.md](docs/README.md) for detailed documentation.

## AI Agent Configuration (Claude Desktop)

To use this tool with Claude Desktop, you need to configure the `claude_desktop_config.json` file.

### 1. Build the Project

First, ensure the project is built:

```bash
npm run build
```

### 2. Edit Configuration

Open or create the configuration file:

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

Add the following configuration (replace paths with your actual paths):

```json
{
  "mcpServers": {
    "file-search": {
      "command": "node",
      "args": [
        "D:/1.playground_ai/file_search_mcp/dist/stdio.js"
      ],
      "env": {
        "ALLOW_ROOTS": "D:/1.playground_ai/file_search_mcp",
        "DEFAULT_ROOT": "D:/1.playground_ai/file_search_mcp"
      }
    }
  }
}
```

> **Note**: `ALLOW_ROOTS` is required. It defines the directories the AI is allowed to search. You can specify multiple paths separated by commas (or semicolons on Windows).

### 3. Usage Examples

Once configured and Claude Desktop is restarted, you can ask questions like:

- "Find all markdown files modified in the last 24 hours."
- "Search for files created between 2024-01-01 and 2024-02-01 in the src folder."
- "List the top 10 most recently modified files."

## VS Code Copilot Configuration

To use this tool with GitHub Copilot in VS Code, add the following to your VS Code `settings.json`:

### 1. Build the Project

Ensure the project is built:

```bash
npm run build
```

### 2. Edit VS Code Settings

Open your VS Code `settings.json` and add the `github.copilot.mcpServers` configuration:

```json
{
  "github.copilot.mcpServers": {
    "file-search": {
      "command": "node",
      "args": [
        "D:/1.playground_ai/file_search_mcp/dist/stdio.js"
      ],
      "env": {
        "ALLOW_ROOTS": "D:/1.playground_ai/file_search_mcp",
        "DEFAULT_ROOT": "D:/1.playground_ai/file_search_mcp"
      }
    }
  }
}
```

> **Note**: Replace the paths with your actual absolute paths. `ALLOW_ROOTS` is required.
>
> **Tip**: In VS Code, you can use `${workspaceFolder}` to dynamically set the current workspace path:
> ```json
> "env": {
>   "ALLOW_ROOTS": "${workspaceFolder}",
>   "DEFAULT_ROOT": "${workspaceFolder}"
> }
> ```