Skip to main content
Glama

Oboe MCP

Flujos de trabajo estructurados uno a uno (one-by-one) para agentes de codificación.

Servidor MCP para flujos de trabajo de revisión duraderos uno a uno, con estado de sesión priorizado para agentes de codificación.

Proporciona 16 herramientas para crear, navegar y resolver elementos en archivos de sesión con puntuación de prioridad, incluyendo el manejo de elementos bloqueados, actualizaciones de aprobación de primer nivel y sesiones secundarias anidadas, para que los flujos de trabajo /obo puedan usar operaciones MCP en lugar de ediciones JSON manuales.

Licenciado bajo AGPL-3.0-or-later con licencia comercial disponible. Consulta LICENSE para conocer los términos completos.

Paquete PyPI

Instala o ejecuta Oboe MCP directamente desde PyPI usando cualquiera de estas alternativas:

  • Ejecútalo sin instalar: uvx oboe-mcp

  • Instálalo en tu entorno actual: pip install oboe-mcp

Instalar oboe-mcp también instala el comando oboe-cli:

# After pip install oboe-mcp
oboe-cli --help

# From PyPI 
uvx --from oboe-mcp oboe-cli --help

# From a local checkout (no install needed)
uvx --from /path/to/oboe-mcp oboe-cli --help

Referencia de CLI (oboe-cli)

Instalar oboe-mcp también instala oboe-cli, un compañero de línea de comandos amigable para el usuario para los mismos archivos de sesión en los que operan las herramientas MCP.

oboe-cli [--session SESSION] [--base-dir DIR] COMMAND [ARGS...]

Opciones globales:

Opción

Descripción

--session SESSION, -s

Nombre del archivo de sesión (p. ej. session_20260411_120000.json) o ruta absoluta

--base-dir DIR, -b

Raíz del proyecto que contiene .github/obo_sessions/ (por defecto detecta el CWD)

Autodetección de base-dir: cuando se omite --base-dir, oboe-cli utiliza el directorio de trabajo actual si contiene una carpeta .github/obo_sessions/, de lo contrario, vuelve al directorio de trabajo tal cual.

Comandos

Comando

Descripción

sessions

Lista todas las sesiones (admite --status active|paused|completed|incomplete)

status

Muestra estadísticas de resumen de la sesión

create

Crea una nueva sesión a partir de un archivo JSON de elementos

merge

Añade nuevos elementos a una sesión existente

complete-session

Marca toda la sesión como completada

list

Lista los elementos, ordenados por puntuación de prioridad (admite filtro --status)

next

Muestra el siguiente elemento accionable

show ITEM_ID

Muestra detalles completos de un elemento

complete ITEM_ID RESOLUTION...

Marca un elemento como completado

skip ITEM_ID [REASON...]

Marca un elemento como omitido

in-progress ITEM_ID

Marca un elemento como en progreso

block ITEM_ID BLOCKER...

Marca un elemento como bloqueado

approve ITEM_ID approved|denied|unreviewed

Establece metadatos de aprobación

update ITEM_ID FIELD VALUE

Actualiza un solo campo en un elemento

create-child --child-session FILE

Crea una sesión secundaria y pausa la principal

complete-child [RESOLUTION...]

Completa una sesión secundaria y reanuda la principal

Inicio rápido

# Create a session from a JSON items file
oboe-cli --base-dir /path/to/project create \
    --title "Code review findings" \
    --input-file findings.json

# List sessions
oboe-cli --base-dir /path/to/project sessions

# Work through items
oboe-cli --base-dir /path/to/project --session session_20260411_120000.json next
oboe-cli --base-dir /path/to/project --session session_20260411_120000.json \
    in-progress 1
oboe-cli --base-dir /path/to/project --session session_20260411_120000.json \
    complete 1 "Fixed the validation bug"

Nota: el script obo_helper.py enviado en versiones anteriores es ahora un delgado adaptador de obsolescencia que delega en oboe-cli.

Herramienta

Descripción

obo_create

Crea archivo de sesión + actualiza index.json atómicamente

obo_list_sessions

Lista sesiones desde index.json

obo_session_status

Estadísticas de resumen para una sesión

obo_next

Siguiente elemento: in_progress primero, luego pendiente de mayor prioridad, luego diferido

obo_list_items

Todos los elementos ordenados por priority_score desc

obo_get_item

Detalle completo para un elemento

obo_mark_blocked

Marca un elemento como bloqueado y almacena información del bloqueador

obo_mark_complete

Marca elemento completado con texto de resolución

obo_mark_in_progress

Marca elemento en progreso

obo_mark_skip

Marca elemento omitido

obo_set_approval

Establece metadatos de aprobación y estado de ciclo de vida opcional

obo_complete_session

Marca una sesión completada cuando no quedan elementos accionables

obo_create_child_session

Crea una sesión secundaria, pausa la principal y entra en la secundaria

obo_complete_child_session

Completa una sesión secundaria y reanuda la principal

obo_merge_items

Añade nuevos elementos a una sesión existente y la reactiva

obo_update_field

Actualiza cualquier campo; recalcula automáticamente priority_score

