Skip to main content
Glama
backloghq

backlog

by backloghq

backlog

GitHub stars License: MIT CI Docs

Gestión de tareas persistente y entre sesiones para Claude Code. Las tareas sobreviven a las sesiones para que el trabajo iniciado por un agente pueda ser retomado por otro.

Construido sobre @backloghq/agentdb — esquemas tipados, IDs de incremento automático, filtros virtuales, almacenamiento de blobs. TypeScript puro, sin dependencias nativas.

Instalación

/plugin marketplace add backloghq/backlog
/plugin install backlog@backloghq-backlog

Desde el código fuente

git clone https://github.com/backloghq/backlog.git
cd backlog && npm install && npm run build
claude --plugin-dir /path/to/backlog

Servidor MCP independiente

Añádelo al archivo .claude/settings.json de tu proyecto:

{
  "mcpServers": {
    "backlog": {
      "command": "node",
      "args": ["/path/to/agent-teams-task-mcp/dist/index.js"],
      "env": {
        "TASKDATA": "/path/to/task-data"
      }
    }
  }
}

Related MCP server: Vibe Board VE

Habilidades

Habilidad

Descripción

/backlog:tasks

Muestra el backlog actual: tareas pendientes, activas, bloqueadas y vencidas

/backlog:plan

Desglosa un objetivo en tareas con dependencias, prioridades y especificaciones

/backlog:standup

Reunión diaria: hecho, en progreso, bloqueado, siguiente

/backlog:refine

Organiza el backlog: corrige tareas vagas, prioridades faltantes, dependencias rotas, elementos obsoletos

/backlog:spec

Escribe un documento de especificación para una tarea antes de su implementación

/backlog:implement

Toma una tarea, lee su especificación, impleméntala y márcala como hecha

/backlog:handoff

Prepárate para la siguiente sesión: anota el progreso, detén las tareas activas, resume el estado

Agente

El agente task-planner puede ser invocado automáticamente por Claude cuando alguien necesita planificar trabajo. Lee la base de código, descompone los objetivos en tareas con dependencias y escribe especificaciones para elementos complejos.

Hooks

Evento

Qué hace

SessionStart

Muestra el recuento de tareas pendientes cuando comienza una sesión

TaskCreated

Sincroniza las tareas integradas de Claude con el backlog persistente

TaskCompleted

Marca la tarea de backlog correspondiente como hecha cuando Claude completa una tarea integrada

SubagentStart

Asigna automáticamente las tareas pendientes no asignadas al agente generado

Herramientas (MCP)

Herramientas para la gestión completa del ciclo de vida de las tareas:

Herramienta

Descripción

task_list

Consulta tareas con sintaxis de filtro. Devuelve un array JSON con todos los campos.

task_count

Cuenta las tareas que coinciden con un filtro. Misma sintaxis que task_list.

task_add

Crea una nueva tarea pendiente. Solo se requiere la descripción; todos los demás campos son opcionales.

task_log

Registra trabajo ya completado directamente en estado completado.

task_modify

Actualización parcial de una o más tareas que coinciden con un filtro. Solo cambian los campos proporcionados.

task_duplicate

Copia una tarea existente con anulaciones de campo opcionales.

task_done

Marca una tarea como completada con la marca de tiempo final.

task_delete

Eliminación lógica de una tarea. Restaurable con task_undo. Usa task_purge para eliminar permanentemente.

task_annotate

Añade una nota con marca de tiempo. Usa task_doc_write para contenido más largo.

task_denotate

Elimina una anotación por coincidencia exacta de texto.

task_start

Marca una tarea como en proceso. Visible en consultas +ACTIVE.

task_stop

Deja de trabajar en una tarea. La devuelve al estado pendiente.

task_undo

Deshace la operación más reciente. Se puede llamar repetidamente.

task_info

Obtiene los detalles JSON completos de una sola tarea por ID o UUID.

task_import

Crea tareas de forma masiva desde un array JSON. Operación por lotes atómica.

task_purge

Elimina permanentemente una tarea eliminada. Irreversible.

task_doc_write

Adjunta/reemplaza un documento markdown en una tarea (especificaciones, notas, contexto).

task_doc_read

Lee el documento markdown adjunto a una tarea.

task_doc_delete

Elimina el documento de una tarea. Permanente.

task_archive

Mueve tareas antiguas completadas/eliminadas a segmentos de archivo trimestrales.

task_archive_list

Lista los segmentos de archivo disponibles.

task_archive_load

Carga tareas archivadas para inspección de solo lectura.

task_projects

Lista nombres de proyectos con tareas pendientes/recurrentes.

