Skip to main content
Glama

mcp-redmine

CI License: MIT Python 3.10+

Ein Model Context Protocol-Server, der Claude (Desktop oder Code) – oder jeden anderen MCP-Client – über seine REST-API mit einer Redmine-Instanz verbindet.

Er stellt 73 Werkzeuge bereit, die praktisch die gesamte stabile Redmine-REST-API abdecken: Vorgänge, Beziehungen, Projekte, Mitgliedschaften, Versionen, Kategorien, Benutzer, Gruppen, Rollen, Wiki, Zeiterfassung, Anhänge, Projektdateien, Neuigkeiten und Suche. Richten Sie Ihren Agenten auf ein Redmine-Projekt und lassen Sie ihn Vorgänge lesen und verwalten, Zeit erfassen, Wiki-Seiten bearbeiten und Benutzer verwalten – alles durch natürliche Konversation.

Funktionen

  • Vollständige Lese-/Schreibabdeckung von Vorgängen, einschließlich Massenaktualisierungen, Beziehungen, Beobachtern und Kommentaren.

  • Projektverwaltung: Projekte erstellen/aktualisieren/archivieren, Mitglieder, Versionen und Kategorien verwalten.

  • Benutzer- und Gruppenverwaltung, bewusst ohne „Benutzer löschen“- oder „Projekt löschen“-Werkzeug – siehe Sicherheit.

  • Wiki, einschließlich verschachtelter Seiten und Dateianhänge.

  • Zeiterfassung, Anhänge, Projektdateien, Neuigkeiten und Volltextsuche.

  • Lesbare Fehler: Jeder Fehler wird als klarer Satz aus Redmines eigener Validierungsantwort zurückgegeben, nicht als roher Stacktrace.

  • Nichts zu betreiben: Ein einzelner Python-Prozess, der über stdio mit Ihrem MCP-Client spricht – keine Datenbank, kein zu hostender Server, kein Docker erforderlich.

Related MCP server: redmine-mcp

Voraussetzungen

  • Python 3.10+

  • Eine Redmine-Instanz mit aktivierter REST-API:

    1. Gehen Sie in Redmine zu Administration → Einstellungen → API und aktivieren Sie „REST-Webservice aktivieren“ (falls nicht bereits aktiviert).

    2. Gehen Sie zu Mein Konto → API-Zugriffsschlüssel und kopieren Sie den Wert.

Installation

Die Distribution wird als mcp-redmine-rest veröffentlicht, und der Befehl, den sie installiert, ist mcp-redmine-rest. Der kürzere Name mcp-redmine auf PyPI gehört zu einem unabhängigen Projekt – installieren Sie nicht dieses, wenn Sie diesen Server erwarten.

Wenn Sie einen KI-Agenten auf dieses Repository verweisen, um die Einrichtung für Sie durchzuführen, ist llms-install.md genau dafür geschrieben.

Mit uv (empfohlen)

uv tool install mcp-redmine-rest

Mit pip

pip install mcp-redmine-rest

Aus dem Quellcode

git clone https://github.com/alsimoes/mcp-redmine-rest.git
cd mcp-redmine-rest

python3 -m venv venv && source venv/bin/activate    # Linux/Mac

pip install -e .

Unter Windows verwenden Sie py und PowerShell anstelle einer Git-Bash/WSL-Shell – das Erstellen oder Neuerstellen der venv aus einer Unix-ähnlichen Shell unter Windows überschreibt venv\pyvenv.cfg mit einem Unix-home-Pfad, und jeder spätere Start von venv\Scripts\python.exe schlägt mit No Python at '/usr/bin\python.exe' (oder ähnlich) fehl:

git clone https://github.com/alsimoes/mcp-redmine-rest.git
cd mcp-redmine-rest

py -3 -m venv venv
.\venv\Scripts\Activate.ps1

pip install -e .

Konfiguration

Der Server liest seine Konfiguration aus Umgebungsvariablen:

Variable

Erforderlich

Beschreibung

REDMINE_URL

Ja

Basis-URL Ihrer Redmine-Instanz (ohne abschließenden Schrägstrich).

REDMINE_API_KEY

Ja

Ihr API-Zugriffsschlüssel, von Mein Konto → API-Zugriffsschlüssel.

REDMINE_TIMEOUT

Nein

Zeitüberschreitung pro Anfrage in Sekunden. Standard: 15.

REDMINE_UPLOAD_ROOTS

Nein