Por qué las sesiones OBO

Las sesiones One-by-One no son solo notas de chat guardadas. Son un modelo de flujo de trabajo para manejar el trabajo de múltiples elementos como una sesión de interacción duradera y ordenada.

En comparación con el chat simple o las preguntas de seguimiento integradas de un agente, OBO añade capacidades que esos modos de interacción más ligeros no suelen proporcionar:

  • un flujo de trabajo centrado en la visión general, donde el agente puede comenzar con el alcance, el recuento de elementos, las categorías principales y el orden de ejecución propuesto

  • repriorización explícita basada en urgencia, importancia, esfuerzo y presión de dependencia en lugar de cualquier orden que haya aparecido en el chat

  • estados de ciclo de vida duraderos a través de pending, in_progress, deferred, blocked, completed y skipped

  • metadatos de aprobación separados a través de approval_status, approval_mode, approved_at y approval_note

  • metadatos de bloqueador almacenados para que el trabajo bloqueado siga siendo visible y explicable en lugar de desaparecer silenciosamente de la cola activa

  • sesiones secundarias anidadas que pausan una sesión principal, manejan un subproblema y luego reanudan la sesión principal limpiamente

  • gestión del ciclo de vida de la sesión de primer nivel: listar, crear, inspeccionar, fusionar, pausar, reanudar y cerrar sesiones como objetos de flujo de trabajo con nombre

  • recuperación determinista después de reinicios del modelo, recargas del editor o traspaso de agentes

  • un registro de auditoría legible por máquina en archivos de sesión en lugar de depender de la memoria conversacional

Esto es más importante cuando el trabajo abarca muchos hallazgos, requiere aprobaciones explícitas del usuario, depende de subinvestigaciones intermedias o debe sobrevivir a varios turnos del agente. El chat es bueno para la conversación. Una herramienta de preguntas estructurada es buena para obtener una respuesta limpia en el turno actual. OBO es para la orquestación de flujos de trabajo duraderos.

Usa OBO cuando necesites un manejo secuencial controlado, estado de cola duradero o subtrabajo anidado. Usa el chat simple cuando la tarea sea lo suficientemente pequeña como para que un objeto de flujo de trabajo completo añada más carga que valor.

Modelo de estado

OBO rastrea cada elemento en dos ejes independientes.

Eje de ciclo de vida

  • pending: el trabajo está en cola pero aún no ha comenzado

  • in_progress: el trabajo se está realizando activamente ahora

  • deferred: el trabajo está aprobado para una ejecución posterior y debe permanecer fuera de la cola de revisión inmediata hasta que se agote la pasada de revisión activa o el usuario solicite explícitamente el trabajo diferido

  • blocked: el trabajo no puede continuar hasta que se resuelva una dependencia externa o un subproblema

  • completed: el trabajo está terminado y cerrado

  • skipped: el trabajo no se está ejecutando intencionalmente

Eje de aprobación

  • unreviewed: aún no se ha registrado ninguna decisión explícita del usuario

  • approved: el usuario ha autorizado el trabajo

  • denied: el usuario ha rechazado explícitamente el trabajo

Campos de metadatos de aprobación:

  • approval_status: decisión de aprobación para el elemento

  • approval_mode: immediate o delayed cuando se registró una decisión de tiempo de aprobación

  • approved_at: marca de tiempo de cuándo se registró la aprobación

  • approval_note: nota de texto libre opcional sobre la decisión de aprobación

Emparejamientos comunes:

  • Aprobar inmediato: llama a obo_set_approval(..., approval_status="approved", approval_mode="immediate"); el elemento normalmente permanece pending hasta que comienza el trabajo o se mueve a in_progress

  • Aprobar diferido: llama a obo_set_approval(..., approval_status="approved", approval_mode="delayed"); esto registra la aprobación diferida y mueve el elemento a deferred

  • Denegar: establece approval_status=denied; si el elemento se está cerrando fuera de la cola, empareja con status=skipped

Modos de interacción

Los tres patrones de interacción comunes son el chat simple, una herramienta de preguntas estructurada y una sesión OBO completa. Resuelven problemas diferentes.

Chat estándar

Interacción estilo askQuestions

Sesión One-by-One

Mejor para tareas pequeñas y rápidas de ida y vuelta donde el estado puede permanecer en la conversación.

Mejor cuando el agente necesita que el usuario elija entre un conjunto corto de opciones en el turno actual.

Mejor cuando el trabajo involucra múltiples hallazgos o decisiones que deben ser rastreadas, reanudadas, reordenadas, bloqueadas, anidadas o aprobadas un elemento a la vez.

El estado es mayormente conversacional y puede volverse difícil de recuperar después de una sesión larga.

El estado sigue siendo mayormente conversacional; la herramienta de preguntas mejora la calidad de la entrada pero no proporciona un estado de flujo de trabajo duradero por sí misma.

El estado se persiste en .github/obo_sessions/, por lo que otra sesión u otro agente puede reanudar limpiamente con un estado explícito de elemento y sesión.

Buen ejemplo: "renombra esta función" o "explica este error".

