Skip to main content
Glama

List Redmine issues

list_issues
Read-onlyIdempotent

Retrieve Redmine issues visible to the configured user. Filter by project, status, assignee, dates, custom fields, and more; paginate, sort, and include attachments or relations. Read-only.

Instructions

Read visible Redmine issues from GET /issues.json for the configured API user. Supports offset and limit up to 100, sorting, attachments and relations, issue_id, project_id, subproject_id, tracker_id, status_id, assigned_to_id, parent_id, query_id, created_on, updated_on, and numeric-ID custom-field filters. This tool never changes Redmine data.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNoComma-separated Redmine sort fields, each optionally followed by :asc or :descupdated_on:desc
limitNoNumber of issues to return. Redmine caps this at 100.
offsetNoNumber of issues to skip
includeNoIssue associations to include
issue_idNoIssue ID or comma-separated issue IDs
query_idNoSaved query ID
parent_idNoParent issue ID
status_idNoStatus ID, open, closed, or * for open and closed issuesopen
created_onNoRedmine date or date-time filter, including operators and ranges
project_idNoProject ID
tracker_idNoTracker ID
updated_onNoRedmine date or date-time filter, including operators and ranges
custom_fieldsNoCustom field filters as [{ id, value }] or an object keyed by numeric field ID
subproject_idNoSubproject ID or !* to exclude subprojects
assigned_to_idNoAssignee ID or me for the API user

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
issuesYes
pagingYes
filtersYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnlyHint and non-destructive behavior, the description's 'never changes Redmine data' adds little. It does provide useful behavioral context beyond annotations: only issues visible to the configured API user are returned. No error, rate-limit, or pagination behavior beyond what the schema specifies is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description opens with a clear purpose statement and then lists capabilities in a dense, readable second sentence. The final, third sentence about not changing data is redundant given annotations, but the description remains concise and efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with 15 parameters and a rich output schema, the description provides enough context: the endpoint, scope (visible to API user), and full filter support. It does not explain return format or indicate when to consult siblings, but the output schema and sibling names cover those gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter already has a detailed description. The tool description merely enumerates the filter names and restates the offset/limit caps already present in the schema, adding no new meaning or operator examples beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Read visible Redmine issues from GET /issues.json') and clearly scopes it to the configured API user. The extensive list of filters differentiates it from sibling single-issue and resource-specific tools like get_issue and list_my_assigned_issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing issues with arbitrary filters but does not explicitly say when to choose this tool versus alternatives such as list_my_assigned_issues or get_issue. It provides clear context on capabilities but no exclusions or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.