list_redmine_projectsLABSCO SUMMARY
The whole Redmine surface, not just its issues.
Most trackers get an integration that reads and writes tickets and stops there. This one also covers time entries, wiki pages, attachments, memberships and the plugin ecosystem, so the work that surrounds a ticket does not send you back to the browser.
What it is
A Python MCP server that puts a Redmine instance behind MCP tools: projects, issues, time tracking, wiki pages and file attachments. It runs on FastMCP over HTTP, with the MCP endpoint at /mcp, a health check at /health and file serving at /files/{file_id}.
What you get
- 45 MCP tools on a stock Redmine, 58 with the RedmineUP and DMSF plugins, and 59 once
REDMINE_MCP_EXPOSE_ADMIN_TOOLS=trueadds the operator tool - Issue work end to end:
get_redmine_issue,list_redmine_issues,search_redmine_issues,create_redmine_issue,update_redmine_issue,delete_redmine_issue,copy_issue,manage_issue_relation,list_subtasks,manage_issue_watcher,manage_issue_note,get_private_notes,manage_issue_category show_triage_boardrenders a live drag-and-drop issue board inside the chat through the MCP Apps extension, withshow_project_dashboardalongside it- Time tracking:
list_time_entries,manage_time_entry,list_time_entry_activities,import_time_entries - Projects and people:
list_redmine_projects,summarize_project_status,list_redmine_versions,manage_redmine_version,list_project_members,manage_project_member,list_redmine_roles,get_project_modules - Search, wiki and Gantt:
search_entire_redmine,manage_redmine_wiki_page,get_gantt_chart - Attachments with expiring UUID download URLs:
list_files,upload_file,delete_file,get_redmine_attachment - Plugin-backed surfaces behind their own flags:
manage_product,manage_contact,manage_deal,manage_document,get_checklistand the CRM notes and query tools - Content the user controls is wrapped in boundary tags before it reaches the model
Requirements
Python 3.10+ or the Docker image, and a Redmine instance — the integration suite passes in full against Redmine 6.1 and 7.0, and older versions are untested. Set REDMINE_URL plus one credential: REDMINE_API_KEY, or REDMINE_USERNAME with REDMINE_PASSWORD. OAuth2 per-user tokens need Redmine 6.1+ for Doorkeeper. REDMINE_MCP_READ_ONLY=true blocks every create, update and delete. Plugin tools stay hidden until you set the matching flag — REDMINE_CRM_ENABLED, REDMINE_DEALS_ENABLED, REDMINE_PRODUCTS_ENABLED, REDMINE_DMSF_ENABLED, REDMINE_AGILE_ENABLED.
Setup effort
Follow the published steps — pip install redmine-mcp-server
USE CASES
Triaging a sprint backlog
Open a live board in the chat, drag issues between states, and let the underlying tools apply the changes.
Writing up what happened this week
Pull the time entries and the project's current state, then turn them into a status summary without exporting anything.
Filing an issue that passes validation the first time
Check which custom fields the project requires and which trackers and priorities exist before creating the issue.
Reading an attachment that is stuck inside a ticket
Download the file through an expiring URL and have it read back, instead of opening Redmine to click it.
Giving a read-only agent to the wider team
Set the read-only flag and the write tools disappear from the surface, leaving browsing, search and reporting intact.
Bringing someone onto a project
Look up the available roles, add the member, and confirm which modules the project actually has enabled.
59 tools
Listed in project docs. Your client may show a different list.
list_project_issue_custom_fieldssummarize_project_statuslist_redmine_versionsmanage_redmine_versionlist_project_memberslist_redmine_rolesget_project_modulesmanage_project_memberget_redmine_issuelist_redmine_issuessearch_redmine_issuescreate_redmine_issueupdate_redmine_issuedelete_redmine_issuecopy_issuemanage_issue_relationlist_subtasksmanage_issue_watchermanage_issue_noteget_private_notesmanage_issue_categoryshow_triage_boardget_triage_board_datashow_project_dashboardget_project_dashboard_datalist_time_entriesmanage_time_entrylist_time_entry_activitiesimport_time_entrieslist_redmine_trackerslist_project_trackerslist_redmine_issue_statuseslist_redmine_issue_prioritieslist_redmine_usersget_current_userlist_redmine_queriessearch_entire_redminemanage_redmine_wiki_pagelist_filesupload_filedelete_fileget_redmine_attachmentget_gantt_chartget_mcp_server_infoget_checklistcreate_checklist_itemupdate_checklist_itemmanage_productmanage_contactlist_contact_tagsmanage_deallist_deal_statusesmanage_deal_categorymanage_crm_notelist_crm_queriesadd_deal_productmanage_documentcleanup_attachment_filesBEFORE YOU INSTALL
What to know first
Tools you get
59 tools named in the project's documentation.
Requires
- Python 3.10+ (or Docker instead, which ships its own Python)
- Access to a Redmine instance, with REDMINE_URL in your environment
- REDMINE_API_KEY in your environment, or REDMINE_USERNAME and REDMINE_PASSWORD instead
INSTALLATION
Connect your client
Server setup
Setup
# Install the package
pip install redmine-mcp-server
# Create configuration file .env
cat > .env << 'EOF'
# Redmine connection (required)
REDMINE_URL=<YOUR_REDMINE_URL>
# Authentication - Use either API key (recommended) or username/password
REDMINE_API_KEY=<YOUR_REDMINE_API_KEY>
# OR use username/password:
# REDMINE_USERNAME=<YOUR_REDMINE_USERNAME>
# REDMINE_PASSWORD=<YOUR_REDMINE_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.mainpip
pip install redmine-mcp-serverMCP Clients
VS Code
code --add-mcp '{"name":"redmine","type":"http","url":"http://127.0.0.1:8000/mcp"}'Claude Code
claude mcp add --transport http redmine http://127.0.0.1:8000/mcpClaude Desktop
{
"mcpServers": {
"redmine": {
"command": "uv",
"args": [
"run",
"--with",
"fastmcp",
"fastmcp",
"run",
"http://127.0.0.1:8000/mcp"
]
}
}
}Cursor
{
"mcpServers": {
"redmine": {
"url": "http://127.0.0.1:8000/mcp"
}
}
}