Skip to main content
Glama
0xkillaflow

Redmine MCP Server

by 0xkillaflow

List issue relations

redmine_list_issue_relations
Read-only

Fetch dependency links between Redmine issues to identify blockers and sequence work. Specify an issue ID for all relations or a relation ID for a single link.

Instructions

Read the relations (dependency links) between issues — use it before reporting blockers or sequencing work. Pass exactly one of issue_id (all relations of that issue, returned as { relations: [...] }) or issue_relation_id (one relation by its own id). Each relation reads as "issue_id issue_to_id": issue_id is the SOURCE and issue_to_id the TARGET. Directions: "blocks" — the source blocks the target, so the target cannot be finished first; "blocked" — the source is blocked by the target; "precedes" — the source must finish before the target starts (with an optional delay in days); "follows" — the source starts after the target finishes; "duplicates"/"duplicated", "copied_to"/"copied_from" mirror each other the same way; "relates" is a plain, non-directional link. Redmine stores one record per link and derives the inverse, so an issue is listed as the source of some of its relations and the target of others — never assume issue_id equals the id you queried; compare both ids to work out which way the dependency points. The id of a relation is what redmine_delete_issue_relation takes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
issue_idNoIssue whose relations should be listed. Returns every relation the issue takes part in, in either direction. Provide exactly one of issue_id or issue_relation_id.
issue_relation_idNoNumeric id of a single relation (the relation's own id, not an issue id) to read back. Provide exactly one of issue_id or issue_relation_id.
Behavior5/5

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

Annotations already provide readOnlyHint=true, confirming no data modification. The description adds significant behavioral detail: the directional nature of relations (source/target), the fact that Redmine stores one record per link and derives inverses, and the warning that issue_id in the response may not equal the queried id. It also explains the response structure and relation types, all contributing to high transparency with no contradictions.

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 is fairly long but well-organized, front-loading the purpose and usage before delving into detailed behavioral specifics. Every sentence provides necessary information, though some minor trimming could be possible without losing clarity.

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?

Given the complexity of relation directionality, the absence of an output schema, and the presence of annotations (readOnlyHint, openWorldHint), the description is remarkably complete. It covers what the tool returns, how to parse relations, the meaning of each relation type, and the important caveat about source/target ambiguity.

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

Parameters4/5

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

Schema coverage is 100% with descriptions in the input schema, but the description adds value by clarifying that exactly one parameter must be provided and explaining what each parameter returns (all relations vs. a single relation by id). This goes beyond the schema's built-in descriptions.

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 clearly states that this tool reads relations (dependency links) between issues, and it distinguishes itself from sibling tools like redmine_create_issue_relation and redmine_delete_issue_relation by being a read operation. It provides a specific use case ('use it before reporting blockers or sequencing work'), making the purpose explicit and actionable.

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

Usage Guidelines4/5

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

The description advises passing exactly one of issue_id or issue_relation_id, and relates the tool to redmine_delete_issue_relation by stating that the id returned is what the delete tool takes. However, it does not explicitly mention when not to use this tool or compare it to other list tools like redmine_list_issues, so it lacks full exclusion guidance.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xkillaflow/agama-redmine-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server