thais-skills
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REDMINE_URL | Yes | The base URL of your Redmine instance | |
| REDMINE_API_KEY | Yes | Your 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| redmine_list_issuesA | List and filter issues from Redmine. Args:
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:
|
| redmine_create_issueA | Create a new issue in Redmine. Args:
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:
Returns: Confirmation of update. |
| redmine_add_noteA | Add a comment/note to an existing Redmine issue without changing any other fields. Args:
Returns: Confirmation. |
| redmine_list_projectsB | List all accessible projects in Redmine. Args:
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:
Returns: Project details including trackers, categories, etc. |
| redmine_list_versionsA | List all versions (milestones) for a Redmine project. Args:
Returns: List of versions with status and due dates. |
| redmine_list_time_entriesA | List time entries from Redmine with optional filters. Args:
Returns: Table of time entries. |
| redmine_create_time_entryA | Log time in Redmine. Requires either issue_id or project_id. Args:
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:
Returns: Confirmation. |
| redmine_delete_time_entryA | Delete a time entry from Redmine. This action is irreversible. Args:
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:
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:
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:
Returns: User details. |
| redmine_upload_attachmentA | Attach a file or image to a Redmine issue. Give exactly one source:
Args:
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:
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:
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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
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.
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.
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.
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.