Skip to main content
Glama
Aeolun

Repomix MCP Server

by Aeolun
README.md
# Repomix MCP Server

A Model Context Protocol (MCP) server that provides access to the [repomix](https://github.com/yamadashy/repomix) tool for packing repositories into AI-friendly files.

## Security

- **Input paths**: The server restricts file access to the directory from which it was started. Any attempts to access files outside this directory (like `/etc/`) will be denied.
- **Output files**: All output is written to the system's temporary directory and automatically cleaned up after the contents are returned.
- **Remote URLs**: Remote repository URLs are still allowed for processing.

## Installation

```bash
npm install
npm run build
```

## Usage

### Claude Code

```bash
claude mcp add --scope user repomix node /path/to/repomix-mcp/dist/index.js
```

### Claude Desktop

Add this server to your MCP client configuration in your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "repomix": {
      "command": "node",
      "args": ["/path/to/repomix-mcp/dist/index.js"]
    }
  }
}
```

## Available Tools

Both tools accept the same parameters:

### Parameters

| Parameter | Type | Required | Description | Examples |
|-----------|------|----------|-------------|----------|
| `path` | string | No | Directory path to pack | `/path/to/repo` |
| `style` | enum | No | Output format style | `xml`, `markdown`, `plain` |
| `compress` | boolean | No | Compress output to reduce token count | `true`, `false` |
| `include` | string | No | Files to include (glob pattern) | `*.md,*.ts,*.js`, `*.py`, `src/**/*.go` |
| `ignore` | string | No | Files to exclude (glob pattern) | `*test*,*spec*,dist/**,build/**` |
| `remote` | string | No | Remote repository URL to process | `https://github.com/user/repo` |

### repomix-estimate

Estimate the size of [repomix](https://github.com/yamadashy/repomix) output without retrieving the content. Use this first to check if the output will fit in your context window.

Returns:
- File size in KB/MB
- Estimated token count (~4 characters per token)
- Whether compression is enabled

#### repomix-estimate output

```
Repomix output size estimate:
- Size: 5.27 KB (0.01 MB)
- Estimated tokens: ~1,349
- Compression: disabled

Use the repomix tool with these same parameters to retrieve the actual content.
```

### repomix

Pack a repository into a single, AI-friendly file. Returns the contents of the generated file.

**Best Practice**: Always use `repomix-estimate` first to check the output size, then use `repomix` with appropriate parameters (especially `compress=true` for large repos).

Example usage in Claude:
1. First check size: `use repomix-estimate tool`
2. If size is reasonable: `use repomix tool`
3. If too large, try with compression: `use repomix-estimate tool with compress=true`
4. Then retrieve: `use repomix tool with compress=true`

**Workflow**: Always estimate first, then retrieve only if the size fits your needs.

#### repomix output (first 15 lines)

```xml
This file is a merged representation of a subset of the codebase, containing specifically included files, combined into a single document by Repomix.

<file_summary>
This section contains a summary of this file.

<purpose>
This file contains a packed representation of the entire repository's contents.
It is designed to be easily consumable by AI systems for analysis, code review,
or other automated processes.
</purpose>

<file_format>
The content is organized as follows:
1. This summary section
2. Repository information
```

TDQS

A4.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: repomix-estimate is for estimating output size before retrieval, while repomix is for actually packing repository files. There is no overlap or ambiguity between them, as one is a preparatory check and the other is the main action.

Naming Consistency5/5

Both tools follow a consistent naming pattern with the 'repomix' prefix and descriptive suffixes ('-estimate' vs. no suffix for the base tool). This creates a clear hierarchy and makes the relationship between the tools immediately apparent.

Tool Count3/5

With only 2 tools, the server feels thin for a repository management domain. While the tools cover a specific workflow (estimation and packing), typical repository operations like listing, searching, or updating files are missing, making the scope narrow and potentially limiting for agents.

Completeness2/5

The server is severely incomplete for repository management. It only supports packing and estimating repository files, with no tools for creating, reading, updating, or deleting repository content, nor for common operations like cloning, branching, or committing. This will cause significant agent failures in broader repository tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues