# io.github.cocaxcode/devflow-mcp (npm · @cocaxcode/devflow-mcp)

MCP server connecting Jira (Cloud + Server) with GitHub/GitLab. Branches, issues, PRs, flows.

- Trust score: 69/100 (medium)
- Change this week: +23
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- npm · `@cocaxcode/devflow-mcp`: 69/100 (this document), [markdown](https://verifymcp.io/servers/cocaxcode-devflow-mcp/cocaxcode-devflow-mcp.md), [page](https://verifymcp.io/servers/cocaxcode-devflow-mcp/cocaxcode-devflow-mcp)

## Channel facts

- Registry: `npm`
- Package: `@cocaxcode/devflow-mcp`
- Version: `0.1.8`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-04.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 127 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 2100 tokens (~65/item across 32 items; 32 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add cocaxcode-devflow-mcp -- npx -y @cocaxcode/devflow-mcp
```

### Codex

```bash
codex mcp add cocaxcode-devflow-mcp -- npx -y @cocaxcode/devflow-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cocaxcode-devflow-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@cocaxcode/devflow-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add cocaxcode-devflow-mcp --command npx --arg -y --arg @cocaxcode/devflow-mcp
```

### Hermes

```yaml
mcp_servers:
  cocaxcode-devflow-mcp:
    command: "npx"
    args: ["-y", "@cocaxcode/devflow-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "cocaxcode-devflow-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@cocaxcode/devflow-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-04 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 68, +32)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Schema quality: unverified → good
- [functional] Licence: MIT

### 2026-08-01 (score 36, +31)

- [security improvement] Malware scan: unverified → pass
- [functional improvement] Tool coverage: unverified → 100

### 2026-07-31 (score 5, −1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −40)

- [security regression] Malware scan: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (32)

### `df_project_setup` (~225 tokens)

Configurar un nuevo proyecto: vincula Jira + Git provider. Auto-detecta tipo de Jira, version API, provider Git y rama base.

Input parameters:

- `gitProject` (string): Path completo del proyecto en GitLab (ej: grupo/subgrupo/repo). Util cuando el remote es un fork pero se quiere vincular al proyecto principal.
- `gitToken` (string, required): Token de GitHub o GitLab
- `gitUrl` (string): URL base del GitLab self-hosted (ej: https://gitlab.empresa.com). Si no se pasa, se extrae del remote.
- `jiraEmail` (string): Email para Jira Cloud
- `jiraPat` (string): Personal Access Token para Jira Server
- `jiraProjectKey` (string, required): Clave del proyecto en Jira (ej: PROJ, DEV, BACK)
- `jiraToken` (string): API Token para Jira Cloud
- `jiraUrl` (string, required): URL de Jira (ej: https://myteam.atlassian.net)
- `name` (string, required): Nombre del proyecto

### `df_project_update` (~173 tokens)

Modificar la configuracion de un proyecto existente.

Input parameters:

- `baseBranch` (string): Rama base (main/master)
- `gitProject` (string): Path completo del proyecto en GitLab (ej: grupo/subgrupo/repo)
- `gitToken` (string): Nuevo token de Git provider
- `gitUrl` (string): URL base del GitLab self-hosted (ej: https://gitlab.empresa.com)
- `jiraEmail` (string): Nuevo email para Jira Cloud
- `jiraPat` (string): Nuevo PAT para Jira Server
- `jiraProjectKey` (string): Nueva clave del proyecto en Jira
- `jiraToken` (string): Nuevo API Token para Jira Cloud
- `jiraUrl` (string): Nueva URL de Jira
- `name` (string, required): Nombre del proyecto a modificar

### `df_project_list` (~17 tokens)

Listar todos los proyectos configurados.

### `df_project_switch` (~25 tokens)

Cambiar el proyecto activo.

Input parameters:

- `name` (string, required): Nombre del proyecto

### `df_project_delete` (~28 tokens)

Eliminar un proyecto configurado.

Input parameters:

- `name` (string, required): Nombre del proyecto a eliminar

### `df_issues` (~67 tokens)

Listar mis issues asignados en Jira. Soporta filtros opcionales por proyecto y estado.

Input parameters:

- `project` (string): Filtrar por clave de proyecto (ej: PROJ)
- `status` (string): Filtrar por estado (ej: "To Do", "In Progress")

### `df_issue` (~44 tokens)

Obtener el detalle completo de un issue de Jira. Solo lectura, sin efectos secundarios.

Input parameters:

- `issueKey` (string, required): Clave del issue (ej: PROJ-123)

### `df_statuses` (~51 tokens)

Listar las transiciones disponibles para un issue (los estados a los que se puede mover desde su estado actual).

Input parameters:

- `issueKey` (string, required): Clave del issue (ej: PROJ-123)

### `df_transition` (~84 tokens)

Mover un issue a un nuevo estado. Requiere confirm: true para ejecutar. Sin confirm devuelve preview.

Input parameters:

- `confirm` (boolean): true para ejecutar la transicion
- `issueKey` (string, required): Clave del issue (ej: PROJ-123)
- `transitionId` (string, required): ID de la transicion (obtenido de df_statuses)

### `df_assign` (~48 tokens)

Asignar un issue al usuario actual. Si el issue ya tiene asignado, no hace nada.

Input parameters:

- `issueKey` (string, required): Clave del issue (ej: PROJ-123)

### `df_comment` (~68 tokens)

Añadir un comentario a un issue de Jira. Requiere confirm: true para ejecutar.

Input parameters:

- `body` (string, required): Texto del comentario
- `confirm` (boolean): true para publicar el comentario
- `issueKey` (string, required): Clave del issue (ej: PROJ-123)

### `df_branch` (~117 tokens)

Crear una nueva branch desde la rama base con formato feat/PROJ-123-desc o fix/PROJ-123-desc. Requiere confirm: true. Verifica que no haya cambios sin pushear.

Input parameters:

- `confirm` (boolean): true para crear la branch
- `description` (string, required): Descripcion corta en kebab-case (ej: add-login)
- `issueKey` (string, required): Clave del issue de Jira (ej: PROJ-123)
- `type` (string, required): Tipo de branch: feat o fix

### `df_find_branch` (~60 tokens)

Buscar si existe una rama local o remota que contenga un issue key (ej: PROJ-123). Devuelve la rama si existe o null.

Input parameters:

- `issueKey` (string, required): Clave del issue (ej: PROJ-123)

### `df_checkout` (~37 tokens)

Cambiar a una rama existente. Verifica que no haya cambios sin pushear antes.

Input parameters:

- `branch` (string, required): Nombre de la rama

### `df_pull` (~19 tokens)

Hacer pull de la rama actual desde el remote.

### `df_merge` (~65 tokens)

Mergear una rama en la rama actual. Requiere confirm: true. Si hay conflictos, los reporta sin abortar.

Input parameters:

- `branch` (string, required): Nombre de la rama a mergear en la rama actual
- `confirm` (boolean): true para ejecutar el merge

### `df_push` (~44 tokens)

Hacer push de la rama actual al remote. Requiere confirm: true para ejecutar. Sin confirm devuelve preview.

Input parameters:

- `confirm` (boolean): true para ejecutar el push

### `df_pr` (~54 tokens)

Crear un Pull Request (GitHub) o Merge Request (GitLab) para la rama actual.

Input parameters:

- `body` (string): Descripcion del PR/MR
- `title` (string, required): Titulo del PR/MR

### `df_flow_create` (~100 tokens)

Crear un nuevo flow (playbook) con nombre, disparador y pasos. El AI lo ejecuta cuando el usuario dice algo que matchea el trigger.

Input parameters:

- `name` (string, required): Nombre del flow (ej: pr-ready)
- `steps` (array, required): Pasos del flow: [{tool, confirm?, target?, note?}]
- `trigger` (string, required): Descripcion del disparador (ej: cuando el usuario dice "PR listo")

### `df_flow_list` (~26 tokens)

Listar todos los flows configurados con nombre, disparador y numero de pasos.

### `df_flow_get` (~36 tokens)

Ver el detalle completo de un flow (nombre, disparador y todos los pasos).

Input parameters:

- `name` (string, required): Nombre del flow

### `df_flow_update` (~54 tokens)

Modificar un flow existente: cambiar disparador y/o pasos.

Input parameters:

- `name` (string, required): Nombre del flow a modificar
- `steps` (array): Nuevos pasos
- `trigger` (string): Nuevo disparador

### `df_flow_delete` (~52 tokens)

Eliminar un flow. El flow "start-task" requiere confirm: true.

Input parameters:

- `confirm` (boolean): true para confirmar eliminacion del flow default
- `name` (string, required): Nombre del flow a eliminar

### `df_rule_create` (~96 tokens)

Crear una regla configurable. Las reglas pueden bloquear o advertir sobre acciones.

Input parameters:

- `action` (string, required): Accion: block (bloquea) o warn (solo avisa)
- `description` (string, required): Descripcion de lo que hace la regla
- `name` (string, required): Nombre de la regla (ej: no-merge-to-main)
- `scope` (string, required): Ambito: git, jira, o all

### `df_rule_list` (~26 tokens)

Listar todas las reglas configuradas con su estado (activada/desactivada).

### `df_rule_get` (~28 tokens)

Ver el detalle completo de una regla.

Input parameters:

- `name` (string, required): Nombre de la regla

### `df_rule_update` (~56 tokens)

Modificar una regla existente.

Input parameters:

- `action` (string): Nueva accion
- `description` (string): Nueva descripcion
- `name` (string, required): Nombre de la regla a modificar
- `scope` (string): Nuevo ambito

### `df_rule_toggle` (~43 tokens)

Activar o desactivar una regla.

Input parameters:

- `enabled` (boolean, required): true para activar, false para desactivar
- `name` (string, required): Nombre de la regla

### `df_rule_delete` (~27 tokens)

Eliminar una regla.

Input parameters:

- `name` (string, required): Nombre de la regla a eliminar

### `df_rule_project_override` (~66 tokens)

Activar o desactivar una regla global para el proyecto actual. El override solo aplica a este proyecto.

Input parameters:

- `enabled` (boolean, required): true para activar, false para desactivar en este proyecto
- `ruleName` (string, required): Nombre de la regla global a sobreescribir

### `df_rule_project_add` (~63 tokens)

Añadir una regla propia que solo aplica al proyecto actual.

Input parameters:

- `action` (string, required): Accion
- `description` (string, required): Descripcion de la regla
- `name` (string, required): Nombre de la regla
- `scope` (string, required): Ambito

### `df_rule_project_remove` (~39 tokens)

Eliminar una regla propia del proyecto actual o quitar un override de regla global.

Input parameters:

- `name` (string, required): Nombre de la regla a eliminar

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/cocaxcode-devflow-mcp/cocaxcode-devflow-mcp#diagnostics

## Score history

- 2026-08-04: 69
- 2026-08-03: 68
- 2026-08-02: 68
- 2026-08-01: 36
- 2026-07-31: 5
- 2026-07-30: 6
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/@cocaxcode/devflow-mcp
- Socket report: https://socket.dev/npm/package/@cocaxcode/devflow-mcp
- Repository: https://github.com/cocaxcode/devflow-mcp
- Changelog RSS feed: https://verifymcp.io/servers/cocaxcode-devflow-mcp/cocaxcode-devflow-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/cocaxcode-devflow-mcp/cocaxcode-devflow-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/cocaxcode-devflow-mcp/cocaxcode-devflow-mcp
