
Redmine MCP Server
A Model Context Protocol server that enables Claude Code to directly interact with Redmine project management systems, supporting issue management, project operations, and search features.
Tools
server_info
取得服務器資訊和狀態
health_check
健康檢查工具,確認服務器正常運作
get_issue
取得指定的 Redmine 議題詳細資訊 Args: issue_id: 議題 ID include_details: 是否包含詳細資訊(描述、備註、附件等) Returns: 議題的詳細資訊,以易讀格式呈現
update_issue_status
更新議題狀態 Args: issue_id: 議題 ID status_id: 新的狀態 ID(與 status_name 二選一) status_name: 新的狀態名稱(與 status_id 二選一) notes: 更新備註(可選) Returns: 更新結果訊息
list_project_issues
列出專案的議題 Args: project_id: 專案 ID status_filter: 狀態篩選 ("open", "closed", "all") limit: 最大回傳數量 (預設 20,最大 100) Returns: 專案議題列表,以表格格式呈現
get_issue_statuses
取得所有可用的議題狀態列表 Returns: 格式化的狀態列表
get_trackers
取得所有可用的追蹤器列表 Returns: 格式化的追蹤器列表
get_priorities
取得所有可用的議題優先級列表 Returns: 格式化的優先級列表
get_time_entry_activities
取得所有可用的時間追蹤活動列表 Returns: 格式化的時間追蹤活動列表
get_document_categories
取得所有可用的文件分類列表 Returns: 格式化的文件分類列表
get_projects
取得可存取的專案列表 Returns: 格式化的專案列表
search_issues
搜尋議題 (在標題或描述中搜尋關鍵字) Args: query: 搜尋關鍵字 project_id: 限制在特定專案中搜尋 (可選) limit: 最大回傳數量 (預設 10,最大 50) Returns: 符合搜尋條件的議題列表
update_issue_content
更新議題內容(標題、描述、優先級、完成度、追蹤器、日期、工時等) Args: issue_id: 議題 ID subject: 新的議題標題(可選) description: 新的議題描述(可選) priority_id: 新的優先級 ID(與 priority_name 二選一) priority_name: 新的優先級名稱(與 priority_id 二選一) done_ratio: 新的完成百分比 0-100(可選) tracker_id: 新的追蹤器 ID(與 tracker_name 二選一) tracker_name: 新的追蹤器名稱(與 tracker_id 二選一) parent_issue_id: 新的父議題 ID(可選) remove_parent: 是否移除父議題關係(可選) start_date: 新的開始日期 YYYY-MM-DD 格式(可選) due_date: 新的完成日期 YYYY-MM-DD 格式(可選) estimated_hours: 新的預估工時(可選) Returns: 更新結果訊息
add_issue_note
為議題新增備註,可同時記錄時間 Args: issue_id: 議題 ID notes: 備註內容 private: 是否為私有備註(預設否) spent_hours: 耗用工時(小時) activity_name: 活動名稱(與 activity_id 二選一) activity_id: 活動 ID(與 activity_name 二選一) spent_on: 記錄日期 YYYY-MM-DD 格式(可選,預設今日) Returns: 新增結果訊息
assign_issue
指派議題給用戶 Args: issue_id: 議題 ID user_id: 指派給的用戶 ID(與 user_name/user_login 三選一) user_name: 指派給的用戶姓名(與 user_id/user_login 三選一) user_login: 指派給的用戶登入名(與 user_id/user_name 三選一) notes: 指派備註(可選) Returns: 指派結果訊息
create_new_issue
建立新的 Redmine 議題 Args: project_id: 專案 ID subject: 議題標題 description: 議題描述(可選) tracker_id: 追蹤器 ID(與 tracker_name 二選一) tracker_name: 追蹤器名稱(與 tracker_id 二選一) priority_id: 優先級 ID(與 priority_name 二選一) priority_name: 優先級名稱(與 priority_id 二選一) assigned_to_id: 指派給的用戶 ID(與 assigned_to_name/assigned_to_login 三選一) assigned_to_name: 指派給的用戶姓名(與 assigned_to_id/assigned_to_login 三選一) assigned_to_login: 指派給的用戶登入名(與 assigned_to_id/assigned_to_name 三選一) Returns: 建立結果訊息
get_my_issues
取得指派給我的議題列表 Args: status_filter: 狀態篩選 ("open", "closed", "all") limit: 最大回傳數量 (預設 20,最大 100) Returns: 我的議題列表
close_issue
關閉議題(設定為已完成狀態) Args: issue_id: 議題 ID notes: 關閉備註(可選) done_ratio: 完成百分比(預設 100%) Returns: 關閉結果訊息
search_users
搜尋用戶(依姓名或登入名) Args: query: 搜尋關鍵字(姓名或登入名) limit: 最大回傳數量 (預設 10,最大 50) Returns: 符合搜尋條件的用戶列表
list_users
列出所有用戶 Args: limit: 最大回傳數量 (預設 20,最大 100) status_filter: 狀態篩選 ("active", "locked", "all") Returns: 用戶列表,以表格格式呈現
get_user
取得特定用戶的詳細資訊 Args: user_id: 用戶 ID Returns: 用戶的詳細資訊,以易讀格式呈現
refresh_cache
手動刷新列舉值和用戶快取 Returns: 刷新結果訊息
README
Redmine MCP Server
A Model Context Protocol (MCP) server for Redmine integration, enabling Claude Code to directly interact with Redmine project management systems.
🚀 Features
✅ Issue Management
- Query Issues: Get detailed issue information and lists
- Create Issues: Create new issues and set related attributes
- Update Issues: Modify issue content, status, priority, etc.
- Assign Issues: Assign or unassign issues to specific users
- Add Notes: Add public or private notes to issues
- Close Issues: Automatically set issues to completed status
✅ Project Management
- Project Lists: Get accessible project lists
- Project Issues: Filter by status and list all issues in projects
✅ Search Features
- Keyword Search: Search for keywords in issue titles and descriptions
- My Issues: Quick view of issues assigned to current user
✅ System Tools
- Health Check: Verify MCP server and Redmine connection status
- Status Query: Get available issue status lists
📋 System Requirements
- Python: 3.12 or higher
- Redmine: Version with REST API support (recommended 4.0+)
- Package Manager: uv or pip
🔧 Installation & Setup
1. Clone the Project
git clone https://github.com/snowild/redmine-mcp.git
cd redmine-mcp
2. Install Dependencies
Using uv (recommended):
uv sync
Or using pip:
pip install -e .
3. Environment Configuration
Create a .env
file:
cp .env.example .env
Edit the .env
file and set the following environment variables:
REDMINE_DOMAIN=https://your-redmine-domain.com
REDMINE_API_KEY=your_api_key_here
# Project-specific variables (avoid conflicts with other projects)
REDMINE_MCP_LOG_LEVEL=INFO
REDMINE_MCP_TIMEOUT=30
# Backward compatibility variables (fallback)
REDMINE_TIMEOUT=30
LOG_LEVEL=info
Environment Variables Reference
Variable | Description | Default | Example |
---|---|---|---|
REDMINE_DOMAIN |
Redmine server URL | Required | https://redmine.example.com |
REDMINE_API_KEY |
Your Redmine API key | Required | abc123... |
REDMINE_MCP_LOG_LEVEL |
Log level for this MCP server | INFO |
DEBUG , INFO , WARNING , ERROR |
REDMINE_MCP_TIMEOUT |
Request timeout (seconds) | 30 |
60 |
LOG_LEVEL |
Legacy log level (backward compatibility) | - | debug , info |
REDMINE_TIMEOUT |
Legacy timeout (backward compatibility) | - | 30 |
Log Level Priority:
REDMINE_MCP_LOG_LEVEL
(highest priority - project-specific)LOG_LEVEL
(backward compatibility)INFO
(default if neither is set)
Note: The system automatically handles case conversion and ensures FastMCP compatibility.
4. Redmine API Setup
4.1 Enable REST API
- Log in to Redmine as administrator
- Go to Administration → Settings → API
- Check "Enable REST web service"
- Click Save
4.2 Configure Redmine Basic Data (Administrator)
Before using MCP tools, you need to configure Redmine's basic data:
Configure Roles and Permissions
- Go to Administration → Roles and permissions
- Create or edit roles (e.g.: Developer, Tester, Project Manager)
- Assign appropriate permissions to roles (recommend at least: View issues, Add issues, Edit issues)
Configure Trackers
- Go to Administration → Trackers
- Create tracker types (e.g.: Bug, Feature, Support)
- Set default status and workflow for each tracker
Configure Issue Statuses
- Go to Administration → Issue statuses
- Create statuses (e.g.: New, In Progress, Resolved, Closed, Rejected)
- Set status attributes (whether it's a closed status, etc.)
Configure Workflow
- Go to Administration → Workflow
- Set allowed status transitions for each role and tracker combination
- Ensure basic status transition paths (New → In Progress → Resolved → Closed)
Create Projects
- Go to Projects → New project
- Set project name, identifier, description
- Select enabled modules (at least enable "Issue tracking")
- Assign members and set roles
4.3 Get API Key
- Log in to your Redmine system (can be administrator or regular user)
- Go to My account → API access key
- Click Show or Reset to get the API key
- Copy the key to
REDMINE_API_KEY
in the.env
file
⚠️ Important Notes:
- If you can't find the API key option, please ensure step 4.1 (Enable REST API) is completed
- Complete basic setup before you can properly create and manage issues
📚 Detailed Setup Guide: For complete Redmine setup steps, please refer to Redmine Complete Setup Guide
🔗 Claude Code Integration
Install to Claude Code
# Install from local
uv tool install .
# Or using pip
pip install .
# Add to Claude Code MCP configuration
claude mcp add redmine "redmine-mcp" \
-e REDMINE_DOMAIN="https://your-redmine-domain.com" \
-e REDMINE_API_KEY="your_api_key_here"
Verify Installation
# Test MCP server
uv run python -m redmine_mcp.server
# Test Claude Code integration
uv run python tests/scripts/claude_integration.py
🔄 Updating/Reinstalling MCP
If you need to update to the latest version of the MCP server or reinstall it:
1. Remove Previous Installation
# Remove from Claude Code
claude mcp remove redmine
# Uninstall the package (if installed with uv tool)
uv tool uninstall redmine-mcp
# Or if installed with pip
pip uninstall redmine-mcp
2. Install Latest Version
# Navigate to project directory
cd /path/to/redmine-mcp
# Pull latest changes (if from git)
git pull origin main
# Install latest version
uv tool install .
# Or using pip
pip install .
3. Re-register with Claude Code
claude mcp add redmine "redmine-mcp" \
-e REDMINE_DOMAIN="https://your-redmine-domain.com" \
-e REDMINE_API_KEY="your_api_key_here" \
-e REDMINE_MCP_LOG_LEVEL="INFO" \
-e REDMINE_MCP_TIMEOUT="30"
4. Verify Updated Installation
# Verify MCP registration
claude mcp list
# Or check in Claude Code using slash command
# /mcp
# Or test directly
uv run python -m redmine_mcp.server --help
Important Notes:
- Environment variable names have been updated for better project isolation
- Now supports both
REDMINE_MCP_LOG_LEVEL
(preferred) andLOG_LEVEL
(backward compatibility)- Log level handling is now more robust with automatic case conversion and FastMCP compatibility
🛠️ Available MCP Tools
Basic Tools
Tool Name | Description |
---|---|
server_info |
Display server information and configuration status |
health_check |
Check server and Redmine connection health status |
Issue Operations
Tool Name | Description |
---|---|
get_issue |
Get detailed information of specified issue |
create_new_issue |
Create a new issue |
update_issue_status |
Update issue status |
update_issue_content |
Update issue content (title, description, etc.) |
add_issue_note |
Add notes to issues |
assign_issue |
Assign or unassign issues |
close_issue |
Close issue and set completion rate |
Query Tools
Tool Name | Description |
---|---|
list_project_issues |
List issues in projects |
get_my_issues |
Get list of issues assigned to me |
search_issues |
Search for issues containing keywords |
get_projects |
Get list of accessible projects |
get_issue_statuses |
Get all available issue statuses |
get_trackers |
Get all available tracker lists |
get_priorities |
Get all available issue priorities |
get_time_entry_activities |
Get all available time tracking activities |
get_document_categories |
Get all available document categories |
💡 Usage Examples
Using in Claude Code
# Check server status
Please run health check
# Get project list
Show all accessible projects
# View system settings
Get all available issue statuses
Get all available tracker lists
Get all available issue priorities
Get all available time tracking activities
Get all available document categories
# View specific issue
Get detailed information for issue #123
# Create new issue
Create an issue in project ID 1:
- Title: Fix login error
- Description: Users cannot log in to the system properly
- Priority: High
# Search issues
Search for issues containing "login" keyword
# Update issue status
Update issue #123 status to "In Progress" with note "Starting to handle this issue"
🧪 Testing
Run Test Suite
# Run all tests
uv run python -m pytest
# Run MCP integration tests
uv run python tests/scripts/mcp_integration.py
# Run Claude Code integration tests
uv run python tests/scripts/claude_integration.py
Docker Environment Testing
If you want to test in a local Docker environment:
# Start Redmine test environment
docker-compose up -d
# Quick start complete test environment
./quick_start.sh
🔍 Troubleshooting
Common Issues
1. API Authentication Failed (401/403 errors)
- Verify API key is correct
- Check if Redmine has REST API enabled: Go to
Administration
→Settings
→API
, check "Enable REST web service" - Verify user permissions are sufficient
- Check if URL is correct (including http/https and port)
2. Connection Timeout
- Check network connection
- Adjust
REDMINE_TIMEOUT
environment variable - Verify Redmine server status
3. Issue Creation Failed
- Verify project exists and has permissions
- Check if required fields are filled
- Verify tracker and status settings
- Check basic data configuration: Ensure roles, trackers, statuses, and workflow setup is complete
- Verify user has appropriate role and permissions in the project
4. Status Update Failed
- Check if workflow allows the status transition
- Verify user role has permission to change status
- Verify target status ID is correct
5. Project or Issue Not Found
- Verify ID is correct
- Check if user has permission to view the project/issue
- Verify project status is active
Debug Mode
Enable debug mode for more detailed error information:
DEBUG_MODE=true
📁 Project Structure
redmine-mcp/
├── src/redmine_mcp/ # Main source code
│ ├── __init__.py # Package initialization
│ ├── server.py # MCP server main program
│ ├── redmine_client.py # Redmine API client
│ ├── config.py # Configuration management
│ └── validators.py # Data validation
├── tests/ # Test files
├── docs/ # Documentation directory
├── docker-compose.yml # Docker test environment
├── pyproject.toml # Project configuration
└── README.md # Project documentation
🤝 Contributing
- Fork this project
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🔗 Related Links
If you have any questions or suggestions, feel free to open an Issue or contact the project maintainers.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.