Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REDMINE_URLYesThe base URL of your Redmine instance
REDMINE_API_KEYYesYour Redmine API key

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
}

Tools

Functions exposed to the LLM to take actions

NameDescription
redmine_list_issuesA

List and filter issues from Redmine.

Args:

  • project_id, tracker_id, status_id, assigned_to_id, author_id, priority_id: Filters

  • subject: Search in subject (partial match)

  • parent_id: Filter by parent issue ID ("~" for root issues)

  • updated_on, created_on: Date filters (e.g., ">=2024-01-01")

  • sort: Sort (e.g., "updated_on:desc")

  • view: "compact" (default, saves tokens: ID/Subject/Status/Priority/Assignee) or "full" (adds Tracker/Done)

  • fields: Override columns, e.g. ["id","subject","status","due_date"]. Available: id, tracker, subject, status, priority, assigned_to, done_ratio, project, updated_on, due_date, author

  • limit / offset: Pagination

User preferences: none saved yet. The first time you help this user, ask once which Redmine projects they actually work on (suggest candidates via redmine_get_current_user with include_memberships=true and recent issues assigned to them), then save with redmine_save_preferences. Do not ask on later sessions — the saved answer replaces this hint (review anytime via redmine_get_my_context).

redmine_get_issueA

Get detailed information about a single Redmine issue by ID.

Args:

  • issue_id: The issue ID (required)

  • include: Associations: "journals", "children", "relations", "attachments", "changesets", "watchers". Include "attachments" to get the attachment IDs that redmine_download_attachment needs.

  • view: "compact" (default: id, subject, status, priority, assignee, done, tracker, project) or "full" (all fields + description + custom_fields)

  • fields: Override view with specific fields, e.g. ["id","subject","status","custom_fields"]. Available: id, subject, project, tracker, status, priority, author, assigned_to, category, fixed_version, parent, start_date, due_date, done_ratio, estimated_hours, spent_hours, created_on, updated_on, closed_on, custom_fields, description

redmine_create_issueA

Create a new issue in Redmine.

Args:

  • project_id: Project ID or identifier (required)

  • subject: Issue subject/title (required)

  • tracker_id: Tracker ID (e.g., Bug, Feature, Task)

  • status_id: Status ID

  • priority_id: Priority ID

  • assigned_to_id: Assignee user ID

  • description: Detailed description

  • category_id: Category ID

  • fixed_version_id: Target version ID

  • parent_issue_id: Parent issue ID for subtasks

  • start_date: Start date (YYYY-MM-DD)

  • due_date: Due date (YYYY-MM-DD)

  • estimated_hours: Estimated hours

  • done_ratio: % done (0-100)

Returns: The created issue details.

User preferences: none saved yet. The first time you help this user, ask once which Redmine projects they actually work on (suggest candidates via redmine_get_current_user with include_memberships=true and recent issues assigned to them), then save with redmine_save_preferences. Do not ask on later sessions — the saved answer replaces this hint (review anytime via redmine_get_my_context).

redmine_update_issueA

Update an existing Redmine issue. Only provided fields will be changed.

Args:

  • issue_id: Issue ID (required)

  • subject: New subject

  • tracker_id / status_id / priority_id: Change tracker, status, or priority

  • assigned_to_id: Reassign (use 0 to unassign)

  • description: Update description

  • notes: Add a comment/note to the issue

  • done_ratio: Update % done (0-100)

  • start_date / due_date: Update dates

  • estimated_hours: Update estimate

  • category_id / fixed_version_id: Update category or version

Returns: Confirmation of update.

redmine_add_noteA

Add a comment/note to an existing Redmine issue without changing any other fields.

Args:

  • issue_id: Issue ID (required)

  • notes: The comment text (required)

  • private_notes: Whether the note is private (default: false)

Returns: Confirmation.

redmine_list_projectsB

List all accessible projects in Redmine.

Args:

  • include: Associations to include (comma-separated): "trackers", "issue_categories", "enabled_modules", "time_entry_activities"

  • limit / offset: Pagination

Returns: Table of projects.

User preferences: none saved yet. The first time you help this user, ask once which Redmine projects they actually work on (suggest candidates via redmine_get_current_user with include_memberships=true and recent issues assigned to them), then save with redmine_save_preferences. Do not ask on later sessions — the saved answer replaces this hint (review anytime via redmine_get_my_context).

redmine_get_projectA

Get detailed information about a Redmine project.

Args:

  • project_id: Project ID or identifier (required)

  • include: Associations: "trackers", "issue_categories", "enabled_modules", "time_entry_activities"

Returns: Project details including trackers, categories, etc.

redmine_list_versionsA

List all versions (milestones) for a Redmine project.

Args:

  • project_id: Project ID or identifier (required)

Returns: List of versions with status and due dates.

redmine_list_time_entriesA

List time entries from Redmine with optional filters.

Args:

  • project_id: Filter by project

  • issue_id: Filter by issue

  • user_id: Filter by user ID ("me" for current user)

  • from / to: Date range filter (YYYY-MM-DD)

  • limit / offset: Pagination

Returns: Table of time entries.

redmine_create_time_entryA

Log time in Redmine. Requires either issue_id or project_id.

Args:

  • issue_id: Issue to log time against (provide this OR project_id)

  • project_id: Project to log time against (provide this OR issue_id)

  • hours: Hours spent (required)

  • activity_id: Activity type ID (required unless default exists)

  • spent_on: Date spent (YYYY-MM-DD, defaults to today)

  • comments: Description of work done

Returns: Created time entry details.

