Redmineflux MCP Server
Allows AI agents to interact with a Redmine project management instance, providing tools for managing issues, projects, time entries, users, versions, and supporting plugins such as DevOps, Timesheet, Workload, Agile Board, and Knowledge Base.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Redmineflux MCP ServerShow open issues in the Phoenix project."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Why Redmineflux MCP Server?
Redmine holds your project data — issues, time entries, milestones, workload, agile boards, knowledge base articles. But accessing that data means clicking through multiple pages, running custom queries, and switching between plugins.
Redmineflux MCP Server makes all of that accessible to AI agents. Your team asks questions in natural language and gets answers backed by live project data. AI agents can read, create, and update issues, log time, check workload, and query across all your projects — in seconds.
Team member asks a question → AI Agent → MCP Server → Redmine REST API → AnswerRedmine holds the data. Redmineflux plugins enrich it. The MCP server makes it accessible to AI agents. Your team keeps working the way they always have — but now they can ask "what should I work on first?" or "how many bugs are open in Phoenix?" and get answers in seconds.
Related MCP server: mcp-redmine-server
Why a Standalone Service? Why Python?
If you're a Redmineflux customer, you're used to plugins: drop into plugins/, run migrations, restart Redmine, done. So why is the MCP server different?
MCP servers and Redmine plugins serve different audiences through different protocols. A Redmine plugin renders HTML for humans in browsers over HTTP. An MCP server streams structured data to AI agents over stdio/SSE. These are fundamentally different runtime models — combining them would compromise both.
Factor | Redmine Plugin (Ruby) | MCP Server (Python) |
Serves | Humans via browsers | AI agents via MCP protocol |
Protocol | HTTP request/response | stdio streams / server-sent events |
Lifecycle | Tied to Redmine process | Independent — update without restarting Redmine |
MCP SDK | Does not exist for Ruby | Official Anthropic SDK ( |
Ecosystem | 0 MCP reference servers | 100+ MCP reference servers |
Why Python specifically:
Official SDK — Anthropic maintains the MCP Python SDK. Protocol changes are handled upstream. A Ruby implementation would mean building and maintaining the protocol from scratch.
Ecosystem — every major MCP server (GitHub, Slack, Notion, Linear) is Python or TypeScript. Customers using AI agents already expect this pattern.
Async HTTP — Python's httpx provides native async/await for efficient Redmine API communication.
AI/ML ready — if we add features like embeddings or summarization later, the Python ecosystem is already there.
Your Redmine stays untouched. The MCP server is a companion service that connects to Redmine through its standard REST API — the same API your browser uses. No database access, no Redmine internals, no risk to your existing setup.
For the full architectural decision record, see the Decision Document.
Key Features
51 MCP Tools — full CRUD for issues, projects, time entries, users, versions, plus plugin-specific tools for DevOps, Timesheet, Workload, Agile Board, and Knowledge Base
Capability Injection — auto-detects which Redmineflux plugins are installed on your Redmine instance and loads only the relevant tools
Natural Language Access — ask questions about projects, issues, time, and milestones without learning Redmine's UI
Cross-Project Queries — "compare bugs across all 6 projects" in one question instead of 6 browser tabs
One-Sentence Actions — "log 4 hours and update to 80% done" replaces two separate Redmine forms
Observability — every tool call logged as JSON Lines with session tracking, user identity, and timing
MCP Standard — works with Claude Code, ChatGPT, GitHub Copilot, and any MCP-compatible AI agent
Tools
Core Tools (15)
Tool | Description |
| List all projects with pagination |
| Get project details by ID or identifier |
| List issues with filters (project, status, tracker, assignee, priority) |
| Get full issue details with journals, relations, attachments |
| Create a new issue with all fields |
| Update issue status, assignee, progress, add notes |
| Log time against an issue |
| List time entries with date/project/user filters |
| List all users |
| Get the authenticated user's details |
| List project versions/milestones |
| List all issue statuses |
| List all trackers (Bug, Feature, Support) |
| List all priorities (Low through Immediate) |
| List time entry activities (Design, Development) |
Convenience Tools (5)
Tool | Description | Replaces |
| Issue counts by status for one or all projects | 12 API calls |
| Current user's tasks across all projects, priority-sorted | 4 API calls |
| Full project overview: description, stats, milestones, activity | 5 API calls |
| New user orientation: projects, tasks, team directory | 4 API calls |
| Urgent/Immediate priority open issues across all projects | 2 API calls |
System Tools (1)
Tool | Description |
| Rate your MCP session (1-5) and leave feedback |
Plugin Tools (30)
Plugin tools are automatically loaded when the corresponding Redmineflux plugin is detected on your Redmine instance.
Plugin | Tools | Description |
DevOps | 8 | Builds, commits, pull requests, deployments, environments, releases, DORA metrics, alerts |
Timesheet | 6 | Timesheets, submissions, approvals, team timesheets, settings |
Workload | 5 | Resource allocation, capacity, team workload, utilization, forecasting |
Agile Board | 5 | Board management, sprints, cards, swimlanes, WIP limits |
Knowledge Base | 6 | Articles, categories, search, versions, attachments, popular articles |
Screenshots
Screenshots coming soon — the MCP server is in active development.
Requirements
Component | Version |
Python | 3.12+ |
Redmine | 5.x or 6.x |
MCP SDK | 1.26+ |
httpx | 0.27+ |
Installation
1. Clone
git clone https://github.com/zehntech/redmineflux-mcp.git
cd redmineflux-mcp2. Install Dependencies
pip install -e .3. Configure
cp .env.example .env
# Edit .env with your Redmine URL and API keyVariable | Description | Example |
| Your Redmine instance URL |
|
| Admin or user API key (My Account → API access key) |
|
4. Connect to Your AI Agent
Option A: Generate config automatically (recommended for teams)
python3 -m src.setupThis auto-detects the install path and generates a ready-to-use .mcp.json. Admin runs it once, sends the output to the team — each person just replaces YOUR_API_KEY with their own Redmine API key.
Option B: Manual setup
Add to your project's .mcp.json:
{
"mcpServers": {
"redmineflux": {
"command": "python3",
"args": ["-m", "src.server"],
"cwd": "/path/to/redmineflux-mcp",
"env": {
"REDMINE_URL": "https://redmine.example.com",
"REDMINE_API_KEY": "your_api_key"
}
}
}
}Finding your API key: Redmine → My Account → API access key (right sidebar) → Show
The server communicates over stdio (standard MCP transport). Any MCP-compatible AI agent can connect using the same command.
5. Auto-Start on Boot (Optional)
If you're running the MCP server on a shared team server, you'll want it to start automatically.
Linux (systemd):
Create /etc/systemd/system/redmineflux-mcp.service:
[Unit]
Description=Redmineflux MCP Server
After=network.target
[Service]
Type=simple
User=redmine
WorkingDirectory=/opt/redmineflux-mcp
ExecStart=/opt/redmineflux-mcp/.venv/bin/python -m src.server
EnvironmentFile=/opt/redmineflux-mcp/.env
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable redmineflux-mcp
sudo systemctl start redmineflux-mcp
# Check status
sudo systemctl status redmineflux-mcpmacOS (launchd):
Create ~/Library/LaunchAgents/com.redmineflux.mcp.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.redmineflux.mcp</string>
<key>ProgramArguments</key>
<array>
<string>/opt/redmineflux-mcp/.venv/bin/python</string>
<string>-m</string>
<string>src.server</string>
</array>
<key>WorkingDirectory</key>
<string>/opt/redmineflux-mcp</string>
<key>EnvironmentVariables</key>
<dict>
<key>REDMINE_URL</key>
<string>https://redmine.example.com</string>
<key>REDMINE_API_KEY</key>
<string>your_api_key</string>
</dict>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/var/log/redmineflux-mcp.log</string>
<key>StandardErrorPath</key>
<string>/var/log/redmineflux-mcp.error.log</string>
</dict>
</plist>launchctl load ~/Library/LaunchAgents/com.redmineflux.mcp.plist
# Check status
launchctl list | grep redminefluxDocker:
docker run -d --name redmineflux-mcp \
--restart unless-stopped \
-e REDMINE_URL=https://redmine.example.com \
-e REDMINE_API_KEY=your_api_key \
redmineflux/mcp-server:latestNote: For Claude Code's
.mcp.jsonintegration, auto-start is not needed — Claude Code launches the MCP server process automatically when it connects. Auto-start is for shared team servers where the MCP server runs as an HTTP/SSE endpoint for multiple agents.
Usage
Once connected, ask questions naturally:
You: What's the status of the Phoenix Platform project?
AI: Phoenix Platform has 1,594 issues — 33% complete.
New: 537 | In Progress: 304 | Resolved: 93 | Closed: 538
Next milestone: v0.4 Frontend Shell (due 2026-03-31)
You: Show me critical bugs
AI: 10 critical issues (Urgent + Immediate) across 4 projects...
You: Log 4 hours of Development on issue #50, comment "API refactoring complete"
AI: Logged 4.0h on issue #50 (entry id=1846)
You: I just joined the team, where do I start?
AI: Welcome! You're assigned to 3 projects with 42 open issues...Access Control & Permissions
The MCP server respects Redmine's permission model. You only see what your API key allows.
Each person connects with their own Redmine API key. That key inherits the same permissions as their Redmine user account — same projects, same roles, same visibility. If you can't see a project in Redmine's web UI, you won't see it through the MCP server either.
What Happens When You Don't Have Access
The server handles permission issues gracefully with clear messages:
You: Show me the status of the Secret-Project
AI: Not found: project 'Secret-Project' does not exist, or you don't have
permission to see it. Redmine returns 404 for both missing resources and
resources you lack access to. Verify the ID is correct, or ask your
Redmine administrator for access.
You: List all users
AI: Access denied: you don't have permission to view users. Your API key
only provides access to resources your Redmine account has been granted.
Listing all users requires an admin API key. To see what you DO have
access to, try listing your projects or checking your current user details.Common Scenarios
Scenario | What Happens |
User asks about a project they're not a member of | Clear "not found or no access" message with suggestion to request access |
User tries to list all users (non-admin key) | Explains that user listing requires admin privileges |
User tries to create an issue in a project they can only view | Explains the role limitation and suggests asking for a higher role |
User asks "what projects do I have?" | Works — returns only projects their key has access to |
User's API key is expired or invalid | Clear authentication error with instructions to get a new key |
Best Practices for Admins
Give each person their own API key — don't share a single admin key. This ensures audit logs show who did what, and each person only sees their projects.
Use the setup script (
python3 -m src.setup) to generate the config with your Redmine URL pre-filled. Send it to the team — they just add their own API key.Admin keys see everything — only use admin keys for system-level agents (CI/CD bots, reporting agents), not for individual team members.
Who Is This For?
Role | What They Can Do |
Developers | Check assigned issues, log time, update progress, triage bugs — all from the terminal |
Project Managers | Instant project stats, milestone tracking, cross-project comparison, resource allocation |
QA Engineers | Query bugs by priority/status, track regression patterns, monitor test coverage |
Marketing & Sales | Discover what features are being built, check release timelines, track product progress |
AI Agents | Autonomous task execution, spec-to-ticket pipelines, quality monitoring |
Architecture
┌──────────────┐ ┌───────────────────────┐ ┌──────────────┐
│ AI Agent │ │ Redmineflux MCP │ │ Redmine │
│ (Claude, │────▶│ Server (Python) │────▶│ REST API │
│ ChatGPT, │◀────│ │◀────│ │
│ Copilot) │ │ 51 tools │ │ + Plugins │
└──────────────┘ │ Capability injection │ └──────────────┘
│ Observability layer │
│ JSON audit logs │
└───────────────────────┘Modular design: Core tools (21) are always loaded. Plugin tools (30) are injected based on which Redmineflux plugins are installed on your Redmine instance — the server auto-detects capabilities at startup.
Security
The MCP server uses stdio transport — it runs as a local process with no network endpoint.
Question | Answer |
Can someone DDoS the MCP server? | No. There is no port, no URL, no socket. Nothing to send traffic to. |
Can someone intercept the communication? | No. stdio is a local pipe between two processes. Not on the network. |
What network calls does it make? | Outbound HTTPS only — from the MCP server to your Redmine REST API. |
Where does my API key go? | Stays local. Loaded from |
Does my data go to the cloud? | Your questions and Redmine data pass through Anthropic's Claude API for AI reasoning. The MCP server itself stores nothing in the cloud. |
What's the attack surface? | Zero for the MCP server. Your Redmine instance's existing HTTPS exposure is unchanged. |
Best practices: Use personal API keys (not shared admin keys), keep .env out of git, revoke keys immediately if compromised.
For the full security analysis, see How MCP Routing Works.
Works With
Plugin | Integration |
Redmineflux Timesheet | Query timesheets, check submission status, view approvals via AI |
Redmineflux Workload | Check resource allocation, capacity, and utilization across teams |
Redmineflux Agile Board | Manage sprints, move cards, check WIP limits |
Redmineflux DevOps | Query builds, deployments, DORA metrics, releases |
Redmineflux Knowledge Base | Search articles, browse categories, find documentation |
Redmineflux CRM | Coming soon |
Redmineflux Helpdesk | Coming soon |
FAQ
Q: Does the MCP server require direct database access? No. The server communicates exclusively through Redmine's REST API. No database credentials or direct connections needed.
Q: Which AI agents are supported? Any agent that supports the Model Context Protocol (MCP) — Claude Code, ChatGPT (with MCP plugin), GitHub Copilot, and custom agents built with the Anthropic SDK.
Q: Do I need all Redmineflux plugins installed? No. The server auto-detects which plugins are available and loads only the relevant tools. Core Redmine tools (21) always work, even without any Redmineflux plugins installed.
Q: Is my data sent to third parties? The MCP server runs locally on your machine. It communicates with your Redmine instance via its REST API. Your project data stays between the server and your Redmine — the MCP server does not send data anywhere else.
Q: Can I restrict which tools are available? Yes. The server respects Redmine's permission model — users only see data they have access to based on their API key's role and project memberships.
Q: What about audit logging?
Every tool call is logged as JSON Lines in the logs/ directory with session ID, user identity, tool name, parameters, timing, and result status. Sensitive fields are redacted automatically.
Q: Can I see MCP activity inside Redmine? A Redmine dashboard plugin is planned (Phase 6) that will show connection status, agent activity feed, and usage statistics directly in the Redmine UI. The MCP server itself remains external — the dashboard reads its audit logs.
Beta Mode
The MCP server ships with beta mode enabled by default. When active, every AI response includes a notice directing users to report issues:
This is a BETA version of Redmineflux MCP Server. If you encounter any issues or have feedback, please log a ticket on the 'ztmcp' project in Redmine.
This works through the MCP instructions field — the AI agent reads it on connect and appends the notice to every response. No tool output is modified.
Configuration:
Variable | Default | Description |
|
| Set to |
|
| Redmine project where users should log feedback |
| (auto-generated) | Override with a custom message |
To disable beta mode when going to GA: set REDMINEFLUX_BETA=false in your .env — no code change or restart needed beyond reloading the server.
Roadmap
Phase | Scope | Status |
Phase 1 | Core Redmine tools (21) + observability | Done |
Phase 2 | Capability injection system | Done |
Phase 3 | DevOps + Timesheet + Workload + Agile + KB (30 tools) | Done |
Phase 4 | CRM + Testcase Management | Planned |
Phase 5 | Helpdesk + Dashboard plugin tools | Planned |
Phase 6 | MCP Dashboard — Redmine plugin for monitoring MCP activity | Planned |
Phase 7 | PyPI packaging | Planned |
Phase 6 Preview: MCP Dashboard Plugin
A lightweight Redmine plugin (redmineflux_mcp_dashboard) that gives project managers and admins visibility into how AI agents are interacting with their Redmine data — without leaving the Redmine UI.
Planned features:
Connection status — is the MCP server online? Last heartbeat, uptime, version
Live activity feed — recent tool calls: who asked what, which tool, when, how long
Usage dashboard — calls per day, most-used tools, busiest projects, response times
Agent sessions — which AI agents connected, session duration, tools used per session
Audit log viewer — searchable view of the MCP server's JSON Lines audit logs
This plugin reads the MCP server's audit logs — it does NOT embed MCP functionality into Redmine. The MCP server remains a standalone Python service; the dashboard is a read-only window into its activity.
Release Notes
v0.2.0 (2026-03-30)
Beta mode — configurable notice appended to every AI response, directing users to log feedback tickets. Toggle with
REDMINEFLUX_BETA=true/false.Graceful permission handling — human-readable error messages for 401 (invalid key), 403 (access denied), 404 (not found / no access), and 422 (validation). Explains what went wrong and how to fix it.
Team setup script —
python3 -m src.setupauto-generates.mcp.jsonwith correct paths. Admin runs once, sends to team.Access control documentation — 10 permission denial scenarios (ACL-01 through ACL-10) added to test suite and use cases.
Architecture decision record — documented why the MCP server is a standalone Python service, not a Redmine plugin.
Auto-start guides — systemd (Linux), launchd (macOS), and Docker instructions for running as a service.
MCP Dashboard spec — Phase 6 roadmap for a Redmine plugin that shows MCP activity, agent sessions, and usage stats.
v0.1.0 (2026-03-29)
Initial release with 51 MCP tools (21 core + 30 plugin)
Capability injection — auto-detects installed Redmineflux plugins
Observability layer with JSON Lines audit logging
5 plugin modules: DevOps, Timesheet, Workload, Agile Board, Knowledge Base
Docker development environment (Redmine 5.1 + PostgreSQL 16)
47 integration tests, Claude API e2e test, role-based scenario tests
Support
Knowledge Base: redmineflux.com/knowledge-base
Email: support@redmineflux.com
Website: redmineflux.com
Available Tools
21 toolsredmineflux_core_create_issueA
Create a new issue.
Args: project_id: Project identifier or numeric ID. subject: Issue title. tracker_id: Tracker ID (0 = project default). description: Issue body text (supports Textile/Markdown). priority_id: Priority ID (0 = default). assigned_to_id: User ID to assign to (0 = unassigned). status_id: Status ID (0 = default). estimated_hours: Estimated hours (0 = none). parent_issue_id: Parent issue ID for subtasks (0 = none).
| Name | Required | Description | Default |
|---|---|---|---|
| subject | Yes | ||
| status_id | No | ||
| project_id | Yes | ||
| tracker_id | No | ||
| description | No | ||
| priority_id | No | ||
| assigned_to_id | No | ||
| estimated_hours | No | ||
| parent_issue_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It states 'Create a new issue.' and lists arguments but does not mention that this is a write operation, that it may be irreversible, or that it requires specific permissions. It only adds minor behavioral hints like '0 = project default' for some fields, but lacks substantive disclosure about side effects, authentication, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a well-structured docstring with a brief one-line summary followed by an 'Args:' block. Each parameter is listed on its own line with a clear label and explanation. There is no redundant or filler content; every line contributes to understanding the tool's invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters, the description covers all of them with semantic explanations. The output schema is present, so the lack of return documentation is acceptable. The description, combined with the schema (which marks project_id and subject as required and provides defaults), gives an agent everything needed to select and invoke the tool correctly. It is complete for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions for any of the 9 parameters (schema description coverage 0%). The description fully compensates by explaining each parameter's meaning and default behavior, e.g., 'project_id: Project identifier or numeric ID', 'subject: Issue title', 'tracker_id: Tracker ID (0 = project default)', and 'description: Issue body text (supports Textile/Markdown)'. This adds significant semantic value beyond the schema's type and default information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Create a new issue.' which uses a specific verb ('create') and resource ('issue'). This clearly distinguishes it from sibling tools like update_issue and list_issues. The purpose is unmistakably about creating a new issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that this should be used for new issues rather than updates, nor does it reference sibling tools like update_issue. There is no advice on prerequisites or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_critical_issuesA
Get Urgent and Immediate priority open issues.
Use this during incidents, fire drills, or when someone asks "what's critical?", "what's on fire?", or "show me the emergencies." Returns only the highest priority open issues.
Args: project_id: Filter to one project (empty = all projects). limit: Maximum issues (default 20).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| project_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses key behavior: returns only urgent/immediate open issues, supports project filtering with empty meaning all projects, and caps results via limit. It does not mention ordering or pagination, which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loading the purpose, then giving a practical usage note, and finishing with concise argument explanations. It contains no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with an output schema available and no annotations, the description is complete. It covers purpose, usage context, both parameters, and default behavior, making it easy for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must fully explain parameters. It does: project_id is 'Filter to one project (empty = all projects)' and limit is 'Maximum issues (default 20).' This adds clear operational meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get Urgent and Immediate priority open issues,' a specific verb-resource-scope combination. It clearly distinguishes this tool from the sibling list_issues by focusing on critical priorities and open issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Use this during incidents, fire drills, or when someone asks...' and provides trigger phrases, giving strong contextual guidance. However, it does not explicitly mention when not to use it or point to an alternative for non-critical queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_get_current_userA
Get details of the user associated with the API key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry this weight. The verb 'Get' implies a read-only operation, but it does not disclose potential errors, authentication failure behavior, or other side effects. This is adequate for a simple getter but not deeply transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that immediately states the tool's purpose with no filler. It is perfectly sized for a zero-parameter getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and an output schema present, the description does not need to explain parameters or return values. The simple read-only nature and clear resource reference make the description sufficient for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is nothing for the description to add. The zero-parameter case and full schema coverage yield a baseline score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource, 'the user associated with the API key,' which precisely identifies the current authenticated user. This distinguishes it from sibling tool list_users, which returns all users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'associated with the API key' provides clear context for when to use this tool: when the agent needs details about the current authenticated user. However, it does not explicitly mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_get_issueA
Get full details of a specific issue.
Args: issue_id: The issue number. include: Comma-separated extras: children, attachments, relations, changesets, journals, watchers, allowed_statuses.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | ||
| issue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description bears the full responsibility for behavioral disclosure. It does not mention read-only nature, potential errors, permissions, or return behavior beyond 'full details', and while the include parameter lists extras, it does not disclose any side effects or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with a single clear purpose sentence followed by a well-organized argument list. Every line adds value without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read tool with an output schema, the description is mostly complete. It clearly specifies the input parameters and the tool's purpose, though it lacks usage guidance and behavioral nuances like error handling, which are minor gaps given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description fully explains both parameters: issue_id as 'the issue number' and include as 'comma-separated extras' with a list of valid values. This adds significant meaning beyond the bare schema, which has no descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get full details of a specific issue' with a specific verb and resource. It effectively distinguishes itself from sibling tools like list_issues (listing) and create_issue/update_issue (mutating).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to choose this over list_issues or get_project. The description only states what it does, leaving the agent to infer context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_get_projectA
Get details of a specific project by ID or identifier.
Args: project_id: Numeric ID or string identifier (e.g. "my-project"). include: Comma-separated extras: trackers, issue_categories, enabled_modules, time_entry_activities.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The verb 'Get' implies a read-only operation, but it does not explicitly state that no changes are made, nor does it mention permissions, error conditions, or other side effects. It does add useful context about the include parameter, but overall behavioral transparency is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: one clear sentence for the purpose, followed by a concise list of the two arguments. Every sentence earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with an output schema, the description is adequate: it covers both parameters fully and the output schema covers return values. However, it lacks any mention of usage alternatives, permission requirements, or potential error scenarios, which leaves minor gaps in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the schema's bare property definitions. It does so effectively: project_id is explained as 'Numeric ID or string identifier (e.g. "my-project")', and include is listed with its allowed values ('trackers, issue_categories, enabled_modules, time_entry_activities'). This adds substantial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Get details of a specific project by ID or identifier', which clearly states the action (get details), the resource (project), and the scope (specific project). This distinguishes it from sibling tools like list_projects and get_issue, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when you need a single project's details, but it does not explicitly say when to use this instead of alternatives such as redmineflux_core_list_projects, nor does it mention any exclusions or conditions. Usage context is present but only implied by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_list_issuesA
List issues with filters.
Args: project_id: Filter by project identifier or ID. Empty = all projects. status_id: "open", "closed", "*" (all), or numeric status ID. tracker_id: Filter by tracker ID (0 = all). assigned_to_id: Filter by assignee user ID (0 = all). limit: Max results (default 25, max 100). offset: Pagination offset. sort: Sort field:direction, e.g. "priority:desc", "updated_on:desc".
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | updated_on:desc | |
| limit | No | ||
| offset | No | ||
| status_id | No | open | |
| project_id | No | ||
| tracker_id | No | ||
| assigned_to_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It does disclose useful filter behavior (e.g., empty project_id means all projects, status_id special values, sort syntax, max limit). However, it does not describe the return shape, potential errors, or any read-only/authorization implications beyond the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and uses a clean 'Args:' list for parameter details. Each parameter line earns its place with meaningful semantics. Slightly lengthy for a one-tool description but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and all 7 parameters semantically documented, the description is nearly complete for a listing tool. The only gap is the absence of usage guidance (when to use vs alternatives), which is already reflected in the usage_guidelines score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates fully by explaining every parameter in detail: project_id empty semantics, status_id allowed values, tracker/assignee zero-means-all, limit max, offset pagination, and sort syntax. This far exceeds what the schema properties alone provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List issues with filters' with a specific verb and resource. It is obvious this is a list operation, distinguishing it from 'get_issue' by name, but it does not explicitly call out sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The description only says 'List issues with filters' and does not mention when to prefer get_issue for a single issue or when list_projects would be appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_list_prioritiesA
List all issue priorities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only indicates a 'List' operation, which implies read-only, but it does not mention ordering, pagination, authentication, or any other behavioral traits that might be relevant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. For a parameterless list tool, this is appropriately concise and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, zero parameters, and the presence of an output schema, the description is largely complete. It conveys the essential purpose, though additional detail about return behavior might enhance completeness further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, so the baseline is 4. The description adds meaning by stating 'all', confirming that no filtering is applied and the tool returns the complete set of priorities.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all issue priorities' uses a specific verb and resource, clearly stating the tool's purpose. The word 'all' clarifies the scope, and 'issue priorities' distinguishes it from sibling tools like list_statuses or list_trackers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description: if you need to list issue priorities, this is the tool. However, there is no explicit guidance about when to use this over alternatives or any context about prerequisites, which is typical for a simple list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_list_projectsA
List all projects the API user has access to.
Args: limit: Max results to return (default 25, max 100). offset: Skip this many results (for pagination). include: Comma-separated extras: trackers, issue_categories, enabled_modules, time_entry_activities.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| include | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It states the access scope ('has access to') and implies read-only behavior, but does not explicitly disclose the absence of side effects, rate limits, or other behavioral details. This is adequate for a simple list operation but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loads the purpose, and uses a structured Args block. Every sentence serves a clear function, with no redundant prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, an output schema exists, and the description covers the core behavior and all parameters. It provides sufficient information for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description's Args section explains all three parameters (limit, offset, include) with meanings and defaults, fully compensating for the schema's lack of descriptions (0% coverage). This adds significant semantic value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the imperative verb 'List' with a specific resource ('projects') and scope ('the API user has access to'), clearly differentiating it from sibling tools like get_project (which fetches a single project).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the tool lists all accessible projects, implying its use case. It provides clear context but does not explicitly mention when not to use it or name alternative tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_list_statusesA
List all issue statuses.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List all issue statuses' is a simple read operation and is transparent in intent, but it does not detail authentication requirements, pagination, or output format. It is adequate but minimal, earning a mid-range score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. 'List all issue statuses' is extremely concise and structurally clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters) and the presence of an output schema, the description is mostly complete. It clearly identifies what is listed, though it could offer slightly more context about the nature of issue statuses or when to use this over similar list tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. There is no need for the description to explain parameter details since the schema already confirms no inputs are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all issue statuses' clearly states a specific verb ('List') and resource ('issue statuses'). It distinguishes from siblings such as list_projects or list_issues by uniquely identifying statuses as the target resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool relative to alternatives like list_priorities or list_trackers. It does not mention any context, exclusions, or alternative tools, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_list_time_entriesA
List time entries with filters.
Args: project_id: Filter by project (empty = all). issue_id: Filter by issue (0 = all). user_id: Filter by user (0 = all). from_date: Start date YYYY-MM-DD (empty = no filter). to_date: End date YYYY-MM-DD (empty = no filter). limit: Max results (default 25, max 100). offset: Pagination offset.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| to_date | No | ||
| user_id | No | ||
| issue_id | No | ||
| from_date | No | ||
| project_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It transparently discloses filtering behavior, default values, a max limit of 100, and pagination offset. It implies a read-only listing operation, though it does not explicitly state the absence of side effects or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured, starting with a one-line summary followed by a clean argument list. Every line provides useful information, and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters and no annotations, the description covers all parameters, defaults, and date format expectations. An output schema exists, so not detailing return values is acceptable. The description is sufficient for an agent to correctly invoke the tool and understand its filtering and pagination behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description compensates by fully documenting all 7 parameters with meanings, defaults, and expected formats (e.g., 'project_id: Filter by project (empty = all)', 'from_date: Start date YYYY-MM-DD'). This adds significant value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List time entries with filters,' which clearly identifies the verb (list) and resource (time entries). It distinguishes itself from sibling tools like 'log_time' (creating entries) and 'list_time_entry_activities' (listing activity types) by focusing on the core listing operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: whenever time entries need to be listing with optional filters by project, issue, user, and date. While it does not explicitly name alternatives or exclusions, the filter semantics imply its role relative to more specific sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_list_time_entry_activitiesA
List available time entry activities (Design, Development, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the burden, and it clearly indicates a read-only listing operation with no side effects. However, it does not disclose authentication requirements, response structure, or any potential edge cases, though the output schema may cover the return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loading the action and resource with zero filler. Every word earns its place, and the parenthetical examples add useful context without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and an output schema, the description is complete for a straightforward list tool. It could mention its role in logging time, but that is implied by the resource name and sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline score is 4. The description adds no parameter details, but none are necessary given the tool takes no arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and clearly identifies the resource as 'available time entry activities' with examples (Design, Development). This distinguishes it from sibling tools like list_time_entries, which lists actual time entries, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It implies a reference lookup for activity names but does not state that it should be used before logging time or how it differs from list_time_entries, leaving context to the user.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_list_trackersA
List all trackers (issue types like Bug, Feature, Task).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action without disclosing any side effects, authentication requirements, or return-behavior nuances. Minimal insight beyond the literal meaning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless tool with an output schema, the description is sufficient to understand its basic function. It lacks any note on edge cases or read-only nature, but the simplicity reduces that burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty (100% coverage). Baseline 4 applies as there are no parameter semantics to clarify; the description correctly implies no filtering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all trackers and clarifies them as 'issue types like Bug, Feature, Task'. This specific verb+resource combination distinguishes it from sibling list tools such as list_projects or list_statuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this tool to retrieve all trackers/issue types. The parenthetical explanation disambiguates from other list tools, though no explicit exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_list_usersA
List users (requires admin API key).
Args: status: "active", "registered", "locked", or "*" (all). limit: Max results (default 25, max 100). offset: Pagination offset.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| status | No | active |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the admin API key requirement and parameter behaviors (status filter, pagination). However, it does not explicitly state the operation is read-only or describe side effects/error cases, though the output schema covers return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line purpose followed by an Args block. Every element is informative with no redundancy, and it is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (3 simple parameters) and the presence of an output schema, the description is complete. It covers authentication, parameter semantics, and pagination behavior, leaving no significant gaps for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema provides no descriptions for parameters. The description fully compensates by explaining each parameter: status with enumerated values, limit with max, and offset for pagination. This adds essential meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List users' with a clear verb and resource. It also specifies the prerequisite of an admin API key, making the tool's scope unambiguous. It is distinct from sibling tools like list_projects or list_issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool (to list users) and provides a prerequisite (admin API key). It does not explicitly mention alternatives or exclusions, but given the tool's straightforward purpose and siblings, the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_list_versionsA
List versions/milestones for a project.
Args: project_id: Project identifier or numeric ID.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries full responsibility for behavioral disclosure. It does not mention whether the operation is read-only, return format, pagination, ordering, or any side effects. It only restates the action implied by the name, providing no additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a clear purpose line and an argument explanation. There is no redundant information, and the structure is direct and front-loaded, suitable for a simple list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are covered. However, the description lacks usage guidance and behavioral transparency, which are necessary for full contextual completeness. For a simple list tool, it is minimally adequate but misses key context about when and how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description adds valuable semantics for project_id: 'Project identifier or numeric ID'. This clarifies the accepted format and is sufficient for the single parameter, fully compensating for the schema's lack of description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List versions/milestones for a project', specifying the verb 'List' and the resource 'versions/milestones'. This distinguishes it from sibling tools like list_projects or list_issues, which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any exclusions, prerequisites, or compare with sibling tools like get_project or list_issues. It simply states the function without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_log_timeA
Log time against an issue.
Args: issue_id: The issue to log time against. hours: Hours spent (e.g. 1.5). activity_id: Time entry activity ID (use list_time_entry_activities to find IDs). comments: Description of work done. spent_on: Date in YYYY-MM-DD format (empty = today).
| Name | Required | Description | Default |
|---|---|---|---|
| hours | Yes | ||
| comments | No | ||
| issue_id | Yes | ||
| spent_on | No | ||
| activity_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only explains parameters and the basic action, but does not disclose side effects (e.g., how it affects project stats), permissions needed, or the response format. As a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with a clear one-sentence purpose and follows with a structured Args list. Each line adds meaningful information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple logging tool, it covers all parameter semantics and formats. It omits side effects and prerequisites, but an output schema exists, so return value details are not needed. Adequate though not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the Args section explains all 5 parameters with examples and format details (e.g., '1.5' for hours, 'YYYY-MM-DD' for spent_on), fully compensating for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Log time against an issue' with a specific action verb and resource, distinguishing it from sibling tools like list_time_entries and update_issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a useful pointer to list_time_entry_activities for finding activity IDs, but does not explicitly state when to use this tool versus alternatives or mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_my_workloadA
Get the current user's assigned issues across all projects, sorted by priority.
Use this when someone asks "what should I work on?", "what's on my plate?", or "my tasks". Returns top issues sorted by priority (Immediate first).
Args: limit: Maximum issues to return (default 15). Use 5 for quick overview.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses sorting by priority and the default limit, and suggests a lower limit for quick overview. However, it does not clarify issue status inclusion or the exact meaning of 'assigned', leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and well-structured: purpose first, then usage triggers, then parameter details. Every sentence contributes useful information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and an output schema, the description covers purpose, usage context, return ordering, and parameter behavior. There are no significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly explains the limit parameter ('Maximum issues to return') and adds practical guidance ('Use 5 for quick overview'), going beyond the schema's default value. This adds meaningful semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), resource ('current user's assigned issues'), and scope ('across all projects'), while also noting sorting by priority. This clearly distinguishes it from sibling tools like list_issues or critical_issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly provides usage triggers: 'what should I work on?', 'what's on my plate?', or 'my tasks'. It does not mention alternatives or exclusions, but the given use cases are sufficient for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_project_statsA
Get issue count statistics grouped by status for one or all projects.
Returns total, open, in-progress, resolved, feedback, and closed counts. Much faster than calling list_issues multiple times. Use this when someone asks "how many issues?", "what's the progress?", or "give me numbers."
Args: project_id: Project identifier. Empty = stats for ALL projects.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior itself. It lists the exact counts returned and notes performance characteristics. It doesn't explicitly state that this is a read-only operation, but that is implied by the nature of the tool and the provided details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences plus a parameter note; front-loaded with the main purpose. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-parameter tool, the description covers purpose, usage, parameter semantics, and performance. Output schema exists, so return values need no further detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description fully explains the single parameter: 'Project identifier. Empty = stats for ALL projects.' This adds the default behavior that is not apparent from the schema's default of an empty string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Get issue count statistics grouped by status for one or all projects' — a specific verb, resource, and scope. Clearly distinguishes from list_issues and project_summary by emphasizing grouped counts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use when someone asks 'how many issues?', 'what's the progress?', or 'give me numbers,' and contrasts with list_issues by noting it's much faster than calling it multiple times.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_project_summaryA
Get a comprehensive summary of a project in one call.
Returns: description, issue counts by status, version milestones, and recent activity. Use this when someone asks "tell me about this project", "what's the status of X?", or "give me an overview."
Args: project_id: Project identifier or numeric ID.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the behavioral scope: one call, returns a summary with specific content areas. It also implies read-only behavior by naming the operation as 'summary'. While it doesn't mention limitations or side effects, none are expected for a summary tool, and the disclosed return components add meaningful transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: an opening purpose statement, a returns list, explicit usage triggers, and an arg explanation. Every sentence adds information without redundancy. It is front-loaded with the primary purpose and remains appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, output schema present) and the description covers purpose, usage scenarios, parameter semantics, and return content. It is self-contained: an agent can confidently decide when to call it and what to expect. No further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines project_id as a required string with no description (schema coverage 0%). The description compensates by explaining that project_id is 'Project identifier or numeric ID', clarifying the accepted input format beyond the raw type. This is valuable additional meaning for the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Get a comprehensive summary of a project in one call.' It lists concrete return components (description, issue counts by status, version milestones, recent activity), which clearly distinguishes it from siblings like get_project or list_projects. This is more specific than a generic tool description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'Use this when someone asks "tell me about this project", "what's the status of X?", or "give me an overview."' This gives clear trigger scenarios. However, it does not mention when not to use it or contrast with a specific alternative like get_project, so it only earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_core_update_issueA
Update an existing issue. Only provided fields are changed.
Args: issue_id: The issue number to update. subject: New title (empty = no change). description: New description (empty = no change). status_id: New status ID (0 = no change). priority_id: New priority ID (0 = no change). assigned_to_id: New assignee user ID (0 = no change). done_ratio: New completion percentage 0-100 (-1 = no change). estimated_hours: New estimate (0 = no change). notes: Add a journal note/comment.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| subject | No | ||
| issue_id | Yes | ||
| status_id | No | ||
| done_ratio | No | ||
| description | No | ||
| priority_id | No | ||
| assigned_to_id | No | ||
| estimated_hours | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explicitly states the partial-update semantics and defines sentinel values for each field (e.g., 'empty = no change', '0 = no change', '-1 = no change'), which is valuable. It does not mention permissions, reversibility, or error behavior, but the core mutation behavior is well explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence summary and follows with a structured Args list. Each line is purposeful, scannable, and free of redundant wording. It covers 9 parameters efficiently without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no schema descriptions, and no annotations, the description provides all necessary invocation details. It explains optionality and sentinel semantics clearly. Since an output schema is indicated to exist, omitting return-value details is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides zero parameter descriptions, so the description fully compensates. Every parameter is explained with its sentinel value and valid range (e.g., 'done_ratio: New completion percentage 0-100 (-1 = no change)'). This adds essential meaning far beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing issue' with a specific verb and resource, and immediately clarifies the partial-update behavior with 'Only provided fields are changed.' This distinguishes it from sibling tools like create_issue and read-only queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear that this tool is for modifying existing issues, not creating or reading them. However, it does not explicitly name alternatives or exclude other scenarios, though the sibling tool names and the verb 'update' make the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_system_feedbackA
Submit feedback about your MCP session quality.
Call this after using Redmineflux tools to help us improve. Your feedback is logged locally and never shared externally.
Args: rating: Quality rating from 1 (poor) to 5 (excellent). comment: Optional comment about what worked or didn't.
| Name | Required | Description | Default |
|---|---|---|---|
| rating | Yes | ||
| comment | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the privacy/behavioral trait that feedback is 'logged locally and never shared externally', which is important context. Since no annotations are provided, the description carries the full burden and handles it well for a simple feedback tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line purpose, a usage directive, and parameter explanations. Every sentence serves a purpose with no redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the description covers purpose, usage, parameter semantics, and a privacy note. The output schema exists, so return value documentation is not necessary, but a brief note on the expected response format or confirmation behavior would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description explains both parameters: rating is a 1-5 quality scale and comment is optional free text. This adds semantic meaning beyond the raw schema types, though it could be more explicit about validation constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Submit') and resource ('feedback about your MCP session quality'). It is distinct from sibling Redmine tools, which focus on project/issue data, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs when to call: 'after using Redmineflux tools'. This provides clear context and differentiates it from other tools, even though no alternatives are named or exclusions given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmineflux_system_onboardA
Get orientation information for the current user.
Use this when someone is new, confused, or asks "where do I start?", "what should I do?", or "help me get started." Returns: who you are, your projects, your assigned tasks, and your teammates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It states that the tool returns 'who you are, your projects, your assigned tasks, and your teammates,' making the output behavior explicit. It does not explicitly label the operation as non-destructive, but the verb 'get' and the orientation nature imply a safe read operation. A score of 4 reflects that it communicates the essential behavior without over-disclosing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two sentences. The first sentence states the purpose, the second provides usage triggers and return contents. Every word adds value, with no redundancy or fluff. It is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple orientation tool with an output schema present, the description is complete. It covers the tool's purpose, when to use it, and what it returns. The output schema can handle structural details of the return value, so the description does not need to elaborate further. The zero-parameter schema also needs no additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is an empty object. The baseline for no parameters is 4, and the description does not need to explain any parameter semantics. It also correctly implies that no arguments are required, aligning with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get orientation information for the current user.' It specifies the resource (orientation info for the current user) and the verb (get), distinguishing it from the sibling CRUD tools that handle specific projects or issues. It also lists exactly what it returns, eliminating ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage triggers: 'Use this when someone is new, confused, or asks "where do I start?", "what should I do?", or "help me get started."' This is clear, contextual guidance on when to invoke this tool, and since no other sibling tool offers similar onboarding orientation, no alternatives are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
21 tool updates
v0.2.0- First observed
redmineflux_core_create_issue - First observed
redmineflux_core_critical_issues - First observed
redmineflux_core_get_current_user - First observed
redmineflux_core_get_issue - First observed
redmineflux_core_get_project - First observed
redmineflux_core_list_issues - First observed
redmineflux_core_list_priorities - First observed
redmineflux_core_list_projects - First observed
redmineflux_core_list_statuses - First observed
redmineflux_core_list_time_entries - First observed
redmineflux_core_list_time_entry_activities - First observed
redmineflux_core_list_trackers - First observed
redmineflux_core_list_users - First observed
redmineflux_core_list_versions - First observed
redmineflux_core_log_time - First observed
redmineflux_core_my_workload - First observed
redmineflux_core_project_stats - First observed
redmineflux_core_project_summary - First observed
redmineflux_core_update_issue - First observed
redmineflux_system_feedback - First observed
redmineflux_system_onboard
TDQS
Scored across 21 tools
Each tool targets a distinct resource and action, from project and issue CRUD to time logging and metadata lookups. Even the analytical tools (project_stats, project_summary, my_workload, critical_issues) have clearly defined, non-overlapping purposes that are well-explained in their descriptions.
Most core tools follow a consistent verb_noun pattern (list_projects, get_issue, create_issue), but a few use noun phrases like project_stats and my_workload, and system tools (onboard, feedback) break the pattern. The shared redmineflux_core_/redmineflux_system_ prefix helps maintain a sense of order.
At 21 tools, the server leans heavy, with several metadata lookup tools (list_statuses, list_trackers, list_priorities, list_time_entry_activities, list_versions) that could potentially be combined. Despite the count, each tool has a clear purpose and the set is scoped to Redmine project management.
The tool surface covers the core issue lifecycle (list, get, create, update) and time tracking, plus project views and useful aggregate summaries. Notable gaps include lack of project creation/update/delete and time entry update/delete, but these are not critical for common Redmine workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server for Redmine project management, enabling tools for managing projects, issues, users, time entries, groups, memberships, versions, wiki, news, attachments, search, and Agile sprints via the Redmine REST API.89211MIT
- FlicenseAqualityDmaintenanceMCP server for Redmine integration, enabling AI assistants to manage issues, upload files, automate workflows, and handle wiki pages.18-
- AlicenseBqualityBmaintenanceMCP server that provides access to the Redmine REST API, enabling issue tracking, project management, and more through natural language.2624MIT
- AlicenseNot gradedqualityCmaintenanceProvides an MCP server for interacting with Redmine's REST API, enabling LLMs to manage issues, projects, users, and time entries.MIT