dooray-mcp-js
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-jsEjecutar con solo herramientas de solo lectura expuestas:
DOORAY_TOKEN="{personal-token}" npx -y dooray-mcp-js --mode read-onlyCodex
Registre el paquete directamente con Codex:
codex mcp add dooray-mcp-js --env DOORAY_TOKEN="$DOORAY_TOKEN" -- npx -y dooray-mcp-jsSi 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-jsEl 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-onlyTambié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-jsClaude 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-jsRegistro de solo lectura:
claude mcp add dooray-mcp-js-read-only --env DOORAY_TOKEN="{personal-token}" -- npx -y dooray-mcp-js --mode read-onlyEstructura del proyecto
dooray-mcp-js/
├── src/
│ └── index.js # MCP server entry point
├── package.json
└── README.mdDesarrollo local
Cuando trabaje desde un repositorio clonado, ejecute el punto de entrada local directamente:
DOORAY_TOKEN="{personal-token}" node ./src/index.jsHerramientas
El paquete dooray-mcp-js expone todas las herramientas implementadas actualmente. El servidor actual aún no tiene herramienta de eliminación.
dooray_messengerdooray_calendar_calendarsdooray_calendar_eventsdooray_calendar_post_eventdooray_account_membersdooray_account_memberdooray_projectdooray_posts(encuentra publicaciones de tareas y expone el cuerpo de la tarea másfileIdList, 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 oAUTH_FORBIDDEN_ERRORno determina si los elementos defileIdListse pueden descargar)dooray_post_file_download(descarga IDs dedooray_posts.fileIdList, incluidas imágenes en línea del cuerpo, o IDs de archivos adjuntos normales conmedia=raw; la autorización se limita al origen de API configurado y a HTTPSfile-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.
Analice la URL de la tarea.
/task/{projectId}/{postId}proporciona ambos IDs directamente. La forma heredada/project/tasks/{postId}proporciona solopostId, por lo que su número final no debe usarse comoprojectId.Resuelva el proyecto solo para la forma de URL heredada. Llame a
dooray_projectconoperation=find_projectsy los filtros requeridostype,scopeystate. Repita las combinaciones de filtros relevantes y continúe a través de los valores depageconsizehasta100hasta que se haya verificado cada página de resultados.Busque la publicación coincidente. Llame a
dooray_postscon el ID de proyecto de la nueva forma de URL o con los IDs de proyecto candidatos descubiertos para una URL heredada. Usesizehasta100, continúe a través de los valores depagesegún sea necesario y haga coincidir el ID de publicación devuelto con elpostIdde 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.Lea el cuerpo de la tarea del resultado coincidente de
dooray_posts. No llame adooray_post_logsa menos que el usuario pida explícitamente comentarios o historial de actividad.Si la publicación coincidente contiene
fileIdList, llame adooray_post_file_downloaduna vez por cada ID listado usando el mismoprojectIdypostIdverificados. Estos IDs comúnmente representan imágenes incrustadas en el cuerpo de la tarea, pero también pueden representar otros archivos del cuerpo.Inspeccione el
filePathlocal devuelto con un visor de imágenes o un analizador de documentos apropiado. El resultado de la descarga también incluyefileName,mimeType,sizeytemporary.
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_calendarsdooray_calendar_eventsdooray_account_membersdooray_account_memberdooray_projectdooray_postsdooray_post_logsdooray_post_logdooray_post_filesdooray_post_file_downloados
Ocultas en modo de solo lectura:
dooray_messengerdooray_calendar_post_eventdooray_post_log_createdooray_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. Usefulloread-only. Por defecto,DOORAY_MCP_MODEofull.
Maintenance
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
AlicenseNot gradedqualityFmaintenanceMCP Server for public disclosure information of Korean companies, powered by the dartpoint.ai API.3Apache 2.0- AlicenseNot gradedqualityDmaintenanceMCP server for Google Docs, Google Drive, and Comments with flexible authentication, enabling document management, editing, formatting, commenting, and drive operations.2112MIT
- AlicenseNot gradedqualityBmaintenanceAn 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
- AlicenseNot gradedqualityCmaintenanceMCP server for managing social media posts across multiple platforms using the Postiz API. Supports creating, updating, deleting posts, and generating videos.602MIT
Related MCP Connectors
A basic MCP server to operate on the Postman API.
PandaDoc MCP server for creating, sending, signing, and tracking PandaDoc documents.
MCP server for Appcircle mobile CI/CD platform.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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