Verzeichnisse, aus denen die Datei-Upload-Werkzeuge lesen dürfen, getrennt durch os.pathsep (; unter Windows, : unter Linux/macOS). Nicht gesetzt = Uploads deaktiviert. Siehe Sicherheit.

Den Schlüssel aus der Client-Konfiguration heraushalten

Fehlende Werte in der Umgebung werden aus einer .env-Datei gelesen, sodass der API-Schlüssel nicht im Klartext in der Konfiguration Ihres MCP-Clients stehen muss. Kopieren Sie .env.example in .env im Repository-Stammverzeichnis und füllen Sie es aus – jede Variable in der obigen Tabelle wird berücksichtigt, sodass der env-Block des Clients vollständig weggelassen werden kann:

REDMINE_URL=https://redmine.example.com
REDMINE_API_KEY=your_api_key_here
REDMINE_TIMEOUT=15

Die Datei ist gitignored. Bereits in der Umgebung vorhandene Variablen gewinnen immer, sodass ein env-Block in der Konfiguration Ihres Clients sie weiterhin überschreibt. Um die Datei woanders zu speichern, setzen Sie REDMINE_ENV_FILE auf ihren vollständigen Pfad.

Dies ist besonders bei Claude Desktop wichtig: Es startet MCP-Server mit einer minimalen Umgebung, die es selbst erstellt, sodass Variablen, die Sie in Ihrer Shell exportieren oder mit setx setzen, den Server nie erreichen. Verwenden Sie den env-Block oder eine .env-Datei.

Claude Desktop

Bearbeiten (oder erstellen) Sie die Konfigurationsdatei von Claude Desktop:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "redmine": {
      "command": "mcp-redmine-rest",
      "env": {
        "REDMINE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your_api_key_here"
      }
    }
  }
}

Wenn Sie aus dem Quellcode statt über uv tool install / pip install installiert haben, zeigen Sie mit command auf den Interpreter in Ihrer virtuellen Umgebung und übergeben Sie das Skript als Argument:

{
  "mcpServers": {
    "redmine": {
      "command": "/full/path/to/mcp-redmine/venv/bin/python",
      "args": ["-m", "mcp_redmine"],
      "env": {
        "REDMINE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your_api_key_here"
      }
    }
  }
}

Unter Windows zeigen Sie mit command auf venv\Scripts\python.exe (mit \\ in JSON maskiert):

{
  "mcpServers": {
    "redmine": {
      "command": "C:\\full\\path\\to\\mcp-redmine\\venv\\Scripts\\python.exe",
      "args": ["-m", "mcp_redmine"],
      "env": {
        "REDMINE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your_api_key_here"
      }
    }
  }
}

Starten Sie Claude Desktop danach neu. Das Werkzeuge-Symbol (🔨) sollte die Redmine-Werkzeuge als verfügbar anzeigen.

Claude Code

claude mcp add redmine \
  --env REDMINE_URL=https://redmine.example.com \
  --env REDMINE_API_KEY=your_api_key_here \
  -- mcp-redmine-rest

Bestätigen Sie mit:

claude mcp list

Cline (VS Code)

Öffnen Sie die MCP-Einstellungen über die Palette – Ctrl+Shift+PCline: Open MCP Config File – oder klicken Sie auf das Zahnrad neben „MCP Servers“ in der Cline-Seitenleiste und wählen Sie Configure MCP Servers. Beides öffnet cline_mcp_settings.json; fügen Sie den Server dort hinzu:

{
  "mcpServers": {
    "redmine": {
      "command": "mcp-redmine-rest",
      "env": {
        "REDMINE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your_api_key_here"
      }
    }
  }
}

Verwenden Sie den Palettenbefehl anstatt die Datei von Hand zu bearbeiten – sie liegt tief im globalen Speicher von VS Code (.../User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json), und der Pfad unterscheidet sich je nach Plattform.

Wenn mcp-redmine-rest nicht im PATH liegt, den VS Code sieht, verwenden Sie stattdessen die Modulform – "command" zeigt auf den Interpreter, auf dem das Paket installiert ist, mit "args": ["-m", "mcp_redmine"], genau wie in den obigen Claude-Desktop-Beispielen.

Laden Sie das Fenster neu (Ctrl+Shift+PDeveloper: Reload Window), und der Server sollte unter „MCP Servers“ als verbunden erscheinen. Eine ausführlichere Anleitung, die die Arbeitsbereichs-.mcp.json und die Add-Server-Oberfläche abdeckt, finden Sie in CLINE_SETUP.md.

Andere MCP-Clients

