{"id":"runekaagaard-mcp-redmine","name":"mcp-redmine","homepage":null,"repo_url":"https://github.com/runekaagaard/mcp-redmine","category":"infrastructure","subcategories":[],"tags":["mcp","redmine","python","ai-agents","project-management","httpx","attachments","api-integration"],"what_it_does":"mcp-redmine is an MCP server that connects an AI client (e.g., Claude Desktop) to a Redmine instance, exposing tools to browse/search Redmine projects and issues, create/update issues, manage time entries, and upload/download attachment files, using Redmine’s OpenAPI coverage and httpx for HTTP requests.","use_cases":["AI-assisted triage of Redmine issues (search/filter by status/priority/assignee)","Creating and updating Redmine issues from natural language","Logging time entries and updating related issue fields","Uploading and downloading Redmine attachments with path allowlisting","Interactive exploration of Redmine API endpoints via MCP path listing/introspection"],"not_for":["Publicly exposing the MCP server without network controls","Environments where you cannot safely handle an API key (no secure secret management)","Use cases requiring strict enterprise compliance guarantees not documented by the project"],"best_when":"You want an agent to operate Redmine workflows end-to-end (read/update) from a controlled environment with an allowlisted filesystem for attachment operations.","avoid_when":"You cannot set REDMINE_ALLOWED_DIRECTORIES for any attachment upload/download or you plan to run with REDMINE_DANGEROUSLY_ACCEPT_INVALID_CERTS enabled.","alternatives":["Direct Redmine REST API with your own application logic","Other Redmine integration tools or agent connectors (if available)","Building a custom MCP server around Redmine’s API using httpx and an OpenAPI client"],"af_score":66.2,"security_score":61.8,"reliability_score":37.5,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T13:41:03.070686+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["Redmine API key via REDMINE_API_KEY header (implied)"],"oauth":false,"scopes":false,"notes":"Uses a Redmine API key provided via environment variable. The tool likely sends it with each request; no OAuth flow or fine-grained token scopes are described in the README."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"No pricing information; appears to be a self-hosted open-source MCP server."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":66.2,"security_score":61.8,"reliability_score":37.5,"mcp_server_quality":80.0,"documentation_accuracy":78.0,"error_message_quality":null,"error_message_notes":"README examples show an error field (often empty string) and status_code/body; retry/idempotency behavior is not documented.","auth_complexity":90.0,"rate_limit_clarity":20.0,"tls_enforcement":85.0,"auth_strength":70.0,"scope_granularity":20.0,"dependency_hygiene":55.0,"secret_handling":75.0,"security_notes":"Security strengths: attachment access is gated by REDMINE_ALLOWED_DIRECTORIES with an explicit path traversal protection note (resolves ../ before validation) and uploads/downloads are disabled if not set. TLS: there is an option to disable certificate verification (REDMINE_DANGEROUSLY_ACCEPT_INVALID_CERTS), which reduces security if misused—default is disabled. Auth: API key usage is supported, but there is no documented fine-grained scope/permission model in the MCP server itself. Rate limiting, logging behavior, and secret-redaction guarantees are not described.","uptime_documented":20.0,"version_stability":55.0,"breaking_changes_history":30.0,"error_recovery":45.0,"idempotency_support":"false","idempotency_notes":"No explicit guidance on which operations are safe to retry (e.g., issue creation/update, uploads).","pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["File operations are disabled unless REDMINE_ALLOWED_DIRECTORIES is set.","Path safety relies on allowed directories; ensure save_path/file_path are within the allowlist to avoid failures.","When using Docker, REDMINE_REQUEST_INSTRUCTIONS must reference a path inside the container, not the host path.","Responses can be YAML or JSON depending on REDMINE_RESPONSE_FORMAT; agents should parse accordingly."]}}