Skip to main content
Glama

dooray-mcp-js

Servidor MCP de Dooray implementado en Node.js. Sigue los nombres de herramientas y el comportamiento de API de dooray-go/dooray-mcp, pero no requiere Go ni Homebrew.

Requisitos

  • Node.js 18 o superior

  • Token de API personal de Dooray

Related MCP server: mcp-gdocs

Documentación oficial

Alcance

Este servidor MCP no envuelve todas las API de Dooray. Se centra en las API de cuenta, calendario, proyecto, publicación, adjuntos y mensajería de uso frecuente.

La mayoría de las API de administración /admin/v1 y /admin/v2 no se exponen intencionalmente de forma predeterminada, especialmente los endpoints de administración con capacidad de escritura.

Modo de solo lectura

Los tokens de API personal de Dooray no se emiten con permisos separados de solo lectura y escritura. Un token que puede llamar a API de escritura puede conservar esos permisos a nivel de la API de Dooray.

Para instalaciones más seguras, este servidor proporciona un modo de solo lectura en la capa de herramientas MCP. En el modo de solo lectura, las herramientas con capacidad de escritura no se exponen en tools/list y no se pueden llamar a través de tools/call.

Ejecución

npx -y dooray-mcp-js --token "{personal-token}"

También puede usar una variable de entorno:

DOORAY_TOKEN="{personal-token}" npx -y dooray-mcp-js

Ejecutar con solo herramientas de solo lectura expuestas:

DOORAY_TOKEN="{personal-token}" npx -y dooray-mcp-js --mode read-only

Codex

Registre el paquete directamente con Codex:

codex mcp add dooray-mcp-js --env DOORAY_TOKEN="$DOORAY_TOKEN" -- npx -y dooray-mcp-js

Si el token no está ya en DOORAY_TOKEN, páselo al registrarlo:

codex mcp add dooray-mcp-js --env DOORAY_TOKEN="{personal-token}" -- npx -y dooray-mcp-js

El servidor lee DOORAY_TOKEN cuando Codex lo inicia, por lo que el token no necesita incluirse en los argumentos del comando.

Registro de solo lectura en Codex

Registre un segundo servidor MCP con el mismo paquete y token, pero exponga solo herramientas de solo lectura:

codex mcp add dooray-mcp-js-read-only --env DOORAY_TOKEN="$DOORAY_TOKEN" -- npx -y dooray-mcp-js --mode read-only

También puede configurar el modo mediante una variable de entorno:

codex mcp add dooray-mcp-js-read-only --env DOORAY_TOKEN="$DOORAY_TOKEN" --env DOORAY_MCP_MODE=read-only -- npx -y dooray-mcp-js

Claude Desktop

{
  "mcpServers": {
    "dooray-mcp-js": {
      "command": "npx",
      "args": ["-y", "dooray-mcp-js"],
      "env": {
        "DOORAY_TOKEN": "{personal-token}"
      }
    }
  }
}

Configuración de solo lectura de Claude Desktop:

{
  "mcpServers": {
    "dooray-mcp-js-read-only": {
      "command": "npx",
      "args": ["-y", "dooray-mcp-js", "--mode", "read-only"],
      "env": {
        "DOORAY_TOKEN": "{personal-token}"
      }
    }
  }
}

Claude Code

claude mcp add dooray-mcp-js --env DOORAY_TOKEN="{personal-token}" -- npx -y dooray-mcp-js

Registro de solo lectura:

claude mcp add dooray-mcp-js-read-only --env DOORAY_TOKEN="{personal-token}" -- npx -y dooray-mcp-js --mode read-only

Estructura del proyecto

dooray-mcp-js/
├── src/
│   └── index.js      # MCP server entry point
├── package.json
└── README.md

Desarrollo local

Cuando trabaje desde un repositorio clonado, ejecute el punto de entrada local directamente:

DOORAY_TOKEN="{personal-token}" node ./src/index.js

Herramientas

El paquete dooray-mcp-js expone todas las herramientas implementadas actualmente. El servidor actual aún no tiene herramienta de eliminación.

  • dooray_messenger

  • dooray_calendar_calendars

  • dooray_calendar_events

  • dooray_calendar_post_event

  • dooray_account_members

  • dooray_account_member

  • dooray_project

  • dooray_posts (encuentra publicaciones de tareas y expone el cuerpo de la tarea más fileIdList, que puede contener imágenes/archivos en línea del cuerpo)

  • dooray_post_logs (encuentra comentarios y registros de actividad de una publicación)

  • dooray_post_log (encuentra un comentario o registro de actividad por ID)

  • dooray_post_log_create (añade un comentario a una publicación; el cuerpo es { "mimeType": "text/x-markdown", "content": "..." })

  • dooray_post_log_update (actualiza un comentario o registro de actividad con el mismo formato de cuerpo)

  • dooray_post_files (lista los adjuntos normales; un resultado vacío o AUTH_FORBIDDEN_ERROR no determina si los elementos de fileIdList se pueden descargar)

  • dooray_post_file_download (descarga IDs de dooray_posts.fileIdList, incluidas imágenes en línea del cuerpo, o IDs de archivos adjuntos normales con media=raw; la autorización se limita al origen de API configurado y a HTTPS file-api.dooray.com)

  • os

Lectura de URL de tareas y archivos del cuerpo

Use este flujo de trabajo cuando una solicitud pida el cuerpo de una tarea de Dooray, una imagen incrustada en el cuerpo o un archivo referenciado por el cuerpo. Los comentarios y los registros de actividad son un recurso separado y no son necesarios para este flujo de trabajo.

  1. Analice la URL de la tarea. /task/{projectId}/{postId} proporciona ambos IDs directamente. La forma heredada /project/tasks/{postId} proporciona solo postId, por lo que su número final no debe usarse como projectId.

  2. Resuelva el proyecto solo para la forma de URL heredada. Llame a dooray_project con operation=find_projects y los filtros requeridos type, scope y state. Repita las combinaciones de filtros relevantes y continúe a través de los valores de page con size hasta 100 hasta que se haya verificado cada página de resultados.

  3. Busque la publicación coincidente. Llame a dooray_posts con el ID de proyecto de la nueva forma de URL o con los IDs de proyecto candidatos descubiertos para una URL heredada. Use size hasta 100, continúe a través de los valores de page según sea necesario y haga coincidir el ID de publicación devuelto con el postId de la URL. Una búsqueda bajo un ID de proyecto incorrecto o solo la primera página de resultados no es evidencia de que la tarea o sus archivos no estén disponibles.

  4. Lea el cuerpo de la tarea del resultado coincidente de dooray_posts. No llame a dooray_post_logs a menos que el usuario pida explícitamente comentarios o historial de actividad.

  5. Si la publicación coincidente contiene fileIdList, llame a dooray_post_file_download una vez por cada ID listado usando el mismo projectId y postId verificados. Estos IDs comúnmente representan imágenes incrustadas en el cuerpo de la tarea, pero también pueden representar otros archivos del cuerpo.

  6. Inspeccione el filePath local devuelto con un visor de imágenes o un analizador de documentos apropiado. El resultado de la descarga también incluye fileName, mimeType, size y temporary.

dooray_post_files se expone para listar adjuntos normales, pero es independiente de la ruta fileIdList utilizada para los archivos del cuerpo. Puede devolver una lista vacía o AUTH_FORBIDDEN_ERROR incluso cuando las descargas directas desde dooray_posts.fileIdList funcionan. Por lo tanto, ninguno de los dos resultados debe informarse como prueba de que una imagen o archivo del cuerpo es inaccesible. Un error fetch failed o un tiempo de espera de dooray_post_file_download también es una falla de transporte, no un resultado de permiso, y debe reintentarse o informarse por separado. Informe un archivo como prohibido o faltante solo cuando la descarga directa devuelva una respuesta terminal de Dooray como 403 o 404 con el projectId, postId y fileId verificados.

Herramientas del modo de solo lectura

Cuando se establece --mode read-only o DOORAY_MCP_MODE=read-only, las herramientas de Dooray con capacidad de escritura no se exponen en tools/list y no se pueden llamar a través de tools/call.

Expuestas en modo de solo lectura:

  • dooray_calendar_calendars

  • dooray_calendar_events

  • dooray_account_members

  • dooray_account_member

  • dooray_project

  • dooray_posts

  • dooray_post_logs

  • dooray_post_log

  • dooray_post_files

  • dooray_post_file_download

  • os

Ocultas en modo de solo lectura:

  • dooray_messenger

  • dooray_calendar_post_event

  • dooray_post_log_create

  • dooray_post_log_update

Opciones

  • --token: Token de API personal de Dooray. Por defecto, DOORAY_TOKEN.

  • --endpoint: Endpoint de la API de Dooray. Por defecto, https://api.dooray.com.

  • --mode: modo de exposición de herramientas. Use full o read-only. Por defecto, DOORAY_MCP_MODE o full.

A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP Server for public disclosure information of Korean companies, powered by the dartpoint.ai API.
    3
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Google Docs, Google Drive, and Comments with flexible authentication, enabling document management, editing, formatting, commenting, and drive operations.
    211
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server for reading/editing Google Docs content and managing comments, including listing, creating, replying, resolving, and reopening comments via the Docs API and Drive API.
    GPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for managing social media posts across multiple platforms using the Postiz API. Supports creating, updating, deleting posts, and generating videos.
    60
    2
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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/sdadaniel/dooray-mcp-js'

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