Jeder Client, der einen lokalen Prozess starten und MCP über stdio sprechen kann, funktioniert auf die gleiche Weise: Führen Sie mcp-redmine-rest (oder python -m mcp_redmine) mit gesetzten REDMINE_URL- und REDMINE_API_KEY-Umgebungsvariablen aus.

Lokal ausführen (optional)

Nützlich für einen schnellen Sanity-Check, bevor Sie den Server in einen Client einbinden:

cp .env.example .env   # then edit .env with your values
export $(grep -v '^#' .env | xargs)   # or use a tool like direnv
mcp-redmine-rest

Wenn kein Verbindungsfehler auftritt, ist der Server bereit – er wartet auf MCP-Nachrichten auf stdin/stdout, sodass es normal ist, wenn im Terminal nichts passiert. Drücken Sie Ctrl+C, um ihn zu stoppen.

Verwendungsbeispiele

Sobald konfiguriert, sprechen Sie einfach mit dem Agenten:

  • „Liste die offenen Vorgänge auf, die mir im Projekt Website zugewiesen sind.“

  • „Erstelle einen Fehler in Website mit dem Titel ‚Login-Button reagiert nicht auf Mobilgeräten‘, Priorität hoch.“

  • „Verschiebe die Vorgänge #101, #104 und #110 auf In Bearbeitung und weise sie Alice zu.“

  • „Erfasse 3,5 Stunden für Vorgang #204 für heute, Aktivität Entwicklung.“

  • „Was steht auf der Wiki-Seite ‚Deployment‘ für das Projekt Infra?“

  • „Suche nach ‚timeout‘ über alle Projekte.“

Verfügbare Werkzeuge

73 Werkzeuge, gruppiert nach Ressource. Die vollständige Referenz – Signaturen, Parameter, Rückgabeform und die wichtigen Hinweise (wie dass precedes Vorgänge neu plant oder dass list_custom_fields einen Administrator erfordert) – finden Sie in docs/TOOLS.md.

Ressource

Werkzeuge

Vorgänge

list_issues, get_issue, create_issue, update_issue, bulk_update_issues, delete_issue, add_watcher, remove_watcher, update_journal_note

Vorgangsbeziehungen

list_issue_relations, create_issue_relation, delete_issue_relation, chain_issues

Projekte

list_projects, get_project, create_project, update_project, archive_project

Projektmitglieder

list_project_members, add_project_member, update_project_member, remove_project_member

Versionen

list_project_versions, create_project_version, update_version, delete_version

Kategorien

list_project_categories, create_project_category, update_project_category, delete_project_category

Benutzer

get_current_user, list_users, get_user, create_user, update_user, update_my_account

Gruppen

list_groups, get_group, create_group, update_group, delete_group, add_user_to_group, remove_user_from_group

Rollen

list_roles, get_role

Wiki

list_wiki_pages, get_wiki_page, create_or_update_wiki_page, attach_file_to_wiki_page, delete_wiki_page

Zeiterfassung

list_time_entries, get_time_entry, log_time, update_time_entry, delete_time_entry, list_time_entry_activities

Anhänge

attach_file_to_issue, get_attachment, update_attachment, delete_attachment

Projektdateien

list_project_files, upload_project_file

Neuigkeiten

list_news, get_news_item, create_news, update_news, delete_news

Suche

search, list_saved_queries

Metadaten

list_statuses_and_priorities, list_trackers, list_custom_fields, list_document_categories

API-Abdeckung

Redmine-API-Ressource

Status

Issues

Vollständig (Liste, Lesen, Erstellen, Aktualisieren, Bulk, Löschen, Beobachter)

Issue relations

Vollständig

Projects

Vollständig außer Löschen

Project members

Vollständig

Versions

Vollständig

Issue categories

Vollständig

Users

Vollständig außer Löschen

Groups

Vollständig

Roles

Vollständig (die API ist schreibgeschützt)

Wiki

Vollständig, einschließlich Verschachtelung und Anhänge

Attachments

Vollständig

Project files

Vollständig

News

Vollständig

Time tracking

Vollständig

Search and saved queries

Vollständig

Trackers, statuses, priorities, activities, custom fields

Vollständig (die API ist schreibgeschützt)

Document categories

Vollständig (die API ist schreibgeschützt)

Die beiden Auslassungen sind beabsichtigt. delete_project und delete_user sind irreversibel und ziehen den Inhalt anderer Personen mit sich — Issues, Zeiteinträge, Wiki-Seiten, Autorenschaft. archive_project und update_user mit status=3 decken den realen Anwendungsfall reversibel ab. Das tatsächliche Löschen bleibt eine Web-UI-Operation, bei der die Bestätigung explizit und menschlich ist. Siehe SECURITY.md für die vollständige Begründung.

