Skip to main content

Production-ready MCP server for Redmine with security, pagination, and enterprise features

Project description

Redmine MCP Server

PyPI Version License Python Version GitHub Issues CI Downloads

A Model Context Protocol (MCP) server that integrates with Redmine project management systems. This server provides seamless access to Redmine data through MCP tools, enabling AI assistants to interact with your Redmine instance.

mcp-name: io.github.jztan/redmine-mcp-server

Tool reference | Changelog | Contributing | Troubleshooting

Features

  • Redmine Integration: List projects, view/create/update issues, download attachments
  • HTTP File Serving: Secure file access via UUID-based URLs with automatic expiry
  • MCP Compliant: Full Model Context Protocol support with FastMCP and streamable HTTP transport
  • Flexible Authentication: Username/password or API key
  • File Management: Automatic cleanup of expired files with storage statistics
  • Docker Ready: Complete containerization support
  • Pagination Support: Efficiently handle large issue lists with configurable limits

Quick Start

  1. Install the package
    pip install redmine-mcp-server
    
  2. Create a .env file with your Redmine credentials (see Installation for template)
  3. Start the server
    redmine-mcp-server
    
  4. Add the server to your MCP client using one of the guides in MCP Client Configuration.

Once running, the server listens on http://localhost:8000 with the MCP endpoint at /mcp, health check at /health, and file serving at /files/{file_id}.

Installation

Prerequisites

  • Python 3.10+ (for local installation)
  • Docker (alternative deployment, uses Python 3.13)
  • Access to a Redmine instance

Install from PyPI (Recommended)

# Install the package
pip install redmine-mcp-server

# Create configuration file .env
cat > .env << 'EOF'
# Redmine connection (required)
REDMINE_URL=https://your-redmine-server.com

# Authentication - Use either API key (recommended) or username/password
REDMINE_API_KEY=your_api_key
# OR use username/password:
# REDMINE_USERNAME=your_username
# REDMINE_PASSWORD=your_password

# Server configuration (optional, defaults shown)
SERVER_HOST=0.0.0.0
SERVER_PORT=8000

# Public URL for file serving (optional)
PUBLIC_HOST=localhost
PUBLIC_PORT=8000

# File management (optional)
ATTACHMENTS_DIR=./attachments
AUTO_CLEANUP_ENABLED=true
CLEANUP_INTERVAL_MINUTES=10
ATTACHMENT_EXPIRES_MINUTES=60
EOF

# Edit .env with your actual Redmine settings
nano .env  # or use your preferred editor

# Run the server
redmine-mcp-server
# Or alternatively:
python -m redmine_mcp_server.main

The server runs on http://localhost:8000 with the MCP endpoint at /mcp, health check at /health, and file serving at /files/{file_id}.

Environment Variables

Variable Required Default Description
REDMINE_URL Yes Base URL of your Redmine instance
REDMINE_API_KEY Yes* API key for authentication (or provide username/password)
REDMINE_USERNAME Yes* Username for basic auth (use with password when not using API key)
REDMINE_PASSWORD Yes* Password for basic auth
SERVER_HOST No 0.0.0.0 Host/IP the MCP server binds to
SERVER_PORT No 8000 Port the MCP server listens on
PUBLIC_HOST No localhost Hostname used when generating download URLs
PUBLIC_PORT No 8000 Public port used for download URLs
ATTACHMENTS_DIR No ./attachments Directory for downloaded attachments
AUTO_CLEANUP_ENABLED No true Toggle automatic cleanup of expired attachments
CLEANUP_INTERVAL_MINUTES No 10 Interval for cleanup task
ATTACHMENT_EXPIRES_MINUTES No 60 Expiry window for generated download URLs

* Either REDMINE_API_KEY or the combination of REDMINE_USERNAME and REDMINE_PASSWORD must be provided for authentication. API key authentication is recommended for security.

MCP Client Configuration

The server exposes an HTTP endpoint at http://127.0.0.1:8000/mcp. Register it with your preferred MCP-compatible agent using the instructions below.

Visual Studio Code (Native MCP Support)

VS Code has built-in MCP support via GitHub Copilot (requires VS Code 1.102+).

Using CLI (Quickest):

code --add-mcp '{"name":"redmine","type":"http","url":"http://127.0.0.1:8000/mcp"}'

