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. Example: https://redmine.example.com | |
| REDMINE_API_KEY | Yes | API key generated in Redmine | |
| REDMINE_MCP_READ_ONLY | No | Enable read-only mode. 'true' disables data modification operations. | false |
| REDMINE_MCP_DISABLE_NEWS | No | Set to 'true' to disable news tools. | false |
| REDMINE_MCP_DISABLE_WIKI | No | Set to 'true' to disable wiki tools. | false |
| REDMINE_MCP_DISABLE_FILES | No | Set to 'true' to disable files tools. | false |
| REDMINE_MCP_DISABLE_USERS | No | Set to 'true' to disable user management tools. | false |
| REDMINE_MCP_DISABLE_GROUPS | No | Set to 'true' to disable group management tools. | false |
| REDMINE_MCP_DISABLE_PROJECTS | No | Set to 'true' to disable project management tools. | false |
| REDMINE_MCP_DISABLE_VERSIONS | No | Set to 'true' to disable versions tools. | false |
| REDMINE_MCP_DISABLE_WATCHERS | No | Set to 'true' to disable watchers tools. | false |
| REDMINE_MCP_DISABLE_RELATIONS | No | Set to 'true' to disable issue relations tools. | false |
| REDMINE_MCP_DISABLE_ATTACHMENTS | No | Set to 'true' to disable attachments tools. | false |
| REDMINE_MCP_DISABLE_MEMBERSHIPS | No | Set to 'true' to disable memberships tools. | false |
| REDMINE_MCP_DISABLE_TIME_ENTRIES | No | Set to 'true' to disable time entries tools. | false |
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 |
| createIssueC | Create issue |
| getIssueD | Show issue |
| updateIssueD | Update issue |
| deleteIssueC | Delete issue |
| addWatcherD | Add watcher |
| removeWatcherC | 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 |
| createMembershipD | Create membership |
| getMembershipD | Show membership |
| updateMembershipD | Update membership |
| deleteMembershipD | Delete membership |
| closeProjectC | Close project |
| reopenProjectD | Reopen project |
| getUsersC | List users |
| createUserD | Create user |
| getUserC | Show user |
| updateUserD | Update user |
| deleteUserD | Delete user |
| getCurrentUserB | Show current user |
| getTimeEntriesC | List time entries |
| createTimeEntryC | Create time entry |
| getTimeEntryD | Show time entry |
| updateTimeEntryC | 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 |
| getIssueRelationsD | List issue relations |
| createIssueRelationD | 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 |
| deleteVersionD | Delete version |
| getWikiPagesC | List wiki pages |
| getWikiPageC | Show wiki page |
| updateWikiPageC | Create or update wiki page |
| deleteWikiPageC | Delete wiki page |
| getWikiPageByVersionC | Show wiki page by specific version |
| getQueriesC | List queries |
| getAttachmentD | Show attachment |
| updateAttachmentD | Update attachment |
| deleteAttachmentC | Delete attachment |
| getIssueStatusesC | List issue statuses |
| getTrackersC | List trackers |
| getIssueCategoriesC | List issue categories |
| createIssueCategoryC | Create issue category |
| getIssuePrioritiesC | List issue priorities |
| getTimeEntryActivitiesC | List time entry activities |
| getDocumentCategoriesC | List document categories |
| getIssueCategoryC | Show issue category |
| updateIssueCategoryC | Update issue category |
| deleteIssueCategoryC | Delete issue category |
| getRolesC | List roles |
| getRoleD | Show role |
| getGroupsC | List groups |
| createGroupD | Create group |
| getGroupD | Show group |
| updateGroupD | Update group |
| deleteGroupC | Delete group |
| addUserToGroupC | Add user to group |
| removeUserFromGroupC | Remove user from group |
| getCustomFieldsC | List custom fields |
| searchD | Search |
| getFilesD | List files |
| createFileD | Create file |
| getMyAccountD | Show my account |
| updateMyAccountC | Update my account |
| updateJournalC | Update journal |
| addRelatedIssueD | Add related issue |
| removeRelatedIssueC | Remove related issue |
| uploadAttachmentFromLocalFileA | Upload attachment file from local file system to Redmine and get upload token |
| downloadAttachmentToLocalFileC | Download attachment file from Redmine to local file system |
| downloadThumbnailToLocalFileB | Download thumbnail from Redmine to local file system |
| uploadAttachmentFromBase64ContentB | Upload attachment file from Base64 encoded content to Redmine and get upload token |
| downloadAttachmentAsBase64ContentB | Download attachment file from Redmine as Base64 encoded content |
| downloadThumbnailAsBase64ContentB | 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 follow a clear resource-action pattern (e.g., createIssue, updateIssue, deleteIssue) that makes their purposes distinct. However, there is some potential confusion between addRelatedIssue and createIssueRelation, as both deal with issue relationships, and getVersions appears to be mis-named (listed as 'Show version' but plural), which could cause misselection.
The majority of tools use a consistent camelCase verb-first pattern (get, create, update, delete, add, remove, upload, download) followed by a resource name (e.g., deleteProject, getUsers). Minor deviations include getNewsList and getNewsListByProject instead of getNews for listing, and getVersionsByProject vs getVersions, which breaks the plural/singular consistency but is still readable.
With 90 tools, this server has an extreme abundance of operations, far exceeding the 50+ threshold for mismatch. While the scope is broad (Redmine's many resources), the sheer number makes the tool set unwieldy and hard to navigate, and many tools are trivial enumerations (e.g., getIssueStatuses, getTrackers).
The tool set covers a wide range of Redmine resources with CRUD operations for issues, projects, users, time entries, news, versions, wiki pages, attachments, categories, groups, etc. Minor gaps exist, such as no deleteFile for files and no create/update/delete for queries, but these are not critical for typical workflows.