dooray-mcp-link
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DOORAY_TOKEN | Yes | Dooray personal API token. | |
| DOORAY_ENDPOINT | No | Dooray API endpoint, default https://api.dooray.com. | |
| DOORAY_MCP_MODE | No | `full` or `read-only`, default `full`. | |
| DOORAY_DOWNLOAD_DIR | No | attachment download directory, default `<system temp>/dooray-mcp`. | |
| DOORAY_REQUEST_TIMEOUT_MS | No | per-request timeout in milliseconds, default `30000`. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| dooray_messengerC | send message to dooray messenger |
| dooray_calendar_calendarsC | find dooray calendars |
| dooray_calendar_eventsC | find dooray events of calendars |
| dooray_calendar_post_eventB | register dooray events on a calendar |
| dooray_account_membersA | find dooray account members by name or userCode |
| dooray_account_memberC | find dooray account members by id |
| dooray_projectA | List Dooray projects accessible to the token or get one project by ID. A /task/{projectId}/{postId} URL provides projectId directly, while a legacy /project/tasks/{postId} URL contains only postId and requires project discovery. find_projects requires type, scope, and state; use page and size to exhaust every relevant filter combination because one page is not proof that a project or post is inaccessible. find_project requires projectId. |
| dooray_postsA | Find Dooray task posts in one project or a comma-separated set of accessible project IDs. Parse the URL first: /task/{projectId}/{postId} provides both IDs, while legacy /project/tasks/{postId} provides only postId and requires project discovery with dooray_project. Query the known or candidate project IDs with size up to 100 and continue through pages until the returned post ID matches; a lookup under one wrong project ID or only the first page does not prove that the post is unavailable. The matching post response contains the task body, so do not call dooray_post_logs unless comments or activity were explicitly requested. When the post has fileIdList, treat every ID as a downloadable body file, commonly an inline image, and call dooray_post_file_download with the same verified projectId and postId. Always try that direct download even if dooray_post_files is empty or returns AUTH_FORBIDDEN_ERROR. |
| dooray_post_logsC | find comments and activity logs of a Dooray post |
| dooray_post_logB | find a specific comment or activity log of a Dooray post |
| dooray_post_log_createC | add a comment to a Dooray post |
| dooray_post_log_updateB | update a comment or activity log of a Dooray post |
| dooray_post_filesA | List regular attachments only. This is not an availability check for inline body images in dooray_posts.fileIdList. The endpoint can be empty or return AUTH_FORBIDDEN_ERROR while direct dooray_post_file_download calls still succeed, so never use this result alone to conclude that body files cannot be read. |
| dooray_post_file_downloadA | Download a Dooray post file by fileId through authenticated redirects to a local temporary directory. Authorization is forwarded only to the configured API origin and the HTTPS file-api.dooray.com download service; arbitrary redirect origins receive no Dooray token. Use this for every ID from the matching dooray_posts.fileIdList, including inline body images, with the same verified projectId and postId; it also supports regular attachment file IDs. dooray_post_files is not a prerequisite, and an empty result or AUTH_FORBIDDEN_ERROR from that separate endpoint does not imply that this direct download will fail. On success, the result contains filePath, fileName, mimeType, size, and temporary; inspect filePath with an appropriate local image viewer or document parser. A fetch failure or timeout is transient and must not be reported as a permission denial; retry or report the transport problem separately. Only report a body file as forbidden or missing when this direct request returns a terminal Dooray response such as 403 or 404 with the verified projectId, postId, and fileId. |
| osB | get os time date |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
The tools are mostly separable by resource: calendars, events, members, projects, posts, files, logs, messenger, and one OS utility. A few pairs like dooray_post_log vs dooray_post_logs and dooray_post_files vs dooray_post_file_download require careful reading, but the descriptions clarify the list/get and list/download boundaries.
Naming is consistently lowercase snake_case with a dooray_ prefix, but verb placement is inconsistent: dooray_calendar_post_event places the action before the object, while dooray_post_log_create and dooray_post_file_download place it after. Bare noun tools like dooray_project and dooray_posts, plus the pattern-breaking 'os', further weaken consistency.
Fifteen tools is at the upper edge of a well-scoped set and each Dooray resource area has at least one operation. The server does span many concerns—project, calendar, messenger, account, files, and OS—and the os tool feels tacked on, but the count is still reasonable for the described integration.
The set covers discovery and reading for projects, posts, comments, calendars, members, and files, plus comment/event creation and comment updates. Notable lifecycle gaps exist: there is no create/update/delete for task posts, no update/delete for calendar events, and no messenger read capability.