Using Command Palette:

  1. Open Command Palette (Cmd/Ctrl+Shift+P)
  2. Run MCP: Open User Configuration (for global) or MCP: Open Workspace Folder Configuration (for project-specific)
  3. Add the configuration:
    {
      "servers": {
        "redmine": {
          "type": "http",
          "url": "http://127.0.0.1:8000/mcp"
        }
      }
    }
    
  4. Save the file. VS Code will automatically load the MCP server.

Manual Configuration: Create .vscode/mcp.json in your workspace (or mcp.json in your user profile directory):

{
  "servers": {
    "redmine": {
      "type": "http",
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}
Claude Code

Add to Claude Code using the CLI command:

claude mcp add --transport http redmine http://127.0.0.1:8000/mcp

Or configure manually in your Claude Code settings file (~/.claude.json):

{
  "mcpServers": {
    "redmine": {
      "type": "http",
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}
Codex CLI

Add to Codex CLI using the command:

codex mcp add redmine -- npx -y mcp-client-http http://127.0.0.1:8000/mcp

Or configure manually in ~/.codex/config.toml:

[mcp_servers.redmine]
command = "npx"
args = ["-y", "mcp-client-http", "http://127.0.0.1:8000/mcp"]

Note: Codex CLI primarily supports stdio-based MCP servers. The above uses mcp-client-http as a bridge for HTTP transport.

Kiro

Kiro primarily supports stdio-based MCP servers. For HTTP servers, use an HTTP-to-stdio bridge:

  1. Create or edit .kiro/settings/mcp.json in your workspace:
    {
      "mcpServers": {
        "redmine": {
          "command": "npx",
          "args": [
            "-y",
            "mcp-client-http",
            "http://127.0.0.1:8000/mcp"
          ],
          "disabled": false
        }
      }
    }
    
  2. Save the file and restart Kiro. The Redmine tools will appear in the MCP panel.

Note: Direct HTTP transport support in Kiro is limited. The above configuration uses mcp-client-http as a bridge to connect to HTTP MCP servers.

Generic MCP Clients

Most MCP clients use a standard configuration format. For HTTP servers:

{
  "mcpServers": {
    "redmine": {
      "type": "http",
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

For clients that require a command-based approach with HTTP bridge:

{
  "mcpServers": {
    "redmine": {
      "command": "npx",
      "args": ["-y", "mcp-client-http", "http://127.0.0.1:8000/mcp"]
    }
  }
}

Testing Your Setup

# Test connection by checking health endpoint
curl http://localhost:8000/health

Available Tools

This MCP server provides 10 tools for interacting with Redmine. For detailed documentation, see Tool Reference.

Docker Deployment

Quick Start with Docker

# Configure environment
cp .env.example .env.docker
# Edit .env.docker with your Redmine settings

# Run with docker-compose
docker-compose up --build

# Or run directly
docker build -t redmine-mcp-server .
docker run -p 8000:8000 --env-file .env.docker redmine-mcp-server

Production Deployment

Use the automated deployment script:

chmod +x deploy.sh
./deploy.sh

Troubleshooting

If you run into any issues, checkout our troubleshooting guide.

Contributing

Contributions are welcome! Please see our contributing guide for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Additional Resources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

redmine_mcp_server-0.7.1.tar.gz (151.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

redmine_mcp_server-0.7.1-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file redmine_mcp_server-0.7.1.tar.gz.

File metadata

  • Download URL: redmine_mcp_server-0.7.1.tar.gz
  • Upload date:
  • Size: 151.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for redmine_mcp_server-0.7.1.tar.gz
Algorithm Hash digest
SHA256 9b89e43c0dab01469b47786278f16c958b996e526b9c48343668ba797a7212ac
MD5 d0ebe1d5bda3551bf86383946735bbd8
BLAKE2b-256 c28b8baac09c06d37026799d840a3d8872bbc5962d915aa0b2232537f9993adb

See more details on using hashes here.

File details

Details for the file redmine_mcp_server-0.7.1-py3-none-any.whl.

File metadata

File hashes

Hashes for redmine_mcp_server-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1a44d244a9f9834bf19e172b51204cb882f155f6fe4c91bc51a2822bad0e1a49
MD5 4d2e94ab45bc9aca42e19d7ed343203f
BLAKE2b-256 9dd8912b2c9332db7458133d2e260ecee91018e78af8be30989d4de48398306b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page