API y servidor MCP

Scrumbo tiene una API REST JSON y un servidor Model Context Protocol (MCP), para que tú (o un asistente de IA como Claude) puedas leer y gestionar boards e historias desde fuera de la aplicación web.

Autenticación

Cada solicitud necesita una clave API personal. Crea una en tu página de cuenta — se muestra una sola vez, así que cópiala de inmediato.

Envíala como token bearer en cada solicitud:

Authorization: Bearer sbo_your_key_here
API REST

La API está disponible en https://scrumbo.com/api/v1 y devuelve JSON. Una clave tiene exactamente tu acceso: solo alcanza proyectos y boards de los que eres propietario, miembro o administrador.

Método Ruta Descripción Acceso necesario
GET/projectsListar los proyectos a los que tienes accesoCualquier clave
GET/projects/:token/boardsListar los boards de un proyectoViewer
GET/boards/:boardidObtener un board con sus estados e historiasViewer
GET/boards/:boardid/statusesListar los estados de un boardViewer
GET/boards/:boardid/storiesListar las historias de un board, opcionalmente filtradas por estado o asignadoViewer
GET/boards/:boardid/stories/:storyidObtener una historiaViewer
POST/boards/:boardid/storiesCrear una historiaEditor
PATCH/boards/:boardid/stories/:storyidActualizar los campos de una historiaEditor
POST/boards/:boardid/stories/:storyid/statusCambiar el estado de una historiaEditor o contributor
DELETE/boards/:boardid/stories/:storyidEliminar una historiaEditor
POST/boards/:boardid/stories/:storyid/commentsAñadir un comentario a una historiaCommenter
Cuenta, facturación y facturas
GET/accountObtener tu cuenta: plan, límites de uso del plan gratuito y datos de facturaciónCualquier clave
GET/invoicesListar tus facturasCualquier clave
GET/invoices/:invoiceid · …/pdfObtener el detalle de una factura, o descargarla en PDFCualquier clave
Banco de horas
GET/projects/:token/hourbank · …/transactionsObtener la configuración y el saldo actual del banco de horas de un proyecto, o su libro de transaccionesViewer
POST…/hourbank/settings · …/entriesConfigurar el banco de horas de un proyecto, o añadirle una compra/ajustePropietario del proyecto
Equipo
GET/teamListar tu equipo interno en todos tus proyectos y feature boardsCualquier clave
Feature boards
GET/featureboardsListar los feature boards a los que pertenecesMiembro del board
POST/featureboardsCrear un feature boardPlan de pago
GET/featureboards/:boardidObtener un feature board con sus features, votos, comentarios y miembrosMiembro del board
POST…/features · …/vote · …/commentsEnviar una feature request, votarla, o añadir un comentarioMiembro del board
PATCH POST DELETE…/features/:featureid · …/statusActualizar, fijar el estado de, o eliminar una feature requestAdministrador del board
DELETE…/comments/:commentidEliminar un comentario de una feature requestAutor del comentario o administrador del board
POST DELETE/featureboards/:boardid/members · …/:userid/admin · …/:userid/externalAñadir, ascender/descender, reclasificar o eliminar un miembro del boardAdministrador del board

«Editor o contributor» también incluye a los developers, que solo pueden cambiar el estado, no editar el texto de la historia.

Ejemplo:

curl https://scrumbo.com/api/v1/boards/123/stories \
  -H "Authorization: Bearer sbo_your_key_here"

curl -X POST https://scrumbo.com/api/v1/boards/123/stories \
  -H "Authorization: Bearer sbo_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"subject": "New story", "story": "Details go here"}'
Parámetros

Los cuerpos de las peticiones son JSON. Todos los parámetros siguientes los aceptan tanto la API REST como la herramienta MCP correspondiente.

Parámetros de ruta
NombreTipoObligatorioDescripción
:token string Token del proyecto, tal como lo devuelve GET /projects.
:boardid integer Id numérico del board, tal como lo devuelve GET /projects/:token/boards.
:storyid integer Id numérico de la story, único dentro de su board.
Parámetros de consulta

GET /boards/:boardid/stories

NombreTipoObligatorioDescripción
status string No Devuelve solo las stories en este estado. Al filtrar no se distinguen mayúsculas y minúsculas.
assigned string No Devuelve solo las stories con este nombre de persona asignada. Al filtrar no se distinguen mayúsculas y minúsculas.
Campos de una story (crear y actualizar)

POST /boards/:boardid/stories · PATCH /boards/:boardid/stories/:storyid

