npm package: @hoangconghuy/mcp-redmine
Description: MCP server for Redmine — lets AI agents interact with Redmine via its REST API
Latest version: 1.0.3

# mcp-redmine

An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that connects AI agents to **Redmine** project management. Lets AI assistants list issues, create tasks, search projects, log time, read wikis, and more — all through Redmine's REST API.

## Features

- 🔑 **Flexible authentication** — API Key, Basic Auth, or both simultaneously
- 📋 **Issues** — list, get, create, update (with filters, pagination, journals)
- 📁 **Projects** — list and get project details (with trackers, categories, modules)
- 👤 **Users** — get current user, list users (admin)
- ⏱️ **Time tracking** — list and create time entries
- 📖 **Wiki** — get and list wiki pages (with versioning)
- 🔍 **Search** — full-text search across Redmine

## Prerequisites

- **Node.js** ≥ 18
- A **Redmine** instance with REST API enabled
  *(Administration → Settings → API → Enable REST API)*

## Configuration

The server is configured via environment variables:

| Variable | Required | Description |
|----------|----------|-------------|
| `REDMINE_URL` | ✅ | Base URL of your Redmine instance (e.g. `https://redmine.example.com`) |
| `REDMINE_API_KEY` | ⚡ | API key (found in My Account → API access key) |
| `REDMINE_USERNAME` | ⚡ | Username for basic authentication |
| `REDMINE_PASSWORD` | ⚡ | Password for basic authentication |

> ⚡ Either `REDMINE_API_KEY` **or** `REDMINE_USERNAME` + `REDMINE_PASSWORD` is required. You can also provide both — Basic Auth and API Key will be sent together.

## Usage

### VS Code (Gemini / Copilot)

Add to `.vscode/mcp.json`:

```json
{
  "servers": {
    "mcp-redmine": {
      "command": "npx",
      "args": ["-y", "@hoangconghuy/mcp-redmine"],
      "env": {
        "REDMINE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your-api-key"
      }
    }
  }
}
```

### Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "mcp-redmine": {
      "command": "npx",
      "args": ["-y", "@hoangconghuy/mcp-redmine"],
      "env": {
        "REDMINE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your-api-key"
      }
    }
  }
}
```

### Direct run

```bash
REDMINE_URL=https://redmine.example.com \
REDMINE_API_KEY=your-api-key \
npx -y @hoangconghuy/mcp-redmine
```

## Available Tools

| Tool | Description |
|------|-------------|
| `list-issues` | List issues with filters (project, status, tracker, assignee, sort, pagination) |
| `get-issue` | Get a single issue with full details and optional associations (journals, attachments, etc.) |
| `create-issue` | Create a new issue with full field support (tracker, priority, dates, etc.) |
| `update-issue` | Update an existing issue (fields, status, notes, done ratio) |
| `list-projects` | List all accessible projects with optional associations |
| `get-project` | Get project details by ID or identifier |
| `get-current-user` | Get the authenticated user's info (with memberships and groups) |
| `list-users` | List users with filters (admin only) |
| `list-time-entries` | List time entries with filters (project, user, date range) |
| `create-time-entry` | Log time against an issue or project |
| `get-wiki-page` | Get a wiki page's content (with version support) |
| `list-wiki-pages` | List all wiki pages in a project |
| `search-redmine` | Full-text search across Redmine (issues, projects, wiki, etc.) |

## Development

```bash
npm install
npm run dev    # Watch mode (auto-recompile on changes)
npm run build  # One-time build
npm start      # Run the built server
```

## License

MIT