Skip to main content
Glama

dooray-mcp-js

Сервер Dooray MCP, реализованный на Node.js. Он следует именам инструментов и поведению API dooray-go/dooray-mcp, но не требует Go или Homebrew.

Требования

  • Node.js 18 или новее

  • Персональный API-токен Dooray

Related MCP server: mcp-gdocs

Официальная документация

Область применения

Этот MCP-сервер не оборачивает каждый Dooray API. Он сосредоточен на часто используемых API аккаунтов, календаря, проектов, постов, вложений и мессенджера.

Большинство административных API /admin/v1 и /admin/v2 намеренно не раскрываются по умолчанию, особенно административные конечные точки с возможностью записи.

Режим только для чтения

Персональные API-токены Dooray не выдаются с отдельными правами только для чтения и записи. Токен, который может вызывать API записи, может по-прежнему иметь эти разрешения на уровне API Dooray.

Для более безопасных установок этот сервер предоставляет режим только для чтения на уровне инструментов MCP. В режиме только для чтения инструменты с возможностью записи не раскрываются в tools/list и не могут быть вызваны через tools/call.

Запуск

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

Вы также можете использовать переменную окружения:

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

Запуск с раскрытием только инструментов только для чтения:

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

Codex

Зарегистрируйте пакет напрямую с Codex:

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

Если токен ещё не находится в DOORAY_TOKEN, передайте его при регистрации:

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

Сервер читает DOORAY_TOKEN при запуске Codex, поэтому токен не нужно включать в аргументы команды.

Регистрация Codex только для чтения

Зарегистрируйте второй MCP-сервер с тем же пакетом и токеном, но раскройте только инструменты только для чтения:

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

Вы также можете установить режим через переменную окружения:

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}"
      }
    }
  }
}

Конфигурация 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

Регистрация только для чтения:

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

Структура проекта

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

Локальная разработка

При работе из клонированного репозитория запустите локальную точку входа напрямую:

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

Инструменты

Пакет dooray-mcp-js раскрывает все реализованные на данный момент инструменты. Текущий сервер пока не имеет инструмента удаления.

  • dooray_messenger

  • dooray_calendar_calendars

  • dooray_calendar_events

  • dooray_calendar_post_event

  • dooray_account_members

  • dooray_account_member

  • dooray_project

  • dooray_posts (находит посты задач и раскрывает тело задачи плюс fileIdList, который может содержать встроенные изображения/файлы тела)

  • dooray_post_logs (находит комментарии и журналы активности для поста)

  • dooray_post_log (находит один комментарий или журнал активности по ID)

  • dooray_post_log_create (добавляет комментарий к посту; тело: { "mimeType": "text/x-markdown", "content": "..." })

  • dooray_post_log_update (обновляет комментарий или журнал активности с тем же форматом тела)

  • dooray_post_files (перечисляет обычные вложения; пустой результат или AUTH_FORBIDDEN_ERROR не определяет, можно ли загрузить элементы fileIdList)

  • dooray_post_file_download (загружает ID из dooray_posts.fileIdList, включая встроенные изображения тела, или обычные ID файлов вложений с media=raw; авторизация ограничена настроенным источником API и HTTPS file-api.dooray.com)

  • os

Чтение URL задач и файлов тела

Используйте этот рабочий процесс, когда запрос касается тела задачи Dooray, изображения, встроенного в тело, или файла, на который ссылается тело. Комментарии и журналы активности являются отдельным ресурсом и не требуются для этого рабочего процесса.

  1. Разберите URL задачи. /task/{projectId}/{postId} предоставляет оба ID напрямую. Устаревшая форма /project/tasks/{postId} предоставляет только postId, поэтому её конечное число не должно использоваться как projectId.

  2. Определите проект только для устаревшей формы URL. Вызовите dooray_project с operation=find_projects и необходимыми фильтрами type, scope и state. Повторяйте соответствующие комбинации фильтров и продолжайте перебирать значения page с size до 100, пока не будут проверены все страницы результатов.

  3. Найдите соответствующий пост. Вызовите dooray_posts с ID проекта из новой формы URL или с ID кандидатов проекта, обнаруженных для устаревшего URL. Используйте size до 100, продолжайте перебирать значения page по мере необходимости и сопоставьте возвращённый ID поста с postId из URL. Поиск по одному неверному ID проекта или только по первой странице результатов не является доказательством того, что задача или её файлы недоступны.

  4. Прочитайте тело задачи из соответствующего результата dooray_posts. Не вызывайте dooray_post_logs, если пользователь явно не запрашивает комментарии или историю активности.

  5. Если соответствующий пост содержит fileIdList, вызовите dooray_post_file_download один раз для каждого перечисленного ID, используя те же проверенные projectId и postId. Эти ID обычно представляют изображения, встроенные в тело задачи, но могут также представлять другие файлы тела.

  6. Проверьте возвращённый локальный filePath с помощью просмотрщика изображений или соответствующего парсера документов. Результат загрузки также включает fileName, mimeType, size и temporary.

dooray_post_files раскрывается для перечисления обычных вложений, но он отделён от пути fileIdList, используемого для файлов тела. Он может возвращать пустой список или AUTH_FORBIDDEN_ERROR, даже если прямые загрузки из dooray_posts.fileIdList работают. Поэтому ни один из этих результатов не следует сообщать как доказательство того, что изображение или файл тела недоступен. Ошибка fetch failed или тайм-аут от dooray_post_file_download также является сбоем транспорта, а не результатом разрешений, и её следует повторить или сообщить отдельно. Сообщайте о файле как о запрещённом или отсутствующем только тогда, когда прямая загрузка возвращает терминальный ответ Dooray, такой как 403 или 404, с проверенными projectId, postId и fileId.

Инструменты режима только для чтения

Когда установлены --mode read-only или DOORAY_MCP_MODE=read-only, инструменты Dooray с возможностью записи не раскрываются в tools/list и не могут быть вызваны через tools/call.

Раскрываются в режиме только для чтения:

  • 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

Скрыты в режиме только для чтения:

  • dooray_messenger

  • dooray_calendar_post_event

  • dooray_post_log_create

  • dooray_post_log_update

Параметры

  • --token: персональный API-токен Dooray. По умолчанию — DOORAY_TOKEN.

  • --endpoint: конечная точка API Dooray. По умолчанию — https://api.dooray.com.

  • --mode: режим раскрытия инструментов. Используйте full или read-only. По умолчанию — DOORAY_MCP_MODE или 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