User preferences: none saved yet. The first time you help this user, ask once which Redmine projects they actually work on (suggest candidates via redmine_get_current_user with include_memberships=true and recent issues assigned to them), then save with redmine_save_preferences. Do not ask on later sessions — the saved answer replaces this hint (review anytime via redmine_get_my_context).

redmine_update_time_entryA

Update an existing time entry.

Args:

  • time_entry_id: Time entry ID (required)

  • hours / activity_id / spent_on / comments: Fields to update

Returns: Confirmation.

redmine_delete_time_entryA

Delete a time entry from Redmine. This action is irreversible.

Args:

  • time_entry_id: Time entry ID to delete (required)

Returns: Confirmation of deletion.

redmine_list_statusesA

List all available issue statuses in Redmine. Use this to find status IDs for filtering or updating issues.

Returns: List of status names and IDs.

redmine_list_trackersA

List all available trackers in Redmine (e.g., Bug, Feature, Task). Use this to find tracker IDs.

Returns: List of tracker names and IDs.

redmine_list_prioritiesA

List all available issue priorities in Redmine. Use this to find priority IDs.

Returns: List of priority names and IDs.

redmine_list_usersA

List users in Redmine. Requires admin privileges for full list; non-admins can use project memberships instead.

Args:

  • name: Filter by name or login (partial match)

  • status: Filter by status (0=anonymous, 1=active, 2=registered, 3=locked)

  • limit / offset: Pagination

Returns: Table of users.

redmine_list_custom_fieldsA

List custom fields available in Redmine. Tries the admin API first; if not accessible, extracts fields from a recent issue.

Returns: Table of custom fields with ID, name, and type info.

redmine_list_membershipsA

List members of a Redmine project with their roles. Useful for finding assignee IDs when you don't have admin access to /users.json.

Args:

  • project_id: Project ID or identifier (required)

  • limit / offset: Pagination

Returns: Table of members with roles.

redmine_list_activitiesA

List available time entry activity types (e.g., Development, Design, Testing).

Returns: Table of activity IDs and names.

redmine_get_current_userB

Get information about the currently authenticated user (based on the API key).

Args:

  • include_memberships: Also return the projects the user is a member of, with roles. Used to suggest focus projects when capturing user preferences.

Returns: User details.

redmine_upload_attachmentA

Attach a file or image to a Redmine issue.

Give exactly one source:

  • file_path: absolute path to a file on the machine running this server

  • content_b64: the file's bytes as base64 (needs filename)

Args:

  • issue_id: Issue to attach to (required)

  • file_path / content_b64: The file (exactly one, required)

  • filename: Name shown in Redmine. Required with content_b64; defaults to the basename of file_path

  • description: Optional caption for the attachment

  • notes: Optional comment to post alongside it

Attaching adds an entry to the issue history, so there is no need to call redmine_add_note separately. Redmine enforces its own maximum file size and reports the limit if the file is too big.

redmine_download_attachmentA

Download a Redmine attachment by ID. Always returns the attachment's details; what happens to the bytes depends on mode.

Args:

  • attachment_id: Attachment ID (required). Get IDs from redmine_get_issue with include="attachments"

  • mode: "auto" (default) — images are returned as a viewable image, everything else is saved to disk "image" — return as a viewable image (images only) "file" — always save to disk and report the path

Saved files go to /tmp/redmine-mcp (set REDMINE_DOWNLOAD_DIR to change it). Files up to 10.0 MB can be saved; inline images are capped at 4.0 MB.

redmine_get_my_contextA

Read the user's saved Redmine preferences. When nothing is saved yet, the response carries one-time onboarding instructions: suggest candidate projects, ask the user once, then call redmine_save_preferences. Re-run after a save or whenever the user wants to review their preferences.

redmine_save_preferencesA

Save the user's Redmine preferences. Merge semantics: provided fields replace, omitted fields keep their saved values; focusProjects: [] clears the list.

Fields:

  • focusProjects: [{id, name}] — projects the user works on directly

  • defaultProjectId, defaultTrackerId, catchAllIssueId: positive integer IDs

  • defaultActivityId: positive integer (its name is filled in automatically)

  • teammates: [{name, userId}] — assignee shortcuts (not validated against /users.json; non-admins usually cannot)

  • timesheet: {workDays: [0=Sun..6=Sat], hoursPerDay}

  • contentLanguage: e.g. "en" — overrides the skill's English-only rule for content written to Redmine

Project, issue, activity and tracker IDs are checked against the live Redmine before saving; the save is all-or-nothing.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 24 tools

Disambiguation5/5

Every tool maps to a clear verb-noun pair: issues, projects, time entries, attachments, preferences, and metadata each have distinct tools. Even update_issue and add_note are cleanly separated by intent (full update vs. comment-only), so an agent should rarely misselect.

Naming Consistency5/5

All 24 tools use the redmine_ prefix with snake_case and a consistent verb_noun pattern like list_, get_, create_, update_, delete_, add_, upload_, download_, save_. No mixed conventions or vague verbs appear.

Tool Count3/5

24 tools is in the heavy range for a single server. While each tool has a legitimate Redmine purpose, the many list_* metadata tools (statuses, trackers, priorities, activities, custom fields) could plausibly be consolidated, making the surface feel larger than necessary.

Completeness3/5

The set covers issue read/create/update and time entry CRUD, plus attachments and preferences, but notably lacks an issue deletion tool. Project coverage is also read-only (list/get only), so core lifecycle operations are incomplete despite broad feature coverage.

Maintenance

ActivityMaintained
ResponsivenessNo issues