redmine-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REDMINE_URL | Yes | Redmine 기본 URL | |
| REDMINE_API_KEY | Yes | 사용할 계정의 API 키 | |
| REDMINE_MCP_READ_ONLY | No | true이면 쓰기 도구 제외. 기본은 쓰기 허용 | false |
| REDMINE_MCP_TOOLS_DENY_PATTERN | No | 제외할 도구 이름의 정규식. 허용 패턴보다 우선 | |
| REDMINE_MCP_TOOLS_ALLOW_PATTERN | No | 허용할 도구 이름의 정규식. 생략하면 제한 없음 |
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 |
| updateIssueA | Update issue; optionally save time_entry with notes, status and assignee in one request. Verify both issue and time entry after saving. |
| 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 follow clean resource+action pairs, but several boundaries are unclear: getCurrentUser and getMyAccount overlap, addRelatedIssue/removeRelatedIssue largely duplicate create/delete issue relation, and getVersions has a list-style name but is actually a Show version action. These overlaps will cause agents to misselect tools.
The overall get/create/update/delete + resource naming scheme is consistent and readable, but list/show conventions are inconsistent: list tools usually use plural nouns (getIssues, getGroups) yet some use List suffixes (getNewsList, getNewsListByProject) and one use singular/plural mismatch goes the wrong way (getVersions is actually a show). Despite these deviations, the naming is still largely predictable.
With 90 tools—many being full CRUD sets across roughly two dozen resources—the surface far exceeds what an agent needs to manage Blender surfaces. This is well beyond the 50-tool extreme mismatched threshold and will overwhelm tool selection.
The server covers most major Redmine domains at near-full lifecycle: issues, projects, users, groups, roles, memberships, time entries, wiki, news, versions, attachments, files, categories, relations, and custom fields. Some gaps exist, such as no document resource management, and uploads are token-based rather than directly attachable in one step, but these are relatively minor workarounds.