Skip to main content
Glama

Get a Redmine issue category

get_issue_category
Read-onlyIdempotent

Retrieve a single Redmine issue category by its ID to view its name, project, and assigned user or group.

Instructions

Read one visible Redmine issue category from GET /issue_categories/:id.json for the configured Redmine API user. The required issue_category_id is a positive safe integer. This endpoint accepts no query, include, or undocumented controls, and results contain only the current issue-category serializer fields with camelCase names, preserving explicit nulls and omitted associations. A safe browser URL is added only to the returned project reference. The category HTML show route redirects to member-only project settings, and assigned_to is a Principal that may be a user or group, so categories and assignees receive no browser URLs. This is a non-admin read authorized by the category project's view_issues permission with the issue_tracking module enabled, subject to Redmine's project visibility and ordinary permission checks. Redmine may return HTTP 401, 403, or 404. This tool never changes Redmine data.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
issue_category_idYesPositive safe-integer Redmine issue category ID

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
nameYes
projectNo
assignedToNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already mark this as read-only and idempotent, but the description goes well beyond them: it specifies the exact HTTP endpoint, the lack of query/include/undocumented controls, serializer behavior (camelCase, explicit nulls, omitted associations), browser URL handling, permission requirements, possible HTTP 401/403/404 responses, and explicitly states 'This tool never changes Redmine data.' This is rich, non-redundant behavioral disclosure.

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

Conciseness5/5

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

The description is dense but front-loaded: the core purpose appears in the first sentence, followed by tightly packed operational details. Each sentence earns its place by covering parameters, response shape, URL behavior, permissions, errors, or mutation guarantees. There is no filler or repetition that bloats the definition.

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

Completeness5/5

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

For a single-parameter read with an output schema and strong annotations, the description is complete. It covers authentication/permission context, expected error statuses, response serialization nuances, non-mutation, and the exact resource path. No critical information an agent needs to call this tool correctly appears to be missing.

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%: issue_category_id is fully described as a positive safe-integer Redmine issue category ID with constraints. The description repeats 'required issue_category_id is a positive safe integer' and ties it to the endpoint path placeholder, but adds no meaning beyond the schema. Baseline 3 is appropriate.

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 opens with a specific verb and resource: 'Read one visible Redmine issue category from GET /issue_categories/:id.json.' The singular 'one' and the explicit endpoint clearly distinguish this from the sibling list_project_issue_categories. The title and description align without tautology.

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 clearly implies this tool is for fetching a single issue category by ID, and it provides useful context about permissions and error responses. However, it never explicitly names alternative tools such as list_project_issue_categories or states when to prefer one over the other. Usage is implied rather than explicit.

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