Redmine MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Log level: debug | info | warn | error | info |
| REDMINE_URL | Yes | Base URL of the Redmine instance | |
| MCP_TRANSPORT | No | Transport mode (only stdio supported) | stdio |
| REDMINE_API_KEY | Yes | API key for the acting user | |
| REDMINE_TIMEOUT_MS | No | Per-request timeout in milliseconds | 30000 |
| REDMINE_ALLOWED_DIRECTORIES | No | Directories the attachment tools may use (colon-separated, semicolon on Windows) |
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 |
|---|---|
| redmine_list_issuesA | Search and filter issues across one or all projects — the primary entry point for "what's on the board". Supports status/assignee/tracker/date/custom-field filters, saved queries, sorting, and pagination. |
| redmine_get_issueA | Fetch full detail on a single issue, optionally expanded with journals, attachments, relations, children, watchers, and allowed status transitions. Reach for this before editing an issue to see current state and what is legal to change it to. |
| redmine_create_issueA | Create a new issue (bug, feature, task) in a project with subject, description, tracker, priority, assignee, dates, and custom fields. Returns the created issue with its id. |
| redmine_update_issueA | Edit an issue: change status, reassign, reprioritize, adjust dates/done_ratio, and add a comment (notes) in the same call. Returns the re-fetched, updated issue for confirmation. |
| redmine_delete_issueA | Permanently delete an issue. THIS CANNOT BE UNDONE: Redmine has no trash and no restore, and the delete cascades — the issue's journals (comments), logged time entries, attachments, and relations are destroyed with it, and on many configurations its sub-issues are deleted too. Always confirm with the user before calling, quoting the issue id and subject (use |
| redmine_manage_issue_watchersA | Add or remove a watcher on an existing issue — the notification subscription, e.g. "watch this bug for me" or "stop notifying John about #42". Pass the issue id, the user id, and |
| redmine_list_issue_relationsA | Read the relations (dependency links) between issues — use it before reporting blockers or sequencing work. Pass exactly one of issue_id (all relations of that issue, returned as { relations: [...] }) or issue_relation_id (one relation by its own id). Each relation reads as "issue_id issue_to_id": issue_id is the SOURCE and issue_to_id the TARGET. Directions: "blocks" — the source blocks the target, so the target cannot be finished first; "blocked" — the source is blocked by the target; "precedes" — the source must finish before the target starts (with an optional |
| redmine_create_issue_relationA | Link two issues with a typed relation — how dependencies are recorded when planning, e.g. "#42 cannot start until #17 ships". The relation is directional and reads as "issue_id issue_to_id", so state it once from the source issue: Redmine stores a single record and presents the inverse automatically on the other issue. Do NOT call this tool again with the ids swapped to "complete the pair" — that is either rejected as a duplicate or creates a second, redundant link. Use "relates" when no ordering is implied. |
| redmine_delete_issue_relationA | Remove a relation (dependency link) between two issues — the cleanup path for a wrong link, e.g. a false "duplicates" or an inverted "blocks". Takes the RELATION id, not an issue id: call |
| redmine_searchA | Free-text search across issues, wiki pages, news, and projects in one call. Best first move for vague requests where the issue id or project is unknown; prefer redmine_list_issues when you already have concrete filter values. |
| redmine_list_projectsA | List the projects the API key can see, optionally filtered by name, status, parent, or visibility — the standard "what projects exist" orientation call. |
| redmine_get_projectA | Show full detail for one project, optionally including its trackers, issue categories, time-entry activities, enabled modules, and issue custom fields — needed before creating issues or time entries in an unfamiliar project. |
| redmine_list_time_entriesA | Query logged time by user, project, issue, date range, or activity — used for timesheet review ("what did I log this week") and billing/reporting. |
| redmine_create_time_entryA | Log hours against an issue or project with an activity type and comment — e.g. "log 3.5 hours on #456 for implementing auth". Exactly one of issue_id or project_id is required. |
| redmine_get_current_userA | Identify who the API key belongs to, plus optional memberships and groups — the "who am I" call to make at the start of a session for default-assignee logic and permission-aware suggestions. |
| redmine_list_usersA | Find Redmine users by name, status, or group — the way to turn a person's name into the numeric id that |
| redmine_list_reference_dataA | Look up the legal values behind the id parameters the write tools require — issue statuses, trackers, priorities, time-entry activities, or document categories — selected by |
| redmine_upload_attachmentA | Upload a local file to Redmine and get back an upload token. This is the first half of a two-step flow and does nothing visible on its own: the token is not attached to anything until you pass it to |
| redmine_download_attachmentA | Download a Redmine attachment and save it into a local directory. Find the id with |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xkillaflow/agama-redmine-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server