task_tags

Lista etiquetas con tareas pendientes/recurrentes.

Sintaxis de filtro

status:pending                    # all pending tasks
project:backend +bug              # bugs in backend project
priority:H due.before:friday      # high priority due before friday
+OVERDUE                          # overdue tasks
+ACTIVE                           # tasks currently being worked on
+BLOCKED                          # tasks blocked by dependencies
+READY                            # actionable tasks (past scheduled date)
agent:explorer                    # tasks assigned to the explorer agent
( project:web or project:api )    # boolean with parentheses
description.contains:auth         # substring match

Admite modificadores de atributos (.before, .after, .by, .has, .not, .none, .any, .startswith, .endswith), etiquetas (+tag, -tag), etiquetas virtuales (+OVERDUE, +ACTIVE, +BLOCKED, +READY, +TAGGED, +ANNOTATED, etc.) y operadores booleanos (and, or).

Documentos de tarea

Adjunta documentos markdown (especificaciones, contexto, notas de traspaso) a cualquier tarea:

task_doc_write  id:"1"  content:"# Spec\n\nBuild the auth flow.\n"
task_doc_read   id:"1"
task_doc_delete id:"1"

Escribir un documento añade una etiqueta +doc y has_doc:yes, para que los agentes puedan descubrir tareas con documentos:

task_list filter:"+doc"
task_list filter:"has_doc:yes"

Identidad del agente

Las tareas admiten un campo agent para rastrear qué agente posee una tarea:

task_add  description:"Investigate bug"  agent:"explorer"
task_list filter:"agent:explorer status:pending"

Aislamiento de proyectos

Cada proyecto obtiene sus propios datos de tareas automáticamente. Cuando se usa como plugin, los datos de las tareas residen en ~/.claude/plugins/data/backlog/projects/<project-slug>/. Cuando se usa de forma independiente, establece TASKDATA explícitamente.

Variable

Descripción

TASKDATA

Ruta explícita al directorio de datos de tareas (anula la derivación automática)

TASKDATA_ROOT

Directorio raíz para datos de tareas por proyecto derivados automáticamente

BACKLOG_NAMESPACE

Nombre de colección explícito (predeterminado: tasks)

BACKLOG_AUTO_NAMESPACE

Establecer en true para derivar el nombre de la colección desde CWD

BACKLOG_AGENT_ID

ID de agente para soporte de escritura múltiple (Claude, Gemini, etc.)

BACKLOG_BACKEND

Backend de almacenamiento: omitir para sistema de archivos (predeterminado), s3 para Amazon S3

BACKLOG_S3_BUCKET

Nombre del bucket S3 (requerido cuando BACKLOG_BACKEND=s3)

BACKLOG_S3_REGION

Región de AWS (opcional si se usan credenciales predeterminadas)

Soporte de escritura múltiple

Backlog admite el acceso simultáneo desde múltiples procesos (por ejemplo, Claude Desktop y Gemini CLI) que comparten los mismos datos. Para habilitar esto:

  1. Asigna un BACKLOG_AGENT_ID único a cada proceso (por ejemplo, claude, gemini).

  2. Cuando se establece un ID de agente, el motor utiliza registros de escritura por agente, evitando bloqueos de archivos.

  3. Cada proceso llama automáticamente a refresh() antes de las operaciones para recoger los cambios de otros agentes.

Namespacing

Si deseas utilizar un único directorio TASKDATA (como un bucket S3 compartido o una carpeta global ~/.backlog) para múltiples proyectos, puedes usar espacios de nombres para mantener las tareas separadas:

  1. Manual: Establece BACKLOG_NAMESPACE=my-project para usar un nombre de colección específico.

  2. Automático: Establece BACKLOG_AUTO_NAMESPACE=true para que Backlog derive automáticamente un nombre de colección desde tu directorio de trabajo actual (por ejemplo, my-app-a1b2c3d4).

Ejemplo de configuración (.claude/settings.json):

{
  "mcpServers": {
    "backlog": {
      "command": "node",
      "args": ["/path/to/backlog/dist/index.js"],
      "env": {
        "TASKDATA": "/home/user/.backlog",
        "BACKLOG_AUTO_NAMESPACE": "true",
        "BACKLOG_AGENT_ID": "claude-desktop"
      }
    }
  }
}

Ambos métodos permiten que múltiples proyectos compartan el mismo backend de almacenamiento mientras mantienen backlogs aislados y específicos del proyecto.

Backend S3

Almacena datos de tareas en S3 para compartir en equipo o persistencia en la nube. Requiere @backloghq/opslog-s3:

npm install @backloghq/opslog-s3

