About Redmine
Redmine is a command-line client for managing Redmine projects, with an Agent Skill and built-in MCP server for AI workflows. Its MCP tools are read-only by default and support per-tool and per-group access controls.
Key features
- 01Manage Redmine issues and projects
- 02Use machine-readable JSON output
- 03Filter output with jq expressions
- 04Install an Agent Skill for AI agents
- 05Run a built-in MCP server
Use cases
- 01List and inspect Redmine issues from a terminal
- 02Use Redmine data in AI agent workflows
- 03Restrict MCP access to selected tool groups
MCP support
The built-in MCP server exposes Redmine operations as typed tools. It is read-only by default and offers per-group and per-tool allow- and deny-lists.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
docker run -i --rm -e REDMINE_SERVER -e REDMINE_API_KEY -e REDMINE_MCP_ENABLE_WRITES ghcr.io/aarondpn/redmine-mcp:2.15.0REDMINE_SERVERBase URL of your Redmine instance, e.g. https://redmine.example.comREDMINE_API_KEYSecretYour Redmine API key (My account -> API access key)REDMINE_MCP_ENABLE_WRITESSet to true to also register create/update/delete toolsLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
ghcr.io/aarondpn/redmine-mcp:2.15.0stdioTools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README
redmine-cli
A command-line interface for Redmine project management.
Installation · Getting Started · AI Agents
Installation
Homebrew (macOS & Linux)
brew tap aarondpn/tap
brew install redmine
This also installs shell completions for bash, zsh, and fish.
Quick Install Script
curl -fsSL https://raw.githubusercontent.com/aarondpn/redmine-cli/main/install.sh | bash
Auto-detects your OS and architecture, downloads the latest release with checksum verification, and installs to ~/.local/bin. If a recent GitHub CLI is installed and logged in, it also verifies the release's build attestation with gh attestation verify and refuses to install if that fails. Without such a gh, it installs after the checksum check only and prints a warning with the command to verify the release yourself. Set REDMINE_CLI_VERSION=<tag> to install a specific release; releases older than v2.11.2 have no attestations, so pinning one of them with a logged-in gh also needs REDMINE_CLI_SKIP_ATTESTATION=1. See the installation docs for details.
Install with Go
go install github.com/aarondpn/redmine-cli/v2/cmd/redmine@latest
Manual Download
Grab the latest release for your platform from GitHub Releases:
| Platform | Architecture | Download |
|---|---|---|
| Linux | x86_64 | redmine-cli-linux-amd64.tar.gz |
| Linux | ARM64 | redmine-cli-linux-arm64.tar.gz |
| macOS | Intel | redmine-cli-darwin-amd64.tar.gz |
| macOS | Apple Silicon | redmine-cli-darwin-arm64.tar.gz |
| Windows | x86_64 | redmine-cli-windows-amd64.zip |
Updating
redmine update
Downloads the latest release and verifies its SHA256 checksum and its GitHub artifact attestation (SLSA provenance from this repository's release workflow, verified via Sigstore) before replacing the binary. The update is refused if either check fails; --skip-attestation falls back to checksum-only verification with a warning.
Getting Started
# Configure your Redmine server and API key
redmine auth login
# List issues
redmine issues list
# View a specific issue
redmine issues view 123
# Log time
redmine time log
# Script it: JSON output filtered with the built-in --jq
redmine issues list --project myproject --jq '.[].id'
redmine issues get 123 --jq '.status.name'
Run redmine --help to see all available commands.
-o json prints machine-readable JSON, and -q/--jq <expression> filters it (strings are printed raw, everything else as JSON). Errors always go to stderr; in JSON mode they are a single-line {"error": {...}} envelope on the last line of stderr, stdout stays empty and the exit code is non-zero. See Output formats.
Using with AI Agents
redmine-cli ships an Agent Skill (the open SKILL.md standard, supported by 35+ agents) and a built-in MCP server. Both are vendor-neutral - pick the one-liner that matches your tool:
| Tool | One-line install |
|---|---|
| Any agent (skill) | npx skills add aarondpn/redmine-cli |
| Any MCP host | redmine mcp serve (then add to host config) |
| Docker (MCP only) | docker run -i --rm -e REDMINE_SERVER -e REDMINE_API_KEY ghcr.io/aarondpn/redmine-mcp |
| Claude Code | /plugin marketplace add aarondpn/redmine-cli then /plugin install redmine |
| Codex CLI | codex plugin marketplace add aarondpn/redmine-cli then /plugins (install Redmine from the added marketplace) |
| Gemini CLI | gemini extensions install https://github.com/aarondpn/redmine-cli |
The skill teaches the agent the non-obvious parts of the CLI (output formats, name resolution, pagination, common workflows). The MCP server exposes the same operations as typed tool calls, read-only by default, with per-group / per-tool allow- and deny-lists.
Full configuration, host-specific snippets (Claude Desktop, Cursor, Zed, VS Code), and write-tool gating: see the AI Agent Integration guide.
Development
Local E2E testing against a real Redmine instance (Docker, supported on Redmine 4.2, 5.1, 6.1, 7.0): see e2e/README.md.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.