Buen ejemplo: "¿reanudar, fusionar, reemplazar o detener?"

Buen ejemplo: "revisa estos 12 hallazgos uno por uno y espera la aprobación en cada uno".

Beneficio principal: menor fricción.

Beneficio principal: decisiones de usuario más claras y menos respuestas ambiguas.

Beneficio principal: gestión de cola duradera, bloqueadores explícitos, subsesiones anidadas y recuperación determinista a través de muchos elementos.

Ejemplo de progresión:

  • Chat estándar: un agente enumera varios hallazgos en prosa y la conversación misma se convierte en el único registro de lo que se manejó.

  • askQuestions: el agente puede pedir una elección de menú limpia, pero aún no tiene una cola de elementos persistente a menos que la almacene en otro lugar.

  • Sesión OBO: el agente comienza con una visión general, almacena la lista completa de elementos, la ordena intencionalmente, registra aprobaciones, omisiones y bloqueadores, y puede reanudar más tarde sin reconstruir la sesión a partir del historial de chat.

Ejemplo de juguete: Cinco elementos de revisión

Supongamos que un agente revisa una pequeña aplicación de tareas de juguete y encuentra cinco elementos en este orden de descubrimiento original:

  1. Mejorar una etiqueta de configuración ambigua en la interfaz de usuario.

  2. Resolver una condición de carrera en el trabajo de sincronización en segundo plano.

  3. Añadir una prueba de regresión para IDs de tarea duplicados.

  4. Añadir validación de entrada faltante en el endpoint de creación de tareas.

  5. Corregir el registro de contraseñas en el manejador de inicio de sesión.

Chat estándar

Agente:

Encontré cinco problemas en la aplicación de juguete: Problema 1: Mejorar una etiqueta de configuración ambigua en la interfaz de usuario. Problema 2: Resolver una condición de carrera en el trabajo de sincronización en segundo plano. Problema 3: Añadir una prueba de regresión para IDs de tarea duplicados. Problema 4: Añadir validación de entrada faltante en el endpoint de creación de tareas. Problema 5: Corregir el registro de contraseñas en el manejador de inicio de sesión.

¿Qué quieres hacer a continuación?

Usuario:

Haz 4 y 2 primero.

Comentario:

  • Esto es rápido, pero el chat mismo se convierte en el único registro de la secuencia, la dependencia entre los elementos 4 y 3 es implícita.

  • El estado de los otros problemas no se captura, y el usuario deberá solicitar explícitamente que el agente muestre o trabaje en los otros problemas.

  • Si la sesión se interrumpe, otro agente tendría que reconstruir el estado a partir de la transcripción.

Chat estilo askQuestions

Agente:

Encontré cinco problemas. ¿Cuál deberíamos hacer primero?

Opciones: • 4. Añadir validación de entrada faltante en el endpoint de creación de tareas • 2. Resolver una condición de carrera en el trabajo de sincronización en segundo plano • 5. Corregir el registro de contraseñas en el manejador de inicio de sesión • 3. Añadir una prueba de regresión para IDs de tarea duplicados • 1. Mejorar una etiqueta de configuración ambigua en la interfaz de usuario

Usuario:

4

Agente:

¿Siguiente acción?

Opciones: • Continuar con 2 • Reordenar la lista restante • Detener

Comentario:

  • Esto da opciones de usuario más limpias que el chat simple, pero la herramienta aún no crea un objeto de flujo de trabajo duradero y consciente de las dependencias por sí misma.

  • El estado de los otros problemas aún no se captura, y el usuario deberá solicitar explícitamente que el agente muestre o trabaje en los otros problemas.

  • Del mismo modo, si la sesión se interrumpe, otro agente tendría que reconstruir el estado a partir de la transcripción.

Sesión One-by-One

Siguiendo las instrucciones del prompt del agente OBO, el agente asigna esta lógica de ordenamiento:

  • El elemento 4 va primero porque el comportamiento del endpoint de creación de tareas debe estabilizarse antes de que se escriba la prueba de regresión de seguimiento.

  • El elemento 2 viene después porque la condición de carrera puede afectar la corrección a través del flujo de sincronización y puede requerir una sesión de investigación anidada.

  • El elemento 5 sigue porque es una corrección de seguridad importante, pero no bloquea el trabajo de validación y concurrencia.

  • El elemento 3 se queda detrás del elemento 4 porque la prueba de regresión debería fijar el comportamiento de validación final en lugar de precederlo.

  • El elemento 1 sigue siendo útil, pero tiene poco impacto en comparación con los otros cuatro elementos, por lo que va al final.

Agente:

Creé una sesión OBO para 5 hallazgos.

Resumen ejecutivo: • Total de elementos: 5 • Categorías: 1 corrección de API, 1 concurrencia, 1 seguridad, 1 pruebas, 1 UX • Orden de prioridad: 4, 2, 5, 3, 1 • Esfuerzo estimado: 11 • Elementos críticos: 3 • Nota de dependencia: el elemento 3 sigue al elemento 4 para que la prueba de regresión

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/Warnes-Innovations/obo-mcp'

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