Configura mediante variables de entorno en .claude/settings.json:

{
  "mcpServers": {
    "backlog": {
      "command": "node",
      "args": ["/path/to/backlog/dist/index.js"],
      "env": {
        "TASKDATA": "my-project/tasks",
        "BACKLOG_BACKEND": "s3",
        "BACKLOG_S3_BUCKET": "my-team-backlog",
        "BACKLOG_S3_REGION": "us-east-1"
      }
    }
  }
}

Al usar S3, TASKDATA se convierte en el prefijo de clave en el bucket en lugar de una ruta del sistema de archivos.

Docker

docker build -t backlog .
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
  | docker run --rm -i backlog

Desarrollo

npm install
npm run build          # compile TypeScript
npm run lint           # run ESLint
npm test               # run tests
npm run test:coverage  # run tests with coverage
npm run dev            # watch mode

Comunidad

Si backlog te resulta útil, considera darle una estrella: ayuda a otros a encontrar el proyecto.

Licencia

MIT

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 20 tool updatesv1.5.0
    • Changedtask_add12 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Agent identity, e.g. 'explorer', 'planner', 'reviewer'"New value: +"Agent identity for tracking task ownership across agent teams. E.g. 'explorer', 'planner', 'reviewer'."
      • changedInput schema / properties / depends / description
        Previous value: -"UUID(s) of tasks this depends on, comma-separated"New value: +"Comma-separated UUIDs of tasks this depends on. Task shows as +BLOCKED until dependencies are completed."
      • changedInput schema / properties / description / description
        Previous value: -"Task description text"New value: +"Task description (required, max 500 chars). Brief summary of what needs to be done."
      • changedInput schema / properties / due / description
        Previous value: -"Due date, e.g. 'tomorrow', '2025-12-31', 'eow'"New value: +"Due date. Accepts: ISO dates ('2025-12-31'), relative ('3d', '2w'), named ('tomorrow', 'friday', 'eow', 'eom'), compound ('now+3d')."
      • changedInput schema / properties / extra / description
        Previous value: -"Additional raw attributes"New value: +"Space-separated additional attributes or +tag/-tag modifiers."
      • changedInput schema / properties / priority / description
        Previous value: -"Priority: H (high), M (medium), L (low)"New value: +"Priority: H (high), M (medium), L (low). Affects urgency score and sort order."
      • changedInput schema / properties / project / description
        Previous value: -"Project name, e.g. 'backend'"New value: +"Project name for grouping (alphanumeric, hyphens, underscores). E.g. 'backend', 'auth-refactor'"
      • changedInput schema / properties / recur / description
        Previous value: -"Recurrence frequency, e.g. 'daily', 'weekly', '2wks', 'monthly'. Requires a due date."New value: +"Recurrence pattern. Requires 'due' to be set. Values: 'daily', 'weekly', 'weekdays', 'biweekly', 'monthly', 'quarterly', 'yearly', or numeric like '3d', '2w'."
      • changedInput schema / properties / scheduled / description
        Previous value: -"Scheduled date — when to start working on the task, e.g. 'monday', 'tomorrow'"New value: +"Scheduled start date — when to begin working. Same date formats as 'due'."
      • changedInput schema / properties / tags / description
        Previous value: -"Tags to apply, as comma-separated list or JSON array. E.g. 'bug,urgent' or '[\"bug\",\"urgent\"]'"New value: +"Tags as comma-separated list or JSON array. E.g. 'bug,urgent' or '[\"bug\",\"urgent\"]'. Used for filtering with +tag/-tag syntax."
      • changedInput schema / properties / until / description
        Previous value: -"End date for recurrence — no instances generated past this date, e.g. '2026-12-31'"New value: +"End date for recurrence — no instances generated past this date. Only meaningful with 'recur'. Same date formats as 'due'."
      • changedInput schema / properties / wait / description
        Previous value: -"Wait date — task hidden until this date"New value: +"Wait date — task is hidden from default views until this date. Same date formats as 'due'."
    • Changedtask_annotate2 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID."
      • changedInput schema / properties / text / description
        Previous value: -"Annotation text"New value: +"Annotation text to add. Stored with a timestamp. Keep concise — use task_doc_write for longer content."
    • Changedtask_archive1 field changed
      • changedInput schema / properties / older_than_days / description
        Previous value: -"Number of days. Archive tasks completed/deleted more than this many days ago. Default: 90"New value: +"Archive tasks completed/deleted more than this many days ago. Default: 90. E.g. '30' for tasks older than a month."
    • Changedtask_archive_load1 field changed
      • changedInput schema / properties / segment / description
        Previous value: -"Archive segment name, e.g. '2026-Q1'"New value: +"Archive segment name, e.g. '2026-Q1'. Use task_archive_list to see available segments."
    • Changedtask_count1 field changed
      • changedInput schema / properties / filter / description
        Previous value: -"Filter expression. Leave empty for all pending tasks."New value: +"Filter expression. Same syntax as task_list. Examples: 'status:pending', '+OVERDUE', 'project:backend +bug'. Leave empty for all pending tasks."
    • Changedtask_delete1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID of the task to delete."
    • Changedtask_denotate2 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID."
      • changedInput schema / properties / text / description
        Previous value: -"Exact annotation text to remove"New value: +"Exact annotation text to remove (case-sensitive). Must match a previously added annotation."
    • Changedtask_doc_delete1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID."
    • Changedtask_doc_read1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID."
    • Changedtask_doc_write2 fields changed
      • changedInput schema / properties / content / description
        Previous value: -"Document content (markdown)"New value: +"Document content in markdown format. Replaces any existing document on this task."
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID."
    • Changedtask_done1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID. Task must be in pending or active status."
    • Changedtask_duplicate8 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Agent identity"New value: +"Agent identity for the new task."
      • changedInput schema / properties / description / description
        Previous value: -"New description (overrides original)"New value: +"New description to override the original."
      • changedInput schema / properties / due / description
        Previous value: -"New due date"New value: +"New due date. Pass empty string to clear."
      • changedInput schema / properties / extra / description
        Previous value: -"Additional raw attributes"New value: +"Space-separated additional attributes or +tag/-tag modifiers."
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID to duplicate"New value: +"Task ID number (e.g. '1') or UUID of the task to copy."
      • changedInput schema / properties / priority / description
        Previous value: -"New priority"New value: +"New priority. Pass empty string to clear."
      • changedInput schema / properties / project / description
        Previous value: -"New project"New value: +"New project. Pass empty string to clear."
      • changedInput schema / properties / tags / description
        Previous value: -"Tags to add or remove, as comma-separated list. E.g. 'frontend,urgent' or '-old,+new'"New value: +"Tags to add (+) or remove (-). E.g. '+frontend,-old'. Applied on top of the copied tags."
    • Changedtask_import1 field changed
      • changedInput schema / properties / tasks / description
        Previous value: -"JSON array of task objects, e.g. '[{\"description\":\"My task\",\"project\":\"foo\"}]'"New value: +"JSON array of task objects. Required field: 'description'. Optional: 'project', 'tags' (string[]), 'priority' (H/M/L), 'due', 'status', 'depends' (UUID[]), 'recur', 'agent', 'uuid' (to set explicit ID). Example: '[{\"description\":\"My task\",\"project\":\"foo\",\"priority\":\"H\"}]'"
    • Changedtask_info1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID. Returns an error if no task matches."
    • Changedtask_list1 field changed
      • changedInput schema / properties / filter / description
        Previous value: -"Filter expression. Leave empty for all pending tasks."New value: +"Filter expression to match tasks. Examples: 'status:pending', 'project:backend +bug', 'due.before:tomorrow', '+OVERDUE', '+BLOCKED', 'priority:H', 'agent:explorer'. Combine with 'and'/'or' and parentheses. Leave empty for all pending tasks."
    • Changedtask_log6 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Agent identity"New value: +"Agent identity that completed the work."
      • changedInput schema / properties / description / description
        Previous value: -"Task description text"New value: +"Description of the completed work (required, max 500 chars)."
      • changedInput schema / properties / extra / description
        Previous value: -"Additional raw attributes"New value: +"Space-separated additional attributes or +tag modifiers."
      • changedInput schema / properties / priority / description
        Previous value: -"Priority: H/M/L"New value: +"Priority: H (high), M (medium), L (low)."
      • changedInput schema / properties / project / description
        Previous value: -"Project name"New value: +"Project name for grouping."
      • changedInput schema / properties / tags / description
        Previous value: -"Tags to apply, as comma-separated list. E.g. 'done,reviewed'"New value: +"Tags as comma-separated list. E.g. 'done,reviewed'"
    • Changedtask_modify13 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"Agent identity, e.g. 'explorer', 'planner', 'reviewer'"New value: +"Agent identity. Pass empty string to unassign."
      • changedInput schema / properties / depends / description
        Previous value: -"New dependency UUIDs"New value: +"New dependency UUIDs (comma-separated). Replaces existing dependencies. Pass empty string to clear."
      • changedInput schema / properties / description / description
        Previous value: -"New description text"New value: +"New description text (max 500 chars). Only set if you want to change it."
      • changedInput schema / properties / due / description
        Previous value: -"New due date"New value: +"New due date. Accepts ISO dates, relative ('3d'), named ('friday', 'eow'). Pass empty string to clear."
      • changedInput schema / properties / extra / description
        Previous value: -"Additional raw attributes"New value: +"Space-separated additional attributes or +tag/-tag modifiers."
      • changedInput schema / properties / filter / description
        Previous value: -"Filter to select tasks to modify (ID, UUID, or filter expression)"New value: +"Filter to select tasks. Can be a numeric ID ('1'), UUID, or filter expression ('project:backend priority:H'). Matches may update multiple tasks."
      • changedInput schema / properties / priority / description
        Previous value: -"New priority (empty string to clear)"New value: +"New priority. Pass empty string to clear priority entirely."
      • changedInput schema / properties / project / description
        Previous value: -"New project name"New value: +"New project name. Pass empty string to clear."
      • changedInput schema / properties / recur / description
        Previous value: -"New recurrence frequency"New value: +"New recurrence pattern ('daily', 'weekly', '3d', etc). Pass empty string to clear."
      • changedInput schema / properties / scheduled / description
        Previous value: -"New scheduled date"New value: +"New scheduled start date. Pass empty string to clear."
      • changedInput schema / properties / tags / description
        Previous value: -"Tags to add (+) or remove (-), as comma-separated list. E.g. 'frontend,urgent' or '-old,+new'"New value: +"Tags to add (+) or remove (-). E.g. '+frontend,+urgent' or '-old,+new'. Prefix with + to add, - to remove. Without prefix, tags are added."
      • changedInput schema / properties / until / description
        Previous value: -"End date for recurrence — no instances generated past this date, e.g. '2026-12-31'"New value: +"End date for recurrence. Pass empty string to clear."
      • changedInput schema / properties / wait / description
        Previous value: -"New wait date"New value: +"New wait date. Task hidden from default views until this date. Pass empty string to clear."
    • Changedtask_purge1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID of a deleted task"New value: +"Task ID number (e.g. '1') or UUID. Task must be in 'deleted' status."
    • Changedtask_start1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID. Task must be in pending status."
    • Changedtask_stop1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Task ID number or UUID"New value: +"Task ID number (e.g. '1') or UUID. Task must be currently active (started)."
  2. 24 tool updatesv1.4.0
    • First observedtask_add
    • First observedtask_annotate
    • First observedtask_archive
    • First observedtask_archive_list
    • First observedtask_archive_load
    • First observedtask_count
    • First observedtask_delete
    • First observedtask_denotate
    • First observedtask_doc_delete
    • First observedtask_doc_read
    • First observedtask_doc_write
    • First observedtask_done
    • First observedtask_duplicate
    • First observedtask_import
    • First observedtask_info
    • First observedtask_list
    • First observedtask_log
    • First observedtask_modify
    • First observedtask_projects
    • First observedtask_purge
    • First observedtask_start
    • First observedtask_stop
    • First observedtask_tags
    • First observedtask_undo

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a distinct, clearly separated purpose with explicit cross-references in descriptions (e.g., 'use task_log instead', 'use task_doc_write instead'). No overlapping functionality—CRUD, lifecycle, archival, and document operations are cleanly partitioned.

Naming Consistency5/5

Strict snake_case convention with consistent 'task_' prefix. Sub-resources follow predictable patterns (task_doc_read/write/delete, task_archive_list/load). Verbs are clear and consistently placed (task_add, task_delete, task_modify).

Tool Count4/5

24 tools is above the typical ideal range but justified by the domain complexity. The set covers full task lifecycle, document attachments, archival management, annotations, and discovery without redundancy. Each tool earns its place for a comprehensive backlog system.

Completeness4/5

Excellent coverage of CRUD, status workflow (start/stop/done), soft-delete with purge, annotations, document attachments, and archival. Minor gap: archived tasks are view-only with no restore-to-active operation, though this appears to be an intentional cold-storage design.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Persistent memory and task board for Claude Code. 14 tools spanning projects, tasks, sessions, and activity logs — backed by Firestore, runs on the free tier. Handoff notes survive context compaction; the next session reads the last handoff and picks up where you stopped.
    14
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive project management and workflow tracking system that integrates with Claude Code via MCP, automatically capturing sessions, tools, agents, and project tasks into a centralized dashboard and database.
    20
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for project planning inside Claude. It tracks progress, knows your codebase, and resumes exactly where you left off every session.
    14
    5
    -

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/backloghq/backlog'

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