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_URLURL base del servidor de APIhttp://localhost:3000
OPENPR_BOT_TOKENToken de bot con prefijo opr_opr_abc123...
OPENPR_WORKSPACE_IDUUID 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.