NombreTipoObligatorioDescripción
subject string Al crear Título corto, máximo 500 caracteres. Obligatorio al crear; los valores más largos se rechazan.
story string No Cuerpo de la story. Se permite HTML, pero se sanea en el servidor: las etiquetas y atributos no admitidos se eliminan.
status string No Debe coincidir exactamente con uno de los estados del proyecto, incluidas mayúsculas y minúsculas. Al crear, un estado desconocido o ausente recurre al primer estado del board; al actualizar, un estado desconocido se rechaza.
assigned string No Nombre de la persona asignada, texto libre. Es solo una etiqueta: no vincula la story con una cuenta de Scrumbo.
requester string No Nombre de quien solicitó la story, texto libre.
scope string No Etiqueta de alcance corta, máximo 100 caracteres. Los valores más largos se rechazan.
comment string No Campo de texto libre heredado que se guarda en la propia story. No se muestra en la interfaz web: para añadir un comentario visible, usa el endpoint de comentarios de abajo.
notify boolean No Envía un correo sobre este cambio a quienes siguen el board y la story. Por defecto es false.
  • Cualquier campo que no aparezca aquí se ignora en lugar de rechazarse.
  • Una actualización debe incluir al menos uno de estos campos; solo cambian los campos que envíes.
  • Vincular una story con una cuenta de Scrumbo (el selector de persona asignada) no está disponible a través de la API.
Mover una story

POST /boards/:boardid/stories/:storyid/status

NombreTipoObligatorioDescripción
status string Estado de destino. Debe coincidir exactamente con uno de los estados del proyecto, incluidas mayúsculas y minúsculas.
notify boolean No Envía un correo sobre este cambio a quienes siguen el board y la story. Por defecto es false.
Añadir un comentario

POST /boards/:boardid/stories/:storyid/comments

NombreTipoObligatorioDescripción
comment string Texto del comentario, en texto plano. Se escapa antes de guardarlo, así que el HTML se muestra literalmente en vez de interpretarse.
name string No Nombre de autor que se muestra en el comentario. Por defecto, el nombre de la cuenta de la clave API.
notify boolean No Envía un correo sobre este cambio a quienes siguen el board y la story. Por defecto es false.

Las peticiones rechazadas devuelven el estado HTTP correspondiente (400, 403 o 404) y un cuerpo JSON:

{"error": "subject must be at most 500 characters"}
Servidor MCP

Scrumbo incluye un servidor MCP independiente que expone la API REST como herramientas, para que un asistente compatible con MCP como Claude Desktop o Claude Code pueda usar tus boards directamente. Requiere Node.js 20 o posterior.

Descargar el servidor MCP (ZIP)

  1. Descomprímelo e instala sus dependencias una vez:
    unzip scrumbo-mcp.zip
    cd scrumbo-mcp
    npm install
  2. Crea una clave API en tu página de cuenta y cópiala.
  3. Registra el servidor en tu cliente MCP, por ejemplo:
{
  "mcpServers": {
    "scrumbo": {
      "command": "node",
      "args": ["/absolute/path/to/scrumbo-mcp/index.js"],
      "env": {
        "SCRUMBO_API_KEY": "sbo_your_key_here",
        "SCRUMBO_API_URL": "https://scrumbo.com/api/v1"
      }
    }
  }
}

Herramientas:

DescripciónAcceso necesario
list_projectsCualquier clave
list_boards, get_board, list_stories, get_story, list_statusesViewer
add_commentCommenter
create_story, update_story, move_story, delete_storyEditor
get_account, list_invoices, get_invoice, get_invoice_pdf, get_teamCualquier clave
get_hourbank, list_hourbank_transactionsViewer
save_hourbank_settings, add_hourbank_entryPropietario del proyecto
list_feature_boards, get_feature_board, create_feature, vote_feature, add_feature_commentMiembro del board
create_feature_boardPlan de pago
update_feature, set_feature_status, delete_feature, add_feature_board_member, set_feature_board_member_admin, set_feature_board_member_external, remove_feature_board_memberAdministrador del board
delete_feature_commentAutor del comentario o administrador del board
Ten en cuenta
  • Una clave tiene exactamente tu acceso — quien la tenga puede actuar en tu nombre dentro de ese alcance, así que trátala como una contraseña.
  • Revoca una clave en cualquier momento desde tu página de cuenta; todo lo que la use deja de funcionar de inmediato.
  • El propio servidor MCP no tiene acceso a la base de datos — es un cliente HTTP ligero que nunca tiene más privilegios que la clave que le proporcionas.