Skip to main content
Glama
junstellar

Redmine MCP Server

by junstellar
README.md
# Redmine MCP Server

An MCP server that lets you work with **Redmine in natural language** from Claude Code (or any other MCP client).
Shipped as a **pip package** supporting Windows, macOS, and Linux. Works with any self-hosted or corporate Redmine β€” all you need is an API access key.

> ⚠️ Your API key and Redmine URL are stored **only in `~/.claude.json` on your own machine**. The server runs locally over stdio and never sends your key anywhere.

## Provided Tools (10)

| Tool | Description |
|---|---|
| `list_projects` | List projects |
| `list_issues` | List issues (filter by project/assignee/status/date range) |
| `get_issue` | Issue details + comments + attachments |
| `create_issue` | Create a new issue |
| `add_comment` | Add a comment to an issue (can also change status) |
| `list_wiki_pages` | List wiki pages |
| `get_wiki` | Read a wiki page |
| `update_wiki` | Create/update a wiki page |
| `get_my_today` | Issues assigned to me + recently updated issues (morning briefing) |
| `list_enumerations` | List tracker/status/priority IDs |

---

## πŸš€ Install β€” Two Lines (Windows Β· macOS Β· Linux)

### Prerequisites (one-time)
- Python 3.10+ ([python.org](https://www.python.org/downloads/) β€” check "Add to PATH" during install)
- `pipx` ([installation guide](https://pipx.pypa.io/stable/installation/))
- Claude Code launched at least once (auto-creates `~/.claude.json`)
- A Redmine API access key (log in to Redmine β†’ top-right "My account" β†’ "API access key")

### Install command (recommended: pipx)

```bash
pipx install git+https://github.com/junstellar/redmine-mcp-jun.git
redmine-mcp-setup
```

`redmine-mcp-setup` automatically:
1. Backs up `~/.claude.json` (`~/.claude.json.backup.YYYYMMDD_HHMMSS`)
2. Prompts for your Redmine server URL + API key (the key is entered as a console password β€” never logged)
3. Registers the `mcpServers.redmine` entry

Then **fully quit and restart Claude Code** β€” the 10 `mcp__redmine__*` tools become available.

### Why pipx?
- Installs CLI tools into isolated environments β†’ keeps your system Python clean
- Avoids the **PEP 668** restriction (Ubuntu 23.04+, Debian 12+, recent Fedora, etc.) where plain `pip install` is blocked
- Same command on every OS

### Update / Uninstall

```bash
pipx upgrade redmine-mcp          # then restart Claude Code

redmine-mcp-uninstall             # removes the entry from .claude.json
pipx uninstall redmine-mcp
```

### Alternative: plain pip (no pipx)

```bash
pip install git+https://github.com/junstellar/redmine-mcp-jun.git
redmine-mcp-setup
```

- On PEP 668-restricted systems, use `pip install --user ...` or a virtual environment
- If `pip` is missing, try `pip3` / `python3 -m pip`

---

## ⚑ Non-Interactive Install (automation/batch)

```bash
redmine-mcp-setup --url "https://redmine.example.com" --api-key "YOUR_API_KEY" --force
```

---

## 🐧 Status by OS

| Environment | Status | Notes |
|---|---|---|
| Windows 10/11 + Python 3.10–3.14 | βœ… Verified | Both pip and pipx OK |
| macOS (Homebrew Python) | βœ… Works as standard | |
| Ubuntu 22.04 (Python 3.10) | βœ… Works as standard | |
| Ubuntu 24.04, Debian 12+, recent Fedora/Arch | ⚠️ **pipx required** | plain `pip install` blocked by PEP 668 |
| Ubuntu 20.04 and other Python 3.8 defaults | ⚠️ Python upgrade needed | `deadsnakes` PPA or `pyenv`/`uv` |
| WSL2 | βœ… Same as Linux | |

**Common requirements:** the Redmine REST API must be enabled (Administration β†’ Settings β†’ API) and the Redmine server must be reachable from your machine. For internal/private-network Redmine, make sure you're on VPN etc.

---

## Usage Examples (inside Claude Code)

Reading
- "Summarize my issues for today"
- "Show me the issue list for my-project"
- "What was issue #123 about?"
- "Show issues updated this week"
- "Show only in-progress issues assigned to me"

Writing
- "Create a new issue 'GPU out of memory' in my-project"
- "Comment 'Starting work on this' on #123"
- "Change the status of #123 to Closed"

Wiki
- "List the wiki pages of my-project"
- "Create a 'Getting Started' wiki page in my-project"

Beyond
- "Summarize my issues updated yesterday as an email body"
- "Count my issues from the past week by status"

---

## Manual Install (register without the setup script)

1. Install the package
   ```bash
   pip install git+https://github.com/junstellar/redmine-mcp-jun.git
   ```

2. Add to the `mcpServers` section of `~/.claude.json`:
   ```json
   {
     "mcpServers": {
       "redmine": {
         "command": "python",
         "args": ["-m", "redmine_mcp"],
         "env": {
           "REDMINE_URL": "https://redmine.example.com",
           "REDMINE_API_KEY": "YOUR_API_KEY_HERE",
           "PYTHONIOENCODING": "utf-8"
         }
       }
     }
   }
   ```
   * Windows: `%USERPROFILE%\.claude.json`
   * macOS/Linux: `~/.claude.json`

3. Restart Claude Code

---

## Project Layout

```
redmine-mcp/
β”œβ”€ pyproject.toml          # pip package metadata
β”œβ”€ src/
β”‚  └─ redmine_mcp/
β”‚     β”œβ”€ __init__.py
β”‚     β”œβ”€ __main__.py       # python -m redmine_mcp
β”‚     β”œβ”€ server.py         # MCP server core (10 tools)
β”‚     └─ installer.py      # setup/uninstall scripts
β”œβ”€ install.ps1             # optional Windows wrapper
β”œβ”€ uninstall.ps1           # optional Windows wrapper
β”œβ”€ INSTALL_PROMPT.md       # paste-into-Claude-Code auto-install prompt
β”œβ”€ LICENSE                 # MIT
└─ README.md
```

## Running Directly (debug)

It's a stdio-mode server, so running it directly just waits for client input (quit with Ctrl+C).

```bash
REDMINE_URL=https://redmine.example.com \
REDMINE_API_KEY=YOUR_KEY \
redmine-mcp
```

Windows PowerShell:
```powershell
$env:REDMINE_URL="https://redmine.example.com"
$env:REDMINE_API_KEY="YOUR_KEY"
redmine-mcp
```

---

## License

MIT β€” use, modify, and distribute freely. See [LICENSE](LICENSE).

TDQS

A3.6/5.0

Scored across 11 tools

Disambiguation5/5

All tools have clearly distinct purposes: add_comment is for issue comments, create_issue for creation, download_attachment for downloading, get_issue for details, get_my_today for personalized summary, get_wiki for wiki content, list_enumerations for IDs, list_issues for listing, list_projects for projects, list_wiki_pages for wiki listing, and update_wiki for wiki modification. No two tools overlap in functionality.

Naming Consistency4/5

Tool names follow a consistent snake_case verb_noun pattern (e.g., create_issue, list_projects). The only minor deviation is 'get_my_today' which uses a possessive 'my_today', but it remains readable and fits the pattern of other 'get_' tools.

Tool Count5/5

With 11 tools covering issues, wiki, projects, attachments, and enumerations, the number is well-scoped. Each tool earns its place without redundancy, appropriate for a Redmine MCP server.

Completeness3/5

Core operations for issues (create, read, add comment) and wiki (get, list, upsert) are present, but missing update and delete for issues, and delete for wiki. This leaves notable gaps in lifecycle coverage, though the surface handles common workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues