mcp-redmine-server
MCP server for Redmine integration, enabling AI assistants to manage issues, upload files, automate workflows, and handle wiki pages.
README
MCP Redmine Server
Model Context Protocol (MCP) server for Redmine integration. Provides comprehensive Redmine API access to Claude Code and other MCP-compatible AI assistants.
Features
- Issue Management: Create, read, update issues with full details
- File Attachments: Upload and attach files/images to issues
- Workflow Support: Start/complete fix workflows with Git integration
- Relations & Tree: Manage issue relations, subtasks, and hierarchies
- Status Filtering: Query issues by status with flexible filtering
- Comments: Add comments and update issue status
- Git Integration: Automatic branch creation and commit tracking
- Wiki Support: Full wiki page management (read, create, update, delete)
Available Tools
The server provides the following MCP tools:
Issue Operations
-
redmine_get_issue - Get detailed issue information
- Includes description, status, priority, comments
- Returns full issue object with all metadata
-
redmine_create_issue - Create new issue
- Parameters: title, description, tracker_id, priority_id, parent_id, file_paths
- Supports creating subtasks via parent_id
- Can attach files during issue creation
-
redmine_add_comment - Add comment to issue
- Can optionally update issue status
- Useful for progress updates and status changes
File & Attachment Operations
-
redmine_upload_file - Upload file to Redmine
- Returns upload token for later use
- Supports all file types (images, documents, archives, etc.)
-
redmine_add_attachments - Attach files to existing issue
- Upload and attach multiple files in one operation
- Automatically adds comment with file list
Querying & Filtering
-
redmine_get_issues_by_status - Filter issues by status
- Parameters: status_name, limit, project_id
- Returns issues with specific status (e.g., "New", "In Progress")
- Can filter by project or get from all projects
-
redmine_get_statuses - Get all available statuses
- Returns complete list of project statuses
- Useful for discovering valid status names
-
redmine_get_projects - Get all accessible projects
- Lists all Redmine projects available to your API key
- Useful for multi-project environments
-
redmine_get_project - Get project details
- Returns project info with trackers and enabled modules
-
redmine_get_project_issues - Get issues from specific project
- Supports pagination and filtering
- Filter by status, tracker, assignee
Relations & Hierarchy
-
redmine_get_issue_tree - Get full issue tree
- Returns main issue, related issues, and child issues
- Shows complete issue hierarchy
-
redmine_create_relation - Link two issues
- Relation types: relates, blocks, blocked, duplicates, precedes, follows
- Creates bidirectional relationships
Workflow Automation
-
redmine_start_fix - Start fix workflow
- Creates Git branch automatically
- Updates issue status to "In Progress"
- Adds workflow comment
-
redmine_complete_fix - Complete fix workflow
- Updates issue status to "Resolved"
- Adds completion comment with commit details
- Validates working directory is clean
Wiki Operations
-
redmine_wiki_get_page - Get wiki page content
- Returns page text and metadata
- Includes attachments information
-
redmine_wiki_get_index - List all wiki pages
- Returns index of all pages in project
-
redmine_wiki_put_page - Create or update wiki page
- Uses Redmine Textile markup
- Supports page hierarchy via parent_title
-
redmine_wiki_delete_page - Delete wiki page
- Permanently removes wiki page from project
Installation
Global Installation (Recommended)
Install the MCP server globally for use across all projects:
# Install dependencies
npm install
# Create global link
npm link
# Verify installation
which mcp-redmine
Local Installation
Or install locally in a specific project:
npm install
Configuration
Environment Variables
Create a .env file or set environment variables:
# Required
export REDMINE_API_KEY=your_api_key_here
# Optional (defaults shown)
export REDMINE_BASE_URL=https://3cad.tech
export REDMINE_PROJECT_ID=8
export REDMINE_PROJECT_IDENTIFIER=cad-tech
Get Your Redmine API Key
- Log in to your Redmine instance
- Go to "My account" (top right menu)
- Click "Show" under "API access key" on the right sidebar
- Copy the API key
Claude Code Integration
Method 1: Global MCP Configuration
Add to your global Claude Code MCP settings (~/.config/claude-code/mcp.json or similar):
{
"mcpServers": {
"redmine": {
"command": "mcp-redmine",
"env": {
"REDMINE_API_KEY": "your_api_key_here",
"REDMINE_BASE_URL": "https://3cad.tech",
"REDMINE_PROJECT_ID": "8",
"REDMINE_PROJECT_IDENTIFIER": "cad-tech"
}
}
}
}
Method 2: Project-Specific Configuration
Add to your project's .claude/mcp.json:
{
"mcpServers": {
"redmine": {
"command": "node",
"args": ["path/to/mcp-redmine-server/index.js"],
"env": {
"REDMINE_API_KEY": "your_api_key_here"
}
}
}
}
Method 3: Use with dotenv
If using local installation with .env file:
{
"mcpServers": {
"redmine": {
"command": "node",
"args": ["-r", "dotenv/config", "path/to/mcp-redmine-server/index.js"],
"cwd": "path/to/mcp-redmine-server"
}
}
}
Usage Examples
Once configured in Claude Code, the AI assistant can use these tools automatically:
Example Conversations
User: "Show me all issues that are in progress"
Claude will use redmine_get_issues_by_status with status_name: "In Progress"
User: "Create a new bug for the login page issue"
Claude will use redmine_create_issue with appropriate tracker_id
User: "Start working on issue #42"
Claude will use redmine_start_fix to:
- Create a Git branch
fix/issue-42-... - Update issue status to "In Progress"
- Add comment with branch name
User: "I've fixed issue #42, the login validation is working now"
Claude will use redmine_complete_fix to:
- Update status to "Resolved"
- Add completion comment with commits
- Provide next steps (PR, merge, etc.)
User: "Show me the full tree of issue #78"
Claude will use redmine_get_issue_tree to show:
- Main issue details
- All related issues
- All child/subtask issues
User: "Create a bug report for the login issue and attach the screenshot from my Desktop"
Claude will:
- Use
redmine_upload_fileto upload the screenshot - Use
redmine_create_issuewith the upload token to create issue with attachment
User: "Add these error logs to issue #150: /path/to/error.log and /path/to/debug.log"
Claude will use redmine_add_attachments to:
- Upload both log files
- Attach them to issue #150
- Add comment with file list
User: "Create a new feature request with the mockup image attached"
Claude will use redmine_create_issue with file_paths parameter to create issue with attachment in one step
File Upload API Details
How File Attachments Work
Redmine API uses a two-step process for file attachments:
-
Upload File: First, upload the file to get a token
// Returns: { token: "abc123...", filename: "screenshot.png", filesize: 12345 } -
Attach to Issue: Use the token when creating/updating an issue
// The token is automatically used in issue creation/update
The MCP server simplifies this by handling both steps automatically:
redmine_add_attachments: Upload files and attach them in one callredmine_create_issuewithfile_paths: Create issue with attachments in one callredmine_upload_file: Manual upload if you need the token for later use
Supported File Types
All file types are supported:
- Images: PNG, JPG, GIF, SVG, etc.
- Documents: PDF, DOC, DOCX, TXT, MD, etc.
- Archives: ZIP, TAR, GZ, RAR, etc.
- Code: JS, PY, JAVA, etc.
- Logs: LOG, TXT, etc.
- Any other binary files
File Path Requirements
- Must be absolute paths (e.g.,
/home/user/screenshot.pngorC:\Users\User\image.png) - Files must exist and be readable
- No size limit enforced by MCP server (Redmine server may have limits)
Testing
Test the MCP server manually:
# Set environment variables
export REDMINE_API_KEY=your_api_key_here
# Run server (it communicates via stdio)
node index.js
# In another terminal, use MCP client to test
# Or test with Claude Code directly
Testing File Uploads
# Example: Create issue with attachment
# This is done automatically by Claude when using the MCP tools
# Just ask: "Create a bug report and attach /path/to/screenshot.png"
Troubleshooting
"REDMINE_API_KEY environment variable is required"
Make sure you've set the REDMINE_API_KEY environment variable or created a .env file.
"Connection failed" errors
- Check your
REDMINE_BASE_URLis correct - Verify your API key is valid
- Ensure you have network access to the Redmine server
- Check firewall/proxy settings
Git integration not working
- Ensure Git is installed and available in PATH
- Verify you're running commands from a Git repository
- Check you have write permissions for the repository
Architecture
┌─────────────────────────────────────────┐
│ Claude Code / MCP Client │
│ │
└──────────────┬──────────────────────────┘
│ MCP Protocol (stdio)
│
┌──────────────▼──────────────────────────┐
│ MCP Redmine Server │
│ │
│ • Issue Management Tools │
│ • File Upload & Attachments │
│ • Workflow Automation │
│ • Git Integration │
│ • Wiki Management │
│ • Status & Filtering │
│ │
└──────────────┬──────────────────────────┘
│ HTTPS API
│
┌──────────────▼──────────────────────────┐
│ Redmine REST API │
│ │
│ • Issues │
│ • Relations │
│ • Statuses │
│ • Projects │
│ │
└─────────────────────────────────────────┘
Security Notes
- API Key: Never commit your API key to version control
- Environment Variables: Use
.envfiles or secure environment configuration - .gitignore: The
.envfile is already in.gitignore - Permissions: API key should have appropriate permissions in Redmine
- Git Operations: Server executes Git commands - ensure trusted environment
Development
Project Structure
mcp-redmine-server/
├── index.js # Main MCP server implementation
├── package.json # Node.js dependencies and metadata
├── .env.example # Example environment configuration
├── .gitignore # Git ignore rules
└── README.md # This file
Adding New Tools
To add new Redmine functionality:
- Add tool definition to
ListToolsRequestSchemahandler - Implement tool logic in
CallToolRequestSchemahandler - Add corresponding helper function if needed
- Update this README with usage examples
Related Projects
- Model Context Protocol - MCP specification and SDKs
- Redmine API - Official Redmine REST API documentation
License
MIT
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
Support
For issues specific to this MCP server, please open a GitHub issue.
For Redmine API questions, refer to the official documentation.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。