Skip to content
Diese Seite wurde mit KI-Unterstützung erstellt und übersetzt. Falls Ihnen Ungenauigkeiten auffallen, helfen Sie gerne bei der Verbesserung. Auf GitHub bearbeiten

MCP-Server

OpenPR enthält einen eingebauten MCP (Model Context Protocol)-Server, der 34 Tools für KI-Assistenten bereitstellt, um Projekte, Issues, Sprints, Labels, Kommentare, Vorschläge und Dateien zu verwalten. Der Server unterstützt gleichzeitig drei Transportprotokolle.

Transportprotokolle

ProtokollAnwendungsfallEndpunkt
HTTPWeb-Integrationen, OpenClaw-PluginsPOST /mcp/rpc
stdioClaude Desktop, Codex, lokale CLIstdin/stdout JSON-RPC
SSEStreaming-Clients, Echtzeit-UIsGET /sse + POST /messages

Multi-Protokoll

Im HTTP-Modus sind alle drei Protokolle auf einem einzigen Port verfügbar: /mcp/rpc (HTTP), /sse + /messages (SSE) und /health (Integritätsprüfung).

Konfiguration

Umgebungsvariablen

VariableErforderlichBeschreibungBeispiel
OPENPR_API_URLJaAPI-Server-Basis-URLhttp://localhost:3000
OPENPR_BOT_TOKENJaBot-Token mit opr_-Präfixopr_abc123...
OPENPR_WORKSPACE_IDJaStandard-Arbeitsbereichs-UUIDe5166fd1-...

Claude Desktop / Cursor / Codex (stdio)

Zur MCP-Client-Konfiguration hinzufügen:

json
{
  "mcpServers": {
    "openpr": {
      "command": "/path/to/mcp-server",
      "args": ["--transport", "stdio"],
      "env": {
        "OPENPR_API_URL": "http://localhost:3000",
        "OPENPR_BOT_TOKEN": "opr_your_token_here",
        "OPENPR_WORKSPACE_ID": "your-workspace-uuid"
      }
    }
  }
}

HTTP-Modus

bash
# Den MCP-Server starten
./target/release/mcp-server --transport http --bind-addr 0.0.0.0:8090

# Überprüfen
curl -X POST http://localhost:8090/mcp/rpc \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

SSE-Modus

bash
# 1. SSE-Stream verbinden (gibt Session-Endpunkt zurück)
curl -N -H "Accept: text/event-stream" http://localhost:8090/sse
# -> event: endpoint
# -> data: /messages?session_id=<uuid>

# 2. Anfrage an den zurückgegebenen Endpunkt senden
curl -X POST "http://localhost:8090/messages?session_id=<uuid>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"projects.list","arguments":{}}}'
# -> Antwort kommt über SSE-Stream als event: message

Docker Compose

yaml
mcp-server:
  build:
    context: .
    dockerfile: Dockerfile.prebuilt
    args:
      APP_BIN: mcp-server
  environment:
    - OPENPR_API_URL=http://api:8080
    - OPENPR_BOT_TOKEN=opr_your_token
    - OPENPR_WORKSPACE_ID=your-workspace-uuid
  ports:
    - "8090:8090"
  command: ["./mcp-server", "--transport", "http", "--bind-addr", "0.0.0.0:8090"]

Tool-Referenz (34 Tools)

Projekte (5)

ToolErforderliche ParameterBeschreibung
projects.list--Alle Projekte im Arbeitsbereich auflisten
projects.getproject_idProjektdetails mit Issue-Zählern abrufen
projects.createkey, nameEin Projekt erstellen
projects.updateproject_idName/Beschreibung aktualisieren
projects.deleteproject_idEin Projekt löschen

Work Items / Issues (11)

