Skip to main content
Glama
devyhan
by devyhan

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REDMINE_MCP_URLYesURL of the Redmine server (environment fallback for the --redmine-url flag, e.g. https://redmine.example.com).
REDMINE_MCP_SCOPESNoComma-separated permission scopes requested at login. Environment fallback for the --scopes flag.
REDMINE_MCP_API_KEYNoRedmine API key used for pre-6.1 servers (or when no browser is available) instead of OAuth sign-in. Environment fallback for the --api-key flag; can also be passed to `redmine-mcp login --api-key <KEY>` once.
REDMINE_MCP_ORG_MODENoEnable the admin tool group (organization mode). Environment fallback for the --org-mode flag.
REDMINE_MCP_CLIENT_IDNoOAuth2 application client ID registered in Redmine (Administration → OAuth2 Applications). Environment fallback for the --client-id flag.
REDMINE_MCP_DISCOVERYNoCollapse the tool catalogue to discover_tools/call_tool plus the session tools, for small-context clients. Environment fallback for the --discovery flag.
REDMINE_MCP_CLIENT_SECRETNoOAuth2 application client secret registered in Redmine. Environment fallback for the --client-secret flag.

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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
completions
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
issues_listA

Lists issues with Redmine filters (project, tracker, status, assignee, saved query). Returns the page plus total_count; pass offset to walk further pages.

issues_getA

Returns one issue by id, with optional associated data via include. A 403 means the issue sits in a project you cannot see or is private to someone else — call users_my_access to list what is visible instead of retrying the id.

issues_createB

Creates an issue in a project. Returns the created issue (with its id).

issues_updateB

Updates issue attributes; only the fields passed change. Pass notes to append a journal entry with the update.

issues_add_noteA

Appends a journal note to an issue without changing anything else.

issues_deleteB

Deletes an issue. This cannot be undone.

issues_list_relationsC

Lists the relations (blocks, duplicates, …) of an issue.

issues_create_relationC

Links two issues (relates, blocks, duplicates, precedes, …).

issues_delete_relationB

Removes an issue relation by its relation id.

projects_listA

Lists visible projects. Returns the page plus total_count.

projects_getB

Returns one project by id or identifier, with optional associated data.

projects_createC

Creates a project. Returns the created project (with its id).

projects_updateC

Updates project attributes; only the fields passed change.

projects_list_membershipsB

Lists the members of a project with their roles.

projects_add_memberC

Adds a user to a project with the given roles.

projects_update_memberB

Sets the roles of a project membership by its membership id.

projects_remove_memberB

Removes a project membership by its membership id.

projects_list_categoriesB

Lists the issue categories of a project with their ids and assignees.

users_get_currentA

Returns the signed-in account (id, login, name, mail, admin flag) from /users/current.json. The live identity check; session_status reports the cached copy.

users_getB

Returns one user by id, with optional membership and group data.

users_update_currentB

Updates the signed-in account name or mail address.

users_my_accessA

Answers "what can I see" before anything 403s: admin flag, group memberships, and every visible project with its roles. Check this before querying issues or users outside your projects — a 403 almost always means the object lives where this list does not reach, not that the call was malformed.

time_list_entriesA

Lists time entries filtered by issue, project, user, or date range.

time_logB

Logs time on an issue or a project. Returns the created entry (with its id).

time_update_entryC

Updates a time entry; only the fields passed change.

time_delete_entryB

Deletes a time entry. This cannot be undone.

time_list_activitiesB

Lists the time-tracking activities (Design, Development, …) with their ids.

wiki_list_pagesB

Lists the wiki page index of a project.

wiki_get_pageB

Returns one wiki page with its text and attachments.

wiki_save_pageB

Creates the page when it does not exist, otherwise saves a new version.

wiki_delete_pageA

Deletes a wiki page. This cannot be undone.

files_get_attachmentA

Returns one attachment metadata (filename, size, content type, download URL).

files_downloadA

Downloads an attachment and returns base64 bytes plus metadata. Text files come back decoded as well. Refuses files over maxBytes with metadata only.

files_uploadA

Uploads raw bytes and returns an upload token. Reference it from issues_create or issues_update via uploads: [{token, filename}]. Tokens expire with the session.

files_list_project_filesC

Lists the files attached to a project's Files module.

files_list_documentsA

Lists the documents of a project's Documents module. Needs Redmine 7.1+.

search_queryB

Searches across issues, wiki pages, documents, files, and news. Returns ranked results with type, title, and excerpt.

queries_listB

Lists the visible saved issue queries with their filters and columns.

queries_runB

Runs a saved issue query and returns the matching issues plus total_count.

auth_begin_loginA

Starts a Redmine OAuth2 sign-in in the system browser and returns immediately. Ask the user to finish there, then call auth_login_status. Never ask for credentials, an API key, or an authorization code in the conversation.

auth_login_statusA

Reports where the background browser sign-in has got to: pending, signed in, or failed with the fix. Never returns a token.

session_statusA

Call once first. Reports the cached account, whether Redmine is reachable with a live GET /users/current.json, and the consent checklist for this configuration.

redmine_list_permissionsA

Lists the tool groups, the Redmine permission scopes each needs, and which groups are enabled. The first call when something returns 403.

redmine_requestA

Escape hatch: any Redmine REST path with the signed-in credential. GET by default; write methods need --allow-generic-write. Prefer the typed tools: they page, project, and explain errors.

Prompts

Interactive templates invoked by user choice

NameDescription
agent_startOrients a new agent session: check session_status, sign in if needed via auth_begin_login plus auth_login_status, orient via discover_tools, and follow Hint and Blocked-by lines on errors.
triage_issueGuides filing or triaging an issue: pick a project and an optional assignee (both complete from Redmine), then create or retarget the issue.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 44 tools

Disambiguation4/5

Most tools map cleanly to one resource+action (issues_*, projects_*, wiki_*, time_*, files_*), so selection is usually obvious. The only real confusion zone is the identity layer—session_status, users_get_current, auth_begin_login, auth_login_status, and users_my_access all touch 'who am I / am I signed in', and their descriptions have to explicitly cross-reference each other to sort it out. redmine_request also overlaps every typed tool, though it is clearly framed as a fallback.

Naming Consistency4/5

The dominant pattern is resource_verb_noun snake_case (issues_create, projects_remove_member, time_list_entries, wiki_get_page), which is predictable and readable. Deviations are minor: session_status and auth_login_status are noun-first with no verb, and redmine_list_permissions/redmine_request use a server-name prefix rather than a resource prefix. No mixed casing or chaotic verb styles.

Tool Count3/5

44 tools is heavy, but Redmine is genuinely a broad domain (projects, issues, wiki, files, time, users, queries, search), so most tools earn their place. Still, the set is larger than it needs to be: the five session/auth/identity tools and the generic redmine_request could be consolidated, and several list operations could be parameterized rather than split.

Completeness4/5

Coverage is strong: issues have full CRUD plus notes and relations, projects have list/get/create/update plus full membership management, wiki has list/get/save/delete, time entries are fully covered, and files/download/upload/search/queries are present. Gaps are minor but real—no users_list, no project delete, and no lookups for trackers/statuses/priorities that issue creation typically needs—though redmine_request serves as a workaround for all of them.

Maintenance

ActivityMaintained
ResponsivenessNo issues