Skip to content
Esta página fue generada y traducida con asistencia de IA. Si encuentra alguna imprecisión, no dude en ayudar a mejorarla. Editar en GitHub

Servidor MCP ​

OpenPR incluye un servidor MCP (Model Context Protocol) integrado que expone 34 herramientas para que los asistentes de IA gestionen proyectos, incidencias, sprints, etiquetas, comentarios, propuestas y archivos. El servidor soporta tres protocolos de transporte simultáneamente.

Protocolos de Transporte ​

ProtocoloCaso de UsoEndpoint
HTTPIntegraciones web, plugins OpenClawPOST /mcp/rpc
stdioClaude Desktop, Codex, CLI localstdin/stdout JSON-RPC
SSEClientes de streaming, interfaces en tiempo realGET /sse + POST /messages

Multi-Protocolo

En modo HTTP, los tres protocolos están disponibles en un único puerto: /mcp/rpc (HTTP), /sse + /messages (SSE), y /health (verificación de estado).

Configuración ​

Variables de Entorno ​

VariableRequeridoDescripciónEjemplo
OPENPR_API_URLSíURL base del servidor de APIhttp://localhost:3000
OPENPR_BOT_TOKENSíToken de bot con prefijo opr_opr_abc123...
OPENPR_WORKSPACE_IDSíUUID del espacio de trabajo predeterminadoe5166fd1-...

Claude Desktop / Cursor / Codex (stdio) ​

Añade a la configuración de tu cliente 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"
      }
    }
  }
}

Modo HTTP ​

bash
# Start the MCP server
./target/release/mcp-server --transport http --bind-addr 0.0.0.0:8090

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

Modo SSE ​

bash
# 1. Connect SSE stream (returns session endpoint)
curl -N -H "Accept: text/event-stream" http://localhost:8090/sse
# -> event: endpoint
# -> data: /messages?session_id=<uuid>

# 2. POST request to the returned endpoint
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":{}}}'
# -> Response arrives via SSE stream as 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"]

Referencia de Herramientas (34 Herramientas) ​

Proyectos (5) ​

HerramientaParams RequeridosDescripción
projects.list--Listar todos los proyectos en el espacio de trabajo
projects.getproject_idObtener detalles del proyecto con conteo de incidencias
projects.createkey, nameCrear un proyecto
projects.updateproject_idActualizar nombre/descripción
projects.deleteproject_idEliminar un proyecto

Elementos de Trabajo / Incidencias (11) ​

HerramientaParams RequeridosDescripción
work_items.listproject_idListar incidencias en un proyecto
work_items.getwork_item_idObtener incidencia por UUID
work_items.get_by_identifieridentifierObtener por ID legible (p. ej., API-42)
work_items.createproject_id, titleCrear incidencia con estado, prioridad, descripción, assignee_id, due_at, adjuntos opcionales
work_items.updatework_item_idActualizar cualquier campo
work_items.deletework_item_idEliminar una incidencia
work_items.searchqueryBúsqueda de texto completo en todos los proyectos
work_items.add_labelwork_item_id, label_idAñadir una etiqueta
work_items.add_labelswork_item_id, label_idsAñadir múltiples etiquetas
work_items.remove_labelwork_item_id, label_idEliminar una etiqueta
work_items.list_labelswork_item_idListar etiquetas de una incidencia

Comentarios (3) ​

HerramientaParams RequeridosDescripción
comments.creatework_item_id, contentCrear comentario con adjuntos opcionales
comments.listwork_item_idListar comentarios de una incidencia
comments.deletecomment_idEliminar un comentario

Archivos (1) ​

HerramientaParams RequeridosDescripción
files.uploadfilename, content_base64Subir archivo (base64), devuelve URL y nombre de archivo

Etiquetas (5) ​

HerramientaParams RequeridosDescripción
labels.list--Listar todas las etiquetas del espacio de trabajo
labels.list_by_projectproject_idListar etiquetas de un proyecto
labels.createname, colorCrear etiqueta (color: hex, p. ej., #2563eb)
labels.updatelabel_idActualizar nombre/color/descripción
labels.deletelabel_idEliminar una etiqueta

Sprints (4) ​

HerramientaParams RequeridosDescripción
sprints.listproject_idListar sprints en un proyecto
sprints.createproject_id, nameCrear sprint con start_date, end_date opcionales
sprints.updatesprint_idActualizar nombre/fechas/estado
sprints.deletesprint_idEliminar un sprint

Propuestas (3) ​

HerramientaParams RequeridosDescripción
proposals.listproject_idListar propuestas con filtro de estado opcional
proposals.getproposal_idObtener detalles de la propuesta
proposals.createproject_id, title, descriptionCrear una propuesta de gobernanza

Miembros y Búsqueda (2) ​

HerramientaParams RequeridosDescripción
members.list--Listar miembros del espacio de trabajo y roles
search.allqueryBúsqueda global en proyectos, incidencias, comentarios

Formato de Respuesta ​

Todas las respuestas de herramientas MCP siguen esta estructura:

Éxito ​

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

Error ​

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

Autenticación con Token de Bot ​

El servidor MCP se autentica a través de tokens de bot (prefijo opr_). Crea tokens de bot en Configuración del Espacio de Trabajo > Tokens de Bot.

Cada token de bot:

  • Tiene un nombre para mostrar (que aparece en los feeds de actividad)
  • Tiene ámbito en un espacio de trabajo
  • Crea una entidad de usuario bot_mcp para la integridad del registro de auditoría
  • Soporta todas las operaciones de lectura/escritura disponibles para los miembros del espacio de trabajo

Integración con Agentes ​

Para agentes de codificación, OpenPR proporciona:

  • AGENTS.md (apps/mcp-server/AGENTS.md) -- Patrones de flujo de trabajo y ejemplos de herramientas para agentes.
  • Paquete de Habilidades (skills/openpr-mcp/SKILL.md) -- Habilidad gobernada con plantillas de flujo de trabajo y scripts.

Flujo de trabajo recomendado para agentes:

  1. Carga AGENTS.md para la semántica de las herramientas.
  2. Usa tools/list para enumerar las herramientas disponibles en tiempo de ejecución.
  3. Sigue los patrones de flujo de trabajo: buscar -> crear -> etiquetar -> comentar.

Próximos Pasos ​

Released under the Apache-2.0 License.