Redmine MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REDMINE_URL | Yes | Base URL of the Redmine instance (e.g., https://redmine.example.com) | |
| REDMINE_API_KEY | Yes | API key generated in Redmine | |
| REDMINE_MCP_READ_ONLY | No | Enable read-only mode (true or false, default false) | |
| REDMINE_MCP_TOOLS_DENY_PATTERN | No | Regex pattern to disable matching tools (deny takes priority over allow) | |
| REDMINE_MCP_TOOLS_ALLOW_PATTERN | No | Regex pattern to allow only matching tools |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| getIssuesC | List issues |
| createIssueD | Create issue |
| getIssueD | Show issue |
| updateIssueD | Update issue |
| deleteIssueD | Delete issue |
| addWatcherC | Add watcher |
| removeWatcherD | Remove watcher |
| getProjectsC | List projects |
| createProjectD | Create project |
| getProjectD | Show project |
| updateProjectD | Update project |
| deleteProjectD | Delete project |
| archiveProjectD | Archive project |
| unarchiveProjectD | Unarchive project |
| getMembershipsC | List memberships |
| createMembershipC | Create membership |
| getMembershipD | Show membership |
| updateMembershipC | Update membership |
| deleteMembershipC | Delete membership |
| closeProjectD | Close project |
| reopenProjectD | Reopen project |
| getUsersC | List users |
| createUserC | Create user |
| getUserD | Show user |
| updateUserD | Update user |
| deleteUserC | Delete user |
| getCurrentUserC | Show current user |
| getTimeEntriesC | List time entries |
| createTimeEntryC | Create time entry |
| getTimeEntryC | Show time entry |
| updateTimeEntryD | Update time entry |
| deleteTimeEntryC | Delete time entry |
| getNewsListD | List news |
| getNewsD | Show news |
| updateNewsD | Update news |
| deleteNewsC | Delete news |
| getNewsListByProjectC | List news by project |
| createNewsD | Create news |
| getIssueRelationsC | List issue relations |
| createIssueRelationC | Create issue relation |
| getIssueRelationC | Show issue relation |
| deleteIssueRelationC | Delete issue relation |
| getVersionsByProjectC | List versions by project |
| createVersionD | Create version |
| getVersionsD | Show version |
| updateVersionD | Update version |
| deleteVersionC | Delete version |
| getWikiPagesB | List wiki pages |
| getWikiPageD | Show wiki page |
| updateWikiPageD | Create or update wiki page |
| deleteWikiPageC | Delete wiki page |
| getWikiPageByVersionB | Show wiki page by specific version |
| getQueriesD | List queries |
| getAttachmentD | Show attachment |
| updateAttachmentC | Update attachment |
| deleteAttachmentC | Delete attachment |
| getIssueStatusesC | List issue statuses |
| getTrackersC | List trackers |
| getIssueCategoriesC | List issue categories |
| createIssueCategoryC | Create issue category |
| getIssuePrioritiesC | List issue priorities |
| getTimeEntryActivitiesD | List time entry activities |
| getDocumentCategoriesC | List document categories |
| getIssueCategoryD | Show issue category |
| updateIssueCategoryD | Update issue category |
| deleteIssueCategoryD | Delete issue category |
| getRolesC | List roles |
| getRoleD | Show role |
| getGroupsC | List groups |
| createGroupD | Create group |
| getGroupD | Show group |
| updateGroupC | Update group |
| deleteGroupD | Delete group |
| addUserToGroupD | Add user to group |
| removeUserFromGroupC | Remove user from group |
| getCustomFieldsC | List custom fields |
| searchD | Search |
| getFilesC | List files |
| createFileD | Create file |
| getMyAccountC | Show my account |
| updateMyAccountC | Update my account |
| updateJournalC | Update journal |
| addRelatedIssueD | Add related issue |
| removeRelatedIssueC | Remove related issue |
| uploadAttachmentFromLocalFileC | Upload attachment file from local file system to Redmine and get upload token |
| downloadAttachmentToLocalFileA | Download attachment file from Redmine to local file system |
| downloadThumbnailToLocalFileC | Download thumbnail from Redmine to local file system |
| uploadAttachmentFromBase64ContentA | Upload attachment file from Base64 encoded content to Redmine and get upload token |
| downloadAttachmentAsBase64ContentB | Download attachment file from Redmine as Base64 encoded content |
| downloadThumbnailAsBase64ContentA | Download thumbnail from Redmine as Base64 encoded content |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 90 tools
Most tools target distinct resources and actions, but there are notable overlaps: getMyAccount and getCurrentUser appear to serve the same purpose, and addRelatedIssue/removeRelatedIssue overlap with createIssueRelation/deleteIssueRelation. The attachment upload/download tools also come in pairs differentiated only by input/output format, which could cause misselection.
All tool names follow a consistent camelCase verb+noun pattern (e.g., deleteIssue, getProjects, createTimeEntry). Derived operations like addWatcher, removeWatcher, and uploadAttachmentFromLocalFile maintain the same style. The few exceptions (getNewsList, getVersions) are minor and still readable within the pattern.
At 90 tools, this is far beyond the typical 3-15 range. While the Redmine API is broad, the sheer number makes the tool surface unwieldy for an agent to navigate efficiently. Many tools could be consolidated or made optional, and the count borders on excessive for a usable MCP server.
The tool set covers nearly every major Redmine resource: issues, projects, users, time entries, news, relations, versions, wiki, attachments, plus configuration entities like statuses, trackers, roles, groups, and custom fields. The lifecycle (CRUD) is complete for most resources, and even advanced operations like archiving projects, adding users to groups, and uploading/downloading attachments are included.