Trackers, Issue-Status, Prioritäten und Rollen haben in der Redmine-API keine Schreiboperationen — sie sind nur in der Administration konfigurierbar. Das ist keine Lücke in diesem Server.

Außerhalb der stabilen REST-API und damit außerhalb des Anwendungsbereichs dieses Servers liegen: Repositorys und Changesets, Wiki-Seitenschutz und instanzweite Einstellungsbildschirme.

Fehlermeldungen

Fehler werden zentral behandelt: Wenn Redmine einen Aufruf ablehnt, liest der Server den Antworttext — dort steht die eigentliche Erklärung im errors-Feld — und gibt diesen Satz zurück. Ohne einen brauchbaren Text fällt er auf den HTTP-Status mit einem wahrscheinlichen Grund zurück:

Status

Meldung

401

ungültiger oder fehlender API-Schlüssel

403

nicht erlaubt, diese Operation auszuführen, oder das Modul ist für dieses Projekt deaktiviert

404

nicht gefunden (prüfen Sie die ID, oder dieser Endpunkt existiert möglicherweise nicht in dieser Redmine-Version)

409

Konflikt — die Ressource wurde von jemand anderem geändert

422

Redmine hat die Daten bei der Validierung abgelehnt

Dies gilt für jedes Tool, ob lesend oder schreibend.

Fehlerbehebung

  • „REDMINE_URL und REDMINE_API_KEY müssen gesetzt sein“: Der Server prüft seine Konfiguration beim Start und beendet sich sofort mit dieser Meldung, anstatt defekt zu starten. Überprüfen Sie den env-Block in der Konfiguration Ihres MCP-Clients.

  • Jeder Aufruf schlägt mit einem Netzwerkfehler fehl: Stellen Sie sicher, dass der Serverprozess tatsächlich REDMINE_URL erreichen kann — MCP-Clients führen den Server als lokalen Prozess aus, daher benötigt er denselben Netzwerkzugriff wie Ihr Rechner, nicht der Browser.

  • 401 bei jedem Aufruf: Der API-Schlüssel ist falsch, oder „REST-Webservice aktivieren“ ist in den Redmine-Einstellungen deaktiviert.

  • 403 bei einem bestimmten Tool: Meistens fehlt eine Berechtigung für die Rolle des Benutzers, dem der API-Schlüssel gehört. get_role zeigt genau, welche Berechtigungen eine Rolle hat.

  • Ein Tool antwortet mit 404, obwohl Sie es erwarten würden: Einige Endpunkte (update_journal_note, update_news/delete_news, update_attachment) wurden in bestimmten Redmine-Versionen hinzugefügt — siehe docs/TOOLS.md für die Mindestversion jedes Endpunkts.

Sicherheit

Siehe SECURITY.md für das vollständige Modell. Kurz gesagt: Ein API-Schlüssel gewährt Zugriff, der dem Benutzer entspricht, dem er gehört. Erstellen Sie daher einen dedizierten Redmine-Benutzer mit einer Rolle, die auf das eingeschränkt ist, was der Agent tun soll, und verwenden Sie den Schlüssel dieses Benutzers — versuchen Sie nicht, den Agenten durch Bearbeiten des Codes dieses Servers einzuschränken.

Datei-Uploads sind deaktiviert, bis Sie REDMINE_UPLOAD_ROOTS setzen. Die drei Tools, die eine lokale Datei hochladen (attach_file_to_issue, attach_file_to_wiki_page, upload_project_file) verweigern standardmäßig jeden Pfad, genau weil ein Agent durch injizierten Inhalt (einen Issue-Kommentar, eine Wiki-Seite) dazu verleitet werden kann, eine Datei hochzuladen, die er nie lesen sollte. Siehe SECURITY.md.

Mitwirken

Siehe CONTRIBUTING.md.

Lizenz

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
3Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server providing 63 tools to interact with Redmine instances, covering issues, projects, time entries, and wiki pages. It utilizes streamable HTTP transport and supports per-client authentication for secure management of Redmine resources.
    20
  • A
    license
    Not graded
    quality
    A
    maintenance
    A stateless MCP server for Redmine that allows users to interact with issues, time entries, wiki, projects, and more via their own API keys.
    4
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP 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.
    89
    8
    1
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alsimoes/mcp-redmine-rest'

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