Skip to content
Cette page a été générée et traduite avec l'aide de l'IA. Si vous remarquez des inexactitudes, n'hésitez pas à contribuer. Modifier sur GitHub

Serveur MCP

OpenPR inclut un serveur MCP (Model Context Protocol) intégré qui expose 34 outils permettant aux assistants IA de gérer les projets, problèmes, sprints, étiquettes, commentaires, propositions et fichiers. Le serveur prend en charge trois protocoles de transport simultanément.

Protocoles de transport

ProtocoleCas d'utilisationPoint de terminaison
HTTPIntégrations web, plugins OpenClawPOST /mcp/rpc
stdioClaude Desktop, Codex, CLI localstdin/stdout JSON-RPC
SSEClients streaming, interfaces en temps réelGET /sse + POST /messages

Multi-protocole

En mode HTTP, les trois protocoles sont disponibles sur un seul port : /mcp/rpc (HTTP), /sse + /messages (SSE), et /health (vérification de santé).

Configuration

Variables d'environnement

VariableRequisDescriptionExemple
OPENPR_API_URLOuiURL de base du serveur APIhttp://localhost:3000
OPENPR_BOT_TOKENOuiJeton bot avec préfixe opr_opr_abc123...
OPENPR_WORKSPACE_IDOuiUUID de l'espace de travail par défaute5166fd1-...

Claude Desktop / Cursor / Codex (stdio)

Ajoutez à la configuration de votre client MCP :

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"
      }
    }
  }
}

Mode HTTP

bash
# Démarrer le serveur MCP
./target/release/mcp-server --transport http --bind-addr 0.0.0.0:8090

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

Mode SSE

bash
# 1. Se connecter au flux SSE (retourne le point de terminaison de session)
curl -N -H "Accept: text/event-stream" http://localhost:8090/sse
# -> event: endpoint
# -> data: /messages?session_id=<uuid>

# 2. Envoyer une requête POST au point de terminaison retourné
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":{}}}'
# -> La réponse arrive via le flux SSE comme 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"]

Référence des outils (34 outils)

Projets (5)

OutilParamètres requisDescription
projects.list--Lister tous les projets dans l'espace de travail
projects.getproject_idObtenir les détails du projet avec les comptages de problèmes
projects.createkey, nameCréer un projet
projects.updateproject_idMettre à jour le nom/la description
projects.deleteproject_idSupprimer un projet

Éléments de travail / Problèmes (11)

OutilParamètres requisDescription
work_items.listproject_idLister les problèmes dans un projet
work_items.getwork_item_idObtenir un problème par UUID
work_items.get_by_identifieridentifierObtenir par ID humain (ex. API-42)
work_items.createproject_id, titleCréer un problème avec état, priorité, description, assignee_id, due_at, pièces jointes optionnels
work_items.updatework_item_idMettre à jour n'importe quel champ
work_items.deletework_item_idSupprimer un problème
work_items.searchqueryRecherche plein texte dans tous les projets
work_items.add_labelwork_item_id, label_idAjouter une étiquette
work_items.add_labelswork_item_id, label_idsAjouter plusieurs étiquettes
work_items.remove_labelwork_item_id, label_idRetirer une étiquette
work_items.list_labelswork_item_idLister les étiquettes d'un problème

Commentaires (3)

OutilParamètres requisDescription
comments.creatework_item_id, contentCréer un commentaire avec pièces jointes optionnelles
comments.listwork_item_idLister les commentaires d'un problème
comments.deletecomment_idSupprimer un commentaire

Fichiers (1)

OutilParamètres requisDescription
files.uploadfilename, content_base64Télécharger un fichier (base64), retourne l'URL et le nom de fichier

Étiquettes (5)

OutilParamètres requisDescription
labels.list--Lister toutes les étiquettes de l'espace de travail
labels.list_by_projectproject_idLister les étiquettes d'un projet
labels.createname, colorCréer une étiquette (couleur : hex, ex. #2563eb)
labels.updatelabel_idMettre à jour le nom/la couleur/la description
labels.deletelabel_idSupprimer une étiquette

Sprints (4)

OutilParamètres requisDescription
sprints.listproject_idLister les sprints dans un projet
sprints.createproject_id, nameCréer un sprint avec start_date, end_date optionnels
sprints.updatesprint_idMettre à jour le nom/les dates/le statut
sprints.deletesprint_idSupprimer un sprint

Propositions (3)

OutilParamètres requisDescription
proposals.listproject_idLister les propositions avec filtre de statut optionnel
proposals.getproposal_idObtenir les détails d'une proposition
proposals.createproject_id, title, descriptionCréer une proposition de gouvernance

Membres & Recherche (2)

OutilParamètres requisDescription
members.list--Lister les membres de l'espace de travail et leurs rôles
search.allqueryRecherche globale dans les projets, problèmes, commentaires

Format de réponse

Toutes les réponses des outils MCP suivent cette structure :

Succès

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

Erreur

json
{
  "code": 400,
  "message": "description de l'erreur"
}

Authentification par jeton bot

Le serveur MCP s'authentifie via les jetons bot (préfixe opr_). Créez des jetons bot dans Paramètres de l'espace de travail > Jetons Bot.

Chaque jeton bot :

  • A un nom d'affichage (affiché dans les fils d'activité)
  • Est limité à un espace de travail
  • Crée une entité utilisateur bot_mcp pour l'intégrité de la piste d'audit
  • Prend en charge toutes les opérations de lecture/écriture disponibles pour les membres de l'espace de travail

Intégration des agents

Pour les agents de codage, OpenPR fournit :

  • AGENTS.md (apps/mcp-server/AGENTS.md) -- Patterns de workflow et exemples d'outils pour les agents.
  • Package Skill (skills/openpr-mcp/SKILL.md) -- Skill gouverné avec modèles de workflow et scripts.

Workflow d'agent recommandé :

  1. Charger AGENTS.md pour la sémantique des outils.
  2. Utiliser tools/list pour énumérer les outils disponibles au moment de l'exécution.
  3. Suivre les patterns de workflow : recherche -> créer -> étiqueter -> commenter.

Étapes suivantes

Released under the Apache-2.0 License.