使用说明
门道MCP
用于管理Dooray业务的Model Context Protocol(MCP)服务器。
该MCP服务器提供12种工具,包括创建/查看/修改/列表、管理评论、查看项目列表/成员/状态/标签。
基本要求
这个项目 紫外线使用管理Python依赖性。uv是一个快速可靠的Python包管理器。
uv安装
在MacOS上使用Homebrew安装:
brew install uv
其他操作系统的安装方法 uv官方文件请参阅。
安装
步骤1:发放API令牌
在“个性化设置”>“API”>“个性化身份验证令牌”菜单中创建令牌。
- 令牌具有与已授权帐户相同的权限
- 使用API所做的工作与用户登录并直接使用Dooray没有区别。
步骤2:设置环境变量
有两种方法可以设置令牌:
方法A:全局设置(推荐)
在用户主目录中设置,以供所有项目使用:
// ~/.claude/settings.json
{
"env": {
"DOORAY_API_TOKEN": "your-api-token-here",
"DOORAY_API_BASE_URL": "https://api.dooray.com" // 선택사항 (기본값: https://api.dooray.com)
}
}
方法B:按项目设置
在项目目录中设置为仅在特定项目中使用:
// <프로젝트 디렉토리>/.claude/settings.local.json
{
"env": {
"DOORAY_API_TOKEN": "your-api-token-here",
"DOORAY_API_BASE_URL": "https://api.dooray.com" // 선택사항 (기본값: https://api.dooray.com)
}
}
支持的API服务器
DOORAY_API_BASE_URL 通过环境变量支持多种Dooray环境:
- 私有云 (默认值):
https://api.dooray.com - 公共云:
https://api.gov-dooray.com - 公共业务网云:
https://api.gov-dooray.co.kr - 金融云:
https://api.dooray.co.kr
步骤3:在Claude Code中安装MCP服务器
在Claude Code中运行以下命令安装Dooray MCP服务器:
claude mcp add dooray -- uvx --from git+https://github.com/sunghyun-k/dooray-mcp dooray-mcp
功能
此MCP服务器提供以下12种工具:
1. create_task -创建业务
创建新任务。
必需参数:
subject:业务标题
支持的输入方式:
- 项目ID:
project_id="1234567890123456789" - 项目代码:
project_code="개발팀-업무"
其他参数(全部可选):
body_content:业务正文内容body_mime_type:正文MIME类型(默认:text/x-markdown,或text/html)users_to:联系人列表(例如:[{"type": "member", "member": {"organizationMemberId": "123"}}])users_cc:引用列表parent_post_id:父业务ID(如果创建为子业务)priority:优先级(highest,high,normal,low,lowest,none)due_date:截止日期(ISO 8601格式,例如:2025-12-31T23:59:59+09:00)milestone_id:里程碑IDtag_ids:标记ID列表(例如:["tag1", "tag2"])
返回信息:
- 成功与否
- 生成的业务ID
- 消息
使用示例:
# 기본 업무 생성
create_task(
project_code="개발팀-업무",
subject="새로운 기능 구현"
)
# 상세 정보가 포함된 업무 생성
create_task(
project_code="개발팀-업무",
subject="버그 수정 필요",
body_content="로그인 버튼이 작동하지 않는 문제",
priority="high",
due_date="2025-11-30T23:59:59+09:00",
users_to=[{"type": "member", "member": {"organizationMemberId": "123"}}]
)
2. get_task -业务查询
查询业务的详细信息。
支持的输入方式:
- 仅提供业务ID:
task_id="9876543210987654321" - 项目代码+业务编号:
project_code="개발팀-업무",task_number=123 - Dooray Web URL:
url="https://company.dooray.com/task/..."
返回信息:
- 业务标题、正文、状态
- 联系人,创建者信息
- 创建日期、修改日期、截止日期
- 工作流、里程碑、标签
- 父业务信息
- 子任务列表(最多100个)
3. list_task_comments -查看评论
查询业务的评论列表。
支持的输入方式:
- 仅提供业务ID:
task_id="9876543210987654321" - 项目代码+业务编号:
project_code="개발팀-업무",task_number=123 - Dooray Web URL:
url="https://company.dooray.com/task/..."
其他参数:
page:页码(默认值:0,每页20个)
返回信息:
- 总评论数(totalCount)
- 当前页码(page)
- 返回的评论数(returnedCount)
- 是否存在下一页(hasMore)
- 评论列表(ID、类型、作者、内容、创建时间、修改时间)
4. create_task_comment -写评论
在工作中写新的评论。
必需参数:
content:评论内容
支持的输入方式:
- 仅提供业务ID:
task_id="9876543210987654321" - 项目代码+业务编号:
project_code="개발팀-업무",task_number=123 - Dooray Web URL:
url="https://company.dooray.com/task/..."
其他参数:
mime_type:内容类型(默认:text/x-markdown,或text/html)
返回信息:
- 成功与否
- 生成的评论ID
5. update_task_comment -修改评论
修改业务评论。
必需参数:
comment_id:评论ID(可通过list_task_comments查询)content:要修改的评论内容
支持的输入方式:
- 仅提供业务ID:
task_id="9876543210987654321" - 项目代码+业务编号:
project_code="개발팀-업무",task_number=123 - Dooray Web URL:
url="https://company.dooray.com/task/..."
其他参数:
mime_type:内容类型(默认:text/x-markdown,或text/html)
返回信息:
- 成功与否
- 错误消息(失败时)
使用示例:
-
首先查看评论列表:
comments = list_task_comments(project_code="개발팀-업무", task_number=123) # 결과에서 수정할 댓글의 ID 확인 -
修改评论:
update_task_comment( comment_id="1234567890123456789", content="수정된 댓글 내용입니다.", project_code="개발팀-업무", task_number=123 )
注意: 通过电子邮件发送的邮件无法修改。
6. update_task -修改业务
修改业务信息。只需提供想要修改的字段(支持部分更新)。
支持的输入方式:
- 仅提供业务ID:
task_id="9876543210987654321" - 项目代码+业务编号:
project_code="개발팀-업무",task_number=123 - Dooray Web URL:
url="https://company.dooray.com/task/..."
可修改的参数(全部可选):
subject:业务标题body_content:业务正文内容body_mime_type:正文MIME类型(默认:text/x-markdown,或text/html)users_to:联系人列表(例如:[{"type": "member", "member": {"organizationMemberId": "123"}}])users_cc:引用列表priority:优先级(highest,high,normal,low,lowest,none)due_date:截止日期(ISO 8601格式,例如:2025-12-31T23:59:59+09:00)milestone_id:里程碑IDtag_ids:标记ID列表(例如:["tag1", "tag2"])version:版本号(用于防止并发修改,如果为None,则使用最新版本)
返回信息:
- 成功与否
- 错误消息(失败时)
7. list_projects -查看项目列表
查看我所属项目的列表。
过滤器参数(全部可选):
state:项目状态筛选器(active,archived)scope:项目访问范围筛选器(private,public)page:页码(默认值:0,每页20个)
返回信息:
- 项目总数(totalCount)
- 当前页码(page)
- 返回的项目数(returnedCount)
- 是否存在下一页(hasMore)
- 项目列表(ID、代码、说明、状态、访问范围等)
使用示例:
# 모든 프로젝트 조회
list_projects()
# 활성 프로젝트만 조회
list_projects(state="active")
# 다음 페이지 조회
list_projects(page=1)
8. get_project_members -查看项目成员和组
查看项目的成员和成员组。每个成员组还包括所属成员的列表。
支持的输入方式:
- 项目ID:
project_id="4062369282783966548" - 项目代码:
project_code="개발팀-업무"
返回信息:
- 成员列表:
- 组织成员ID
- 项目中的角色(admin/member)
- 成员组列表:
- 组ID
- 组代码
- 组的成员列表(ID、名称)
使用示例:
您可以在指定联系人时找到所需的ID:
- 个人联系人:
{"type": "member", "member": {"organizationMemberId": "123"}} - 组联系人:
{"type": "group", "group": {"projectMemberGroupId": "456"}}
9. get_available_workflows -查看项目状态列表
查看项目中的所有可用状态。
支持的输入方式:
- 项目ID:
project_id="4062369282783966548" - 项目代码:
project_code="개발팀-업무"
返回信息:
- 状态ID(用于将业务状态更改为workflow_id)
- 状态名称(支持多种语言)
- 状态类(backlog、registered、working、closed)
- 排序顺序
状态类:
backlog:等待registered:注册(待办事宜)working:正在进行closed:完成
10. list_project_tasks -查看项目任务列表
查看项目的业务列表。
支持的输入方式:
- 项目ID:
project_id="4062369282783966548" - 项目代码:
project_code="개발팀-업무"
过滤器参数(全部可选):
from_member_ids:作者ID列表(organizationMemberId)to_member_ids:联系人ID列表(organizationMemberId)cc_member_ids:引用ID列表(organizationMemberId)workflow_classes:状态类列表(状态的大分类,get_available_workflows可通过查询)subject:标题筛选器(部分匹配)created_at:创建日期筛选器(默认:prev-30d).today,thisweek,prev-{N}d,next-{N}d,ISO 8601范围支持page:页码(默认值:0,每页20个)
返回信息:
- 项目ID
- 总业务数(totalCount)
- 当前页码(page)
- 返回的计数(returnedCount)
- 是否存在下一页(hasMore)
- 工作列表(ID、标题、状态、联系人等)
使用示例:
# 프로젝트의 모든 업무 조회
list_project_tasks(project_code="개발팀-업무")
# 특정 상태 클래스의 업무만 조회 (클래스는 get_available_workflows로 확인)
list_project_tasks(
project_code="개발팀-업무",
workflow_classes=["working"]
)
# 특정 담당자의 업무 조회
list_project_tasks(
project_code="개발팀-업무",
to_member_ids=["1234567890"]
)
11. set_task_workflow -更改业务状态
更改业务的状态。
必需参数:
workflow_id:要更改的状态ID(可通过get_available_workflows查询)
支持的输入方式:
- 仅提供业务ID:
task_id="9876543210987654321" - 项目代码+业务编号:
project_code="개발팀-업무",task_number=123 - Dooray Web URL:
url="https://company.dooray.com/task/..."
返回信息:
- 成功与否
- 错误消息(失败时)
使用示例:
-
首先查看项目的可用状态列表:
workflows = get_available_workflows(project_code="개발팀-업무") # 결과에서 원하는 상태의 ID 확인 -
将业务状态更改为相应的状态ID:
set_task_workflow( workflow_id="3629707640373969653", project_code="개발팀-업무", task_number=123 )
12. list_project_tags -查看项目标签列表
查看项目中所有可用的标记。
支持的输入方式:
- 项目ID:
project_id="4062369282783966548" - 项目代码:
project_code="개발팀-업무"
其他参数:
page:页码(默认值:0,每页20个)
返回信息:
- 标签总数(totalCount)
- 当前页码(page)
- 返回的标记数(returnedCount)
- 是否存在下一页(hasMore)
- 标签列表(ID、名称、颜色、标签组信息)
标签组属性:
mandatory:如果为true,则注册业务时需要为该组指派一个或多个标签selectOne:如果为true,则只能从组中选择一个标签,如果为false,则可以选择多个标签
使用示例:
-
查看项目的标签列表:
tags = list_project_tags(project_code="개발팀-업무") # 결과에서 원하는 태그의 ID 확인 -
使用查询的标记ID在创建业务时标记:
create_task( project_code="개발팀-업무", subject="새로운 기능", tag_ids=["4062401244884975089", "4062400865106463592"] )
许可证
MIT许可证