ToolErforderliche ParameterBeschreibung
work_items.listproject_idIssues in einem Projekt auflisten
work_items.getwork_item_idIssue nach UUID abrufen
work_items.get_by_identifieridentifierNach menschlicher ID abrufen (z.B. API-42)
work_items.createproject_id, titleIssue mit optionalem Status, Priorität, Beschreibung, assignee_id, due_at, Anhängen erstellen
work_items.updatework_item_idBeliebiges Feld aktualisieren
work_items.deletework_item_idEin Issue löschen
work_items.searchqueryVolltextsuche über alle Projekte
work_items.add_labelwork_item_id, label_idEin Label hinzufügen
work_items.add_labelswork_item_id, label_idsMehrere Labels hinzufügen
work_items.remove_labelwork_item_id, label_idEin Label entfernen
work_items.list_labelswork_item_idLabels eines Issues auflisten

Kommentare (3)

ToolErforderliche ParameterBeschreibung
comments.creatework_item_id, contentKommentar mit optionalen Anhängen erstellen
comments.listwork_item_idKommentare eines Issues auflisten
comments.deletecomment_idEinen Kommentar löschen

Dateien (1)

ToolErforderliche ParameterBeschreibung
files.uploadfilename, content_base64Datei hochladen (base64), gibt URL und Dateiname zurück

Labels (5)

ToolErforderliche ParameterBeschreibung
labels.list--Alle Arbeitsbereichs-Labels auflisten
labels.list_by_projectproject_idLabels eines Projekts auflisten
labels.createname, colorLabel erstellen (Farbe: hex, z.B. #2563eb)
labels.updatelabel_idName/Farbe/Beschreibung aktualisieren
labels.deletelabel_idEin Label löschen

Sprints (4)

ToolErforderliche ParameterBeschreibung
sprints.listproject_idSprints in einem Projekt auflisten
sprints.createproject_id, nameSprint mit optionalen start_date, end_date erstellen
sprints.updatesprint_idName/Daten/Status aktualisieren
sprints.deletesprint_idEinen Sprint löschen

Vorschläge (3)

ToolErforderliche ParameterBeschreibung
proposals.listproject_idVorschläge mit optionalem Statusfilter auflisten
proposals.getproposal_idVorschlagsdetails abrufen
proposals.createproject_id, title, descriptionEinen Governance-Vorschlag erstellen

Mitglieder & Suche (2)

ToolErforderliche ParameterBeschreibung
members.list--Arbeitsbereichsmitglieder und Rollen auflisten
search.allqueryGlobale Suche über Projekte, Issues, Kommentare

Antwortformat

Alle MCP-Tool-Antworten folgen dieser Struktur:

Erfolg

json
{
  "code": 0,
  "message": "success",
  "data": { ... }
}

Fehler

json
{
  "code": 400,
  "message": "error description"
}

Bot-Token-Authentifizierung

Der MCP-Server authentifiziert sich über Bot-Tokens (Präfix opr_). Bot-Tokens in Arbeitsbereich-Einstellungen > Bot-Tokens erstellen.

Jedes Bot-Token:

  • Hat einen Anzeigenamen (wird in Aktivitäts-Feeds angezeigt)
  • Ist auf einen Arbeitsbereich beschränkt
  • Erstellt eine bot_mcp-Benutzerentität für die Prüfpfadintegrität
  • Unterstützt alle Lese-/Schreiboperationen, die Arbeitsbereichsmitgliedern zur Verfügung stehen

Agenten-Integration

Für Coding-Agenten bietet OpenPR:

  • AGENTS.md (apps/mcp-server/AGENTS.md) -- Workflow-Muster und Tool-Beispiele für Agenten.
  • Skill-Paket (skills/openpr-mcp/SKILL.md) -- Verwaltetes Skill mit Workflow-Vorlagen und Skripten.

Empfohlener Agenten-Workflow:

  1. AGENTS.md für Tool-Semantik laden.
  2. tools/list verwenden, um verfügbare Tools zur Laufzeit aufzulisten.
  3. Workflow-Muster befolgen: suchen -> erstellen -> labeln -> kommentieren.

Nächste Schritte

Released under the Apache-2.0 License.