redmine-mcp-workflows
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REDMINE_URL | Yes | Redmine base URL. Default: http://127.0.0.1:8281 | http://127.0.0.1:8281 |
| REDMINE_API_KEY | No | API key for authentication. | |
| REDMINE_HEADERS | No | Extra HTTP headers, comma-separated. Default: empty | |
| REDMINE_OAUTH_TOKEN | No | OAuth2 bearer token (takes precedence over API key). | |
| REDMINE_MCP_CACHE_DIR | No | Override for the SQLite cache location. Default: platform user-cache dir | |
| REDMINE_MCP_CACHE_TTL | No | Per-entry TTL in seconds. Default: 86400 | 86400 |
| REDMINE_MCP_LOG_LEVEL | No | Stdlib logging level. Default: INFO | INFO |
| REDMINE_MCP_READ_ONLY | No | Set 'true' to disable write tools. Default: false | false |
| REDMINE_MCP_ENABLE_PASSTHROUGH | No | Set 'true' to enable the redmine_request passthrough tool. Default: false | false |
| REDMINE_MCP_ALLOWED_DIRECTORIES | No | Comma-separated paths that redmine_upload_attachment may read from. Default: /tmp | /tmp |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| redmine_list_trackersA | List all trackers configured on the Redmine server. Returns a JSON document describing each tracker (id, name, default status, description). Cached entries are populated as a side effect for use by future schema-validation tools. |
| redmine_describe_trackerA | Return an enriched schema for one tracker. Args:
tracker: numeric id or name (e.g. Includes available statuses, priorities, and — when
|
| redmine_describe_projectA | Return a project description (trackers, modules, issue categories). Args:
project: numeric id or identifier slug (e.g. Cache-backed. First call populates the cache. |
| redmine_list_projectsA | List projects (paginated, optional substring filter). Args: query: optional case-insensitive substring filter on name/identifier/description (applied client-side after fetch). limit: page size, max 100. Defaults to 25. offset: skip the first N results. Defaults to 0. Returns a JSON document with |
| redmine_create_projectB | Create a new project. Args:
name: required project display name.
identifier: required URL slug (lowercase, hyphens, no spaces).
description: optional project description.
homepage: optional homepage URL.
is_public: whether the project is publicly visible (default True).
parent_id: optional parent project id ( Honors |
| redmine_update_projectA | Update a project. Partial — only supplied fields are sent. Args:
project_id: numeric id or identifier slug.
name: optional new display name.
description: optional new description.
homepage: optional new homepage URL.
is_public: project visibility.
parent_id: new parent project id ( Returns the refreshed project. Honors |
| redmine_delete_projectA | Permanently delete a project and all its data. Args: project_id: numeric id or identifier slug. Destructive — cannot be undone. Honors |
| redmine_archive_projectA | Archive a project (Redmine 5.0+). Reversible via unarchive. Args: project_id: numeric id or identifier slug. Honors |
| redmine_unarchive_projectA | Unarchive a previously archived project (Redmine 5.0+). Args: project_id: numeric id or identifier slug. Honors |
| redmine_invalidate_cacheA | Drop cached entries for a scope. No HTTP request is made. Args:
scope: one of:
- Use after Redmine config changes (new trackers, edited workflow, moved roles). The auth fingerprint is preserved so subsequent calls don't trigger a reconcile-wipe. |
| redmine_get_issueA | Fetch a single issue. Args:
issue_id: numeric Redmine issue id.
include: comma-separated includes (default
Read-only — no validation, no caching. |
| redmine_create_issueA | Create an issue with cache-aware id resolution. Args:
project: numeric id or identifier slug (e.g. Returns the created issue or a structured validation error.
Honors |
| redmine_update_issueA | Update an issue, with reactive workflow validation on status changes. Args:
issue_id: numeric Redmine issue id.
subject: optional new subject.
description: optional new description.
status: optional id or name (e.g. On a status change the cache pre-flight short-circuits any
previously-observed disallowed transition with a
:class: |
| redmine_close_issueA | Move an issue to its first Args: issue_id: numeric Redmine issue id. note: optional closing comment (becomes a journal entry). Use actual newline characters for multi-line notes, not backslash-n escape sequences. Redmine renders notes as Markdown (headings, bold, tables, lists all work). On a workflow-disallowed direct closure, the response is repackaged
with a closure-specific hint listing the allowed next states.
Honors |
| redmine_delete_issueA | Permanently delete an issue. Cannot be undone. Args:
issue_id: numeric Redmine issue id.
confirm_destructive: must be Returns the deleted issue's id and subject for confirmation.
Honors |
| redmine_search_issuesA | Search/list issues with optional filters and pagination. Args:
query: substring on issue subject (Redmine Returns |
| redmine_add_commentA | Append a comment (journal entry) to an existing issue. Args:
issue_id: numeric Redmine issue id.
note: comment body. Empty/whitespace-only notes are rejected
client-side. Use actual newline characters for multi-line
notes, not backslash-n escape sequences (literal Honors |
| redmine_get_journalsA | Return the structured journal entries for an issue. Args: issue_id: numeric Redmine issue id. Each journal entry has |
| redmine_update_journalA | Edit an existing journal entry's notes in place. Requires Redmine 5.0+. Use Args: journal_id: numeric journal id. notes: replacement note text. Pass an empty string to clear the note (deletes the journal if it has no field-change details). Use actual newline characters for multi-line notes, not backslash-n escape sequences. Redmine renders notes as Markdown. Honors |
| redmine_upload_attachmentA | Upload a file (path-restricted) and optionally attach it to an issue. Args:
file_path: absolute or Honors |
| redmine_download_attachmentA | Download an attachment by id to a path-restricted location. Args:
attachment_id: numeric Redmine attachment id (visible on issue
payloads at Validates downloaded byte count against Redmine's reported filesize
before writing — short reads are surfaced as
|
| redmine_create_time_entryA | Log a time entry against an issue or project. Args:
hours: required. Decimal (e.g. Honors |
| redmine_list_time_entriesA | List time entries with optional filters. Args:
issue_id, project_id, user_id: filter by reference id ( |
| redmine_update_time_entryB | Update a time entry. Partial — only supplied fields are sent. Honors |
| redmine_delete_time_entryA | Delete a time entry. Permanent — no soft-delete in Redmine. Honors |
| redmine_add_watcherA | Add a user as a watcher of an issue. Args: issue_id: numeric Redmine issue id. user_id: numeric user id to add to the watcher list. Idempotent on the Redmine side. Honors |
| redmine_remove_watcherA | Remove a user from an issue's watcher list. Args: issue_id: numeric Redmine issue id. user_id: numeric user id to remove. A 404 from Redmine means the watcher wasn't on the list (vs. issue
not found — distinguishable by status code on the underlying error
payload). Honors |
| redmine_list_watchersA | Return the current watcher list for an issue. Each watcher entry has |
| redmine_get_wiki_pageA | Fetch a wiki page (optionally a historical version). Args:
project: numeric id or identifier slug (e.g. Returns the page (text, version, author, timestamps) or
|
| redmine_create_wiki_pageA | Create a new wiki page; refuses to overwrite an existing one. Args: project: numeric id or identifier slug. title: new wiki page title (URL-encoded automatically). text: markdown body. Empty/whitespace-only is rejected client-side. parent_title: optional parent wiki page (for hierarchy). comments: optional revision comment. Pre-flight: GET first to confirm the page doesn't exist. If it does,
returns |
| redmine_update_wiki_pageA | Update an existing wiki page (with optional optimistic concurrency). Args:
project: numeric id or identifier slug.
title: target wiki page title.
text: new markdown body. Empty is rejected client-side.
version: if non-zero, included as the optimistic-lock version. A
mismatch surfaces as Returns the updated page (re-fetched after PUT for fresh metadata).
Honors |
| redmine_delete_wiki_pageA | Permanently delete a wiki page (and all its historical versions). Args: project: numeric id or identifier slug. title: wiki page title. Returns |
| redmine_list_relationsA | List all relations on an issue (both directions). Args: issue_id: numeric Redmine issue id. Each relation has |
| redmine_add_relationA | Create a relation between two issues. Args:
issue_id: source issue.
target_issue_id: the other end of the relation.
relation_type: one of Honors |
| redmine_remove_relationA | Delete a relation by its numeric id. Args:
relation_id: id from Honors |
| redmine_set_parent_issueA | Set or clear an issue's parent. Args:
issue_id: issue whose parent is being set.
parent_issue_id: numeric id of the new parent. Pass Parent/child is mechanically a field on the issue ( |
| redmine_bulk_create_issuesA | Bulk-create issues with subject idempotency. Args:
issues: list of issue spec dicts (≤ 100 per call). Each spec
requires Returns |
| redmine_bulk_update_issuesA | Apply the same field updates to many issues in one call. Args:
issue_ids: list of numeric issue ids (≤ 100 per call).
subject, description, status, priority, assigned_to_id, notes:
same semantics as Returns |
| redmine_bulk_closeA | Close many issues in one call (with optional shared note). Args: issue_ids: list of numeric issue ids (≤ 100 per call). note: optional shared closing comment (becomes a journal on each). stop_on_error: if True, halt on the first workflow-blocked or otherwise-failed closure. Returns |
| redmine_list_versionsA | List all versions / milestones defined on a project. Args: project: numeric id or identifier slug. Each version has |
| redmine_get_versionA | Fetch one version by id. Returns the version (name, status, due_date, sharing, ...) or
|
| redmine_create_versionA | Create a version on a project. Args:
project: numeric id or identifier slug.
name: required, must be unique within the project.
description: optional.
status: one of Honors |
| redmine_update_versionC | Update a version. Partial — only supplied fields are sent. Returns the refreshed version. Honors |
| redmine_delete_versionA | Delete a version by id. Permanent — no soft-delete. A 422 typically means the version is still referenced by issues; clear
those first via |
| redmine_assign_issue_to_versionA | Assign (or clear) an issue's target version. Args:
issue_id: numeric issue id.
version_id: numeric version id; pass Thin wrapper over |
| redmine_list_newsA | List news entries (global feed, or scoped to a project). Args: project: numeric id or identifier slug. Empty for the global feed across every project the API key can see. limit: page size (capped server-side at 100). offset: skip the first N results. Returns |
| redmine_list_messagesA | List forum messages on a board. Args:
board_id: numeric Redmine board id (visible in the project's
forums URL or via the web UI; Returns |
| redmine_list_boardsA | List forum boards for a project. Args: project_id: numeric id or identifier slug. Returns |
| redmine_create_messageA | Create a new forum topic on a board. Args: board_id: numeric board id. subject: required topic subject. content: optional message body. Honors |
| redmine_reply_messageA | Reply to an existing forum topic. Args: board_id: board the topic belongs to. topic_id: the parent message/topic id. content: required reply body. Honors |
| redmine_delete_messageB | Delete a forum message. Permanent. Honors |
| redmine_create_newsA | Create a news entry on a project. Args: project: numeric id or identifier slug. title: required news title. summary: optional short summary. description: optional full body. Honors |
| redmine_update_newsB | Update a news entry. Partial — only supplied fields are sent. Honors |
| redmine_delete_newsB | Delete a news entry. Permanent. Honors |
| redmine_list_membershipsA | List project members (paginated). Args: project_id: numeric id or identifier slug. limit: page size (capped at 100). offset: skip the first N results. Read-only. |
| redmine_add_membershipA | Add a member to a project. Args: project_id: project id or slug. user_id: user or group id to add. role_ids: list of role ids to assign (required, non-empty). Honors |
| redmine_update_membershipA | Update a membership's roles. Args:
membership_id: numeric membership id (from Honors |
| redmine_remove_membershipB | Remove a project membership. Inherited memberships can't be deleted. Honors |
| redmine_list_groupsA | List all groups (admin only). Read-only. |
| redmine_get_groupA | Fetch a group by id. Args:
group_id: numeric group id.
include: comma-separated includes: Read-only. |
| redmine_create_groupA | Create a group (admin only). Args: name: required group name. user_ids: optional list of user ids as initial members. Honors |
| redmine_update_groupC | Update a group's name. Honors |
| redmine_delete_groupA | Delete a group (admin only). Permanent. Honors |
| redmine_add_group_userC | Add a user to a group. Honors |
| redmine_remove_group_userC | Remove a user from a group. Honors |
| redmine_list_issue_categoriesA | List issue categories for a project. Args: project_id: numeric id or identifier slug. Read-only. |
| redmine_create_issue_categoryA | Create an issue category on a project. Args:
project_id: numeric id or identifier slug.
name: required category name.
assigned_to_id: optional default assignee. Honors |
| redmine_update_issue_categoryC | Update an issue category. Partial. Honors |
| redmine_delete_issue_categoryA | Delete an issue category. Permanent. Args:
category_id: numeric category id.
reassign_to_id: optional category id to reassign affected issues.
Honors |
| redmine_list_enumerationsA | List enumeration values for a given type. Args:
enum_type: one of Read-only reference data. |
| redmine_list_rolesA | List all roles. Read-only. |
| redmine_get_roleA | Fetch a role by id, including its permissions list. Read-only. |
| redmine_list_issue_statusesA | List all issue statuses with their Read-only reference data. |
| redmine_list_custom_fieldsA | List all custom field definitions (admin only). Returns id, name, field_format, customized_type, is_required, is_filter, possible_values, etc. Read-only. |
| redmine_list_queriesA | List available saved queries. Args: project_id: optional project id or slug to scope queries. Empty for all visible queries. Use the returned query ids with
|
| redmine_list_project_filesA | List files on a project's Files section. Args: project_id: numeric id or identifier slug. Read-only. |
| redmine_upload_project_fileA | Upload a file to a project's Files section. Args:
project_id: project id or slug.
file_path: path to file (path-restricted like attachment upload).
filename: optional override for the file name.
description: optional file description.
version_id: optional version to associate. Honors |
| redmine_get_userA | Fetch a user by id, or the current API user. Args:
user_id: numeric user id, or Read-only. |
| redmine_list_usersA | List users (admin only). Args:
name: filter by login, firstname, lastname, or mail.
group_id: filter by group membership. Read-only. Requires admin privileges. |
| redmine_searchA | Full-text search across all Redmine resource types. Searches issues, wiki pages, news, changesets, messages, projects,
and documents. Complements Args:
query: search string (required, non-empty).
project: optional project id or slug to scope the search.
Empty for global search.
resource_types: optional list of resource types to include
(e.g. Returns |
| redmine_requestA | ESCAPE HATCH — generic passthrough to any Redmine REST endpoint. Bypasses redmine-mcp's validation, workflow checks, and schema cache.
Every response carries Args:
method: HTTP verb. One of Honors |
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/Avicennasis/redmine-mcp-workflows'
If you have feedback or need assistance with the MCP directory API, please join our Discord server