| get-my-member-info | Get information about the authenticated user. This tool retrieves your Dooray member profile using your API token. Most importantly, it returns your member ID which is needed for other operations like filtering tasks by assignee. No parameters needed - it automatically uses your authentication token. Examples: Returns your complete member profile including: id: Your member ID (important for task queries) name, email, organization locale, timezone settings display preferences
This is often the first tool to call to get your member ID for use in other tools like list-tasks. |
| get-project-list | Get list of active projects that you belong to. This tool retrieves only active projects where you are a member. Archived projects are excluded. Note: Returns compact response with essential fields only. For complete project details, use get-project. IMPORTANT: When the user provides a specific Dooray URL (e.g., "https://nhnent.dooray.com/task/PROJECT_ID"), do NOT use this tool. Instead, extract the PROJECT_ID from the URL and call get-project directly to get information about that specific project. This tool is for browsing your active projects when no specific project URL or ID is provided. Examples: Get all your active projects: {} (empty parameters) Get second page with 50 items: {"page": 1, "size": 50}
Returns a paginated list with project id and name (project code) for each project. |
| get-project | Get detailed information about a specific Dooray project. This tool retrieves complete details of a single project including its configuration, scope, organization, and category information. URL Pattern Recognition:
When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID" or "https://nhnent.dooray.com/task/PROJECT_ID/TASK_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter. IMPORTANT: When a specific project URL is provided, use this tool directly instead of calling get-project-list first. Examples: From URL: Extract "1769381697328002548" from "https://nhnent.dooray.com/task/1769381697328002548" → {"projectId": "1769381697328002548"} From URL with task: Extract "1769381697328002548" from "https://nhnent.dooray.com/task/1769381697328002548/4143841687558152504" → {"projectId": "1769381697328002548"} Direct ID: {"projectId": "123456"} "Show me details of project 123456"
Returns project information including: id, code, name: Basic project identifiers description: Project description scope: private or public organizationId: Organization this project belongs to projectCategoryId: Category ID (null if no category) projectType: default, task, or issue state: active or archived
Use this to get full details about a specific project when you have its project ID or URL. |
| get-task-list | Get list of tasks in a Dooray project with powerful filtering and sorting. IMPORTANT: projectId is REQUIRED. This tool fetches tasks from a specific project. Note: Returns compact response with essential fields only. For complete task details, use get-task. URL Pattern Recognition:
When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID" or "https://nhnent.dooray.com/task/PROJECT_ID/TASK_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter. When a URL is provided, use get-project for project info instead of get-project-list. Member ID Filters (use organizationMemberId from get-my-member-info): toMemberIds: Tasks assigned to specific members ccMemberIds: Tasks where members are in CC fromMemberIds: Tasks created by specific members
Workflow Filters: postWorkflowClasses: ["backlog", "registered", "working", "closed"] postWorkflowIds: Project-specific workflow IDs
Date Filters (flexible patterns): Examples: All tasks in project:
{"projectId": "123456"} Tasks assigned to me:
{"projectId": "123456", "toMemberIds": ["my-org-member-id"]} Tasks in "working" status:
{"projectId": "123456", "postWorkflowClasses": ["working"]} Tasks due today:
{"projectId": "123456", "dueAt": "today"} Recent tasks (sorted by update time):
{"projectId": "123456", "updatedAt": "prev-7d", "order": "-postUpdatedAt"} Tasks with specific milestone and tags:
{"projectId": "123456", "milestoneIds": ["milestone123"], "tagIds": ["tag456"]}
Sorting: Default: Tasks are sorted by most recently updated first (-postUpdatedAt) Custom: Use order parameter with: postDueAt, postUpdatedAt, createdAt Prefix with - for descending (e.g., "-createdAt")
Returns paginated task list with id, number, subject, status, priority, dueDate, assignees, tags, and milestone. |
| get-task | Get detailed information about a specific task. This tool retrieves complete details of a task including its full body content, attachments, workflow status, assignees, and all metadata. URL Pattern Recognition - Two formats supported: Project-scoped URL: "https://nhnent.dooray.com/task/PROJECT_ID/TASK_ID" Extract the first numeric ID after "/task/" as projectId (optional) Extract the second numeric ID as taskId (required) Example: "https://nhnent.dooray.com/task/1769381697328002548/4206132384174602537"
→ {"taskId": "4206132384174602537", "projectId": "1769381697328002548"}
Task-only URL: "https://nhnent.dooray.com/project/tasks/TASK_ID"
IMPORTANT: taskId is REQUIRED, projectId is OPTIONAL The taskId is the unique identifier (ID) from the URL, NOT the sequential task number shown in the UI You can fetch task details with just the taskId without knowing the projectId When a specific task URL is provided, use this tool directly instead of calling get-project-list first To find taskId from task descriptions, use get-task-list to search and get task IDs
Examples: From URL pattern 1: {"taskId": "4206132384174602537", "projectId": "1769381697328002548"} From URL pattern 2: {"taskId": "4206132384174602537"} Just taskId: {"taskId": "789012345"} With both IDs: {"taskId": "789012345", "projectId": "123456"}
Returns complete task information including: Basic info: id, number, subject, taskNumber (PROJECT-CODE/NUMBER format) Project: project object with id and code Status: workflowClass (registered/working/closed), workflow (id and name), closed flag, priority Dates: createdAt, updatedAt, dueDate, dueDateFlag Content: body with mimeType (text/x-markdown or text/html) and content Hierarchy: parent task information (id, number, subject) if this is a subtask People: users object with from (creator), to (assignees), cc (watchers) Organization: milestone (id, name), tags array (id, name) Files: files array with attachments (id, name, size)
|
| create-task | Create a new task (업무) in a Dooray project. Required fields: projectId and subject. RECOMMENDED INTERACTIVE WORKFLOW (ask user questions step by step): Templates: Call get-project-template-list, ask user if they want to use a template If yes: Call get-project-template to get full details, use as defaults for subject/body/tags/assignees/cc/priority Extract tag IDs: template.tags.map(t => t.id) Transform members: template.users.to/cc to {id, type} format
Title & Body: Ask for task title (subject) and content (body) If template selected: Elaborate user's content to fit template structure If no template and no body provided: Ask user for body content before creating task Body format: {"mimeType": "text/x-markdown", "content": "..."}
Assignees & CC: Ask for "to" (담당자) and "cc" (참조) Get options: get-my-member-info (current user), get-project-member-list (members), get-project-member-group-list (groups) Member types: {"id": "...", "type": "member|group|email"} "member": organizationMemberId, "group": group id, "email": email address
Tags: Call get-tag-list, ask which tags to register CRITICAL: Check tagGroup.mandatory=true - MUST select from these groups or task creation fails (500 error) tagGroup.selectOne=true: Select exactly ONE tag from group tagGroup.selectOne=false: Select one or MORE tags from group
Key Settings: Priority: Default "none" if not specified Subtasks: Set parentPostId to create 하위업무 URL extraction: "https://nhnent.dooray.com/task/PROJECT_ID" → extract PROJECT_ID
Examples: Simple: {"projectId": "123", "subject": "Fix bug", "tagIds": ["tag1"]} With template: {"projectId": "123", "subject": "[SMS] Issue", "body": {...}, "assignees": [{...}], "tagIds": ["tag1", "tag2"]} Full: {"projectId": "123", "subject": "Deploy", "assignees": [{"id": "user1", "type": "member"}], "cc": [{"id": "user2", "type": "member"}], "priority": "high", "tagIds": ["tag1"]}
Returns: Created task with ID and number. |
| update-task | Update an existing task in a Dooray project. RECOMMENDED WORKFLOW (guide for AI assistants): Fetch Current Task: Call get-task to retrieve current values before updating Preserves existing data when only updating specific fields Shows current assignees, tags, milestone, workflow status Use returned data to know what values to preserve
Determine Changes: Identify what needs updating If changing assignees/cc: Get options from get-my-member-info, get-project-member-list, get-project-member-group-list Member types: {"id": "...", "type": "member|group|email"} "member": organizationMemberId, "group": group id, "email": email address
Handle Tags: Call get-tag-list if updating tags CRITICAL: Check tagGroup.mandatory=true - MUST include tags from all mandatory groups or update fails (500 error) tagGroup.selectOne=true: Select exactly ONE tag from group tagGroup.selectOne=false: Select one or MORE tags from group IMPORTANT: tagIds is a COMPLETE replacement, not additive
Handle Workflow: Use get-project-workflow-list to see available statuses Provide workflowId to change task status Workflow classes: backlog (대기), registered (등록/할 일), working (진행 중), closed (완료)
IMPORTANT NOTES: Complete Replacement: assignees, cc, and tagIds completely REPLACE existing values (not merged) Preserve Data: Only provide fields you want to change; unprovided fields remain unchanged Korean Terms: "to" = 담당자 (assignee), "cc" = 참조 (reference) Priority: Use "none" to remove priority
URL Pattern Recognition:
When given a Dooray task URL like "https://nhnent.dooray.com/task/PROJECT_ID/TASK_ID": Examples: Change priority: {"projectId": "123", "taskNumber": 42, "priority": "high"} Update assignees: {"projectId": "123", "taskNumber": 42, "assignees": [{"id": "user123", "type": "member"}]} Change status: {"projectId": "123", "taskNumber": 42, "workflowId": "working"} Update tags: {"projectId": "123", "taskNumber": 42, "tagIds": ["tag1", "tag2"]} Clear milestone: {"projectId": "123", "taskNumber": 42, "milestoneId": null}
Returns: Updated task with all current details. |
| create-task-comment | Add a comment (댓글) to an existing Dooray task. This tool creates a comment on a task, separate from editing the task body itself. Use this for: Adding progress updates or status notes Responding to questions or discussions Logging information related to the task Attaching files with context
When to Use: create-task-comment: For adding discussion, updates, or notes (댓글) update-task: For modifying the task description, title, or metadata
URL Pattern Recognition:
When given a Dooray task URL like "https://nhnent.dooray.com/task/PROJECT_ID/TASK_ID": File Attachments: To attach files, first upload them using the file upload API Then provide the returned file IDs in the attachFileIds parameter See: https://helpdesk.dooray.com/share/pages/9wWo-xwiR66BO5LGshgVTg/2939987647631384419
Content Format: Use "text/x-markdown" for markdown formatting (recommended) Use "text/html" for rich HTML content Body format: {"mimeType": "text/x-markdown", "content": "..."}
Examples: Simple comment: {
"projectId": "123456",
"taskId": "789012",
"body": {"mimeType": "text/x-markdown", "content": "Progress update: Completed initial implementation"}
} With markdown: {
"projectId": "123456",
"taskId": "789012",
"body": {
"mimeType": "text/x-markdown",
"content": "## Test Results\n\n- ✅ All unit tests passing\n- ✅ Integration tests passed\n- ⏳ Performance testing in progress"
}
} With file attachments: {
"projectId": "123456",
"taskId": "789012",
"body": {"mimeType": "text/x-markdown", "content": "See attached screenshots"},
"attachFileIds": ["file123", "file456"]
}
Returns: Created comment with ID. |
| get-task-comment-list | Get list of comments (댓글) on a specific Dooray task. This tool fetches all comments that have been added to a task. Comments are discussions, updates, or notes added by team members. URL Pattern Recognition:
When given a Dooray task URL like "https://nhnent.dooray.com/task/PROJECT_ID/TASK_ID" or "https://nhnent.dooray.com/project/tasks/TASK_ID": IMPORTANT: Both projectId and taskId are REQUIRED. Pagination: Sorting: Note: Returns filtered response with essential fields only (id, creator, body). Examples: Get all comments (first page): {"projectId": "123456", "taskId": "789012"} Get newest comments first: {"projectId": "123456", "taskId": "789012", "order": "-createdAt"} Get second page: {"projectId": "123456", "taskId": "789012", "page": 1, "size": 20}
Returns a paginated response with totalCount and array of comments containing: Use this tool to view discussion history, progress updates, or notes on a task. |
| update-task-comment | Update an existing comment (댓글) on a Dooray task. This tool modifies the content or attachments of an existing task comment. IMPORTANT LIMITATION: Comments created from incoming emails CANNOT be modified. Only regular comments can be updated. URL Pattern Recognition:
When given a Dooray task URL like "https://nhnent.dooray.com/task/PROJECT_ID/TASK_ID" or "https://nhnent.dooray.com/project/tasks/TASK_ID": Extract the first numeric ID after "/task/" as projectId (if present) Extract the second numeric ID (or the ID after "/tasks/") as taskId Use get-task-comment-list to find the comment ID you want to update
REQUIRED: projectId, taskId, and commentId are all required. Optional Parameters: You can provide either body, attachFileIds, or both. If you only want to update the text, just provide body. If you only want to update attachments, just provide attachFileIds. File Attachments: To attach files, first upload them using the file upload API Then provide the returned file IDs in the attachFileIds parameter See: https://helpdesk.dooray.com/share/pages/9wWo-xwiR66BO5LGshgVTg/2939987647631384419
Workflow: Use get-task-comment-list to find the comment you want to update and get its ID Call update-task-comment with the comment ID and new content/attachments The comment will be modified immediately
Content Format: Use "text/x-markdown" for markdown formatting (recommended) Use "text/html" for rich HTML content Body format: {"mimeType": "text/x-markdown", "content": "..."}
Examples: Update comment text only: {
"projectId": "123456",
"taskId": "789012",
"commentId": "4219415732999317024",
"body": {
"mimeType": "text/x-markdown",
"content": "## Updated Comment\n\nThis comment has been revised"
}
} Update with new attachments: {
"projectId": "123456",
"taskId": "789012",
"commentId": "4219415732999317024",
"body": {
"mimeType": "text/x-markdown",
"content": "See updated files"
},
"attachFileIds": ["file123", "file456"]
}
Returns: Success message upon completion. |
| get-milestone-list | Get list of milestones for a project. Milestones are used to organize and track tasks by release or sprint. This tool retrieves all milestones in a project. Note: Returns compact response with essential fields only. URL Pattern Recognition:
When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter. Examples: Get all milestones: {"projectId": "123456"} Get only open milestones: {"projectId": "123456", "status": "open"} Get only closed milestones: {"projectId": "123456", "status": "closed"}
Returns an array of milestones with id, name, description, dates, and status. Use milestone IDs when creating or updating tasks. |
| get-tag-list | Get list of tags for a project, grouped by tag groups. Tags are used to categorize and label tasks. This tool retrieves all available tags organized by their tag groups for better clarity. Response Format:
Returns tags grouped by their tagGroup: {
"tagGroups": [
{
"id": "group1",
"name": "Type",
"mandatory": true,
"selectOne": true,
"tags": [
{ "id": "tag1", "name": "Bug" },
{ "id": "tag2", "name": "Feature" }
]
}
]
} CRITICAL - Mandatory Tag Groups:
When creating/updating tasks, you MUST include tags from all mandatory tag groups: mandatory: true - At least one tag from this group is required selectOne: true - Exactly ONE tag must be selected from this group selectOne: false - One OR MORE tags must be selected from this group
Failing to provide required tags will result in a 500 error. URL Pattern Recognition:
When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter. Pagination: Examples: Get all tags: {"projectId": "123456"} Get second page: {"projectId": "123456", "page": 1, "size": 100}
Use tag IDs when creating or updating tasks with create-task or update-task tools. |
| get-project-template-list | Get list of project task templates. Templates are pre-created task structures with predefined title and body content. This tool retrieves all available templates in a project. URL Pattern Recognition:
When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter. Note: Returns compact response with essential fields only (id and templateName). Pagination: Default page size is 20 (maximum: 100) Use page parameter to get additional pages if totalCount > size Set size parameter to control items per page (max: 100)
Examples: Get all templates (first page): {"projectId": "123456"} Get second page: {"projectId": "123456", "page": 1, "size": 20} Get with custom page size: {"projectId": "123456", "page": 0, "size": 50}
Returns a paginated response with totalCount and an array of templates containing id and templateName. Templates help users quickly create tasks with predefined structure and content, useful for common task types like bug reports, feature requests, or documentation tasks. |
| get-project-template | Get detailed information about a specific project template. This tool retrieves complete template details including body, guide, subject, users, tags, and milestone. The returned data is intended for creating new tasks from templates. IMPORTANT - Full Details Returned:
This tool returns ALL template fields (not filtered) because: Template data will be used for creating new tasks Need body, guide, subject, users, tags, milestone for task creation This is a detail view, not a list view
Template Macros:
Template macros like ${year}, ${month}, etc. are returned as-is (not interpolated). These can be processed when creating tasks if needed. URL Pattern Recognition:
When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter. How to get template IDs:
Use the get-project-template-list tool to list all templates in a project and get their IDs. Examples: Get template details: {"projectId": "123456", "templateId": "789012"} "Show me details of template 789012 in project 123456"
Returns complete template information including: id: Template ID templateName: Template name project: Project info (id, code) body: Template body with mimeType and content (markdown or HTML) guide: Template guide/instructions with mimeType and content subject: Default task subject users: Default assignees (to) and CC tags: Default tag IDs milestone: Default milestone (id, name) priority: Default priority level dueDate, dueDateFlag: Default due date settings isDefault: Whether this is the default template
Use this tool to get full template details before creating a new task from the template. |
| get-project-member-list | Get list of members in a project with their details. This tool fetches project members and enriches each member with detailed information including name and email address. URL Pattern Recognition:
When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter. Role Filtering: Optionally filter by roles: ["admin"], ["member"], or ["admin", "member"] If not specified, returns all members regardless of role
Pagination: Note: Returns compact response with essential fields only (id, name, externalEmailAddress). Examples: Get all members: {"projectId": "123456"} Get only admins: {"projectId": "123456", "roles": ["admin"]} Get with pagination: {"projectId": "123456", "page": 0, "size": 50}
Returns a paginated response with totalCount and array of members containing: id: Member ID (organizationMemberId) name: Member's display name externalEmailAddress: Member's email address
Use this tool to find project members for assigning tasks or understanding team composition. |
| get-project-member-group-list | Get list of member groups in a project. Member groups are collections of members that can be assigned to tasks as a group. This tool retrieves all member groups configured in a project. URL Pattern Recognition:
When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter. Pagination: Note: Returns compact response with essential fields only (id and code). Examples: Get all member groups: {"projectId": "123456"} Get with pagination: {"projectId": "123456", "page": 0, "size": 50}
Returns a paginated response with totalCount and array of member groups containing: Use this tool to find member groups for assigning tasks to groups of members. |
| get-project-workflow-list | Get list of workflow statuses (업무 상태) for a project. Workflows represent the task statuses available in a project. There are four workflow classes: backlog: 대기 (waiting/backlog) registered: 등록/할 일 (registered/to-do) working: 진행 중 (in progress) closed: 완료 (completed/done)
Each project may have custom workflows within these classes. Use workflow IDs when creating or updating tasks (e.g., in create-task or update-task tools). URL Pattern Recognition:
When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID", extract the PROJECT_ID (the numeric ID after "/task/") and use it as the projectId parameter. Examples: Returns: Array of workflows with id, name, order, and class. |