Skip to main content
Glama
seonmikii

gdc-claude-plugin

by seonmikii

gdc-claude-plugin

Claude Code(및 Claude Desktop)에서 GDC(gdc-service) 를 쓰기 위한 플러그인이다. MCP 도구 + 슬래시 커맨드 + 진행률 자동 동기화 훅을 한 번에 설치한다. 기본 연결 대상은 운영 서버 https://gdc.gemiso.com.

📘 사용 안내서 — https://seonmikii.github.io/gdc-claude-plugin/ 설치부터 일상적인 사용까지 화면과 예시로 안내한다. Claude Code / Claude Desktop 탭 전환, 한국어·English 지원. 처음 쓴다면 여기부터.

구성 요소

  • MCP 서버(gdc-local, stdio) — 태스크 조회/생성/수정, 태스크 숨기기·삭제·복구, 태스크 댓글, 작업 요청 문서 연동, 진행률 동기화, GitHub PR 연결, 건의사항 제출 등 도구 34종. (Claude Code·Desktop 공통)

  • 슬래시 커맨드 13종/gdc-login /gdc-switch /gdc-my-tasks /gdc-tasks /gdc-task /gdc-task-new /gdc-task-from-doc /gdc-doc-from-task /gdc-link-task /gdc-apply /gdc-sync /gdc-suggest /gdc-update. (Claude Code 전용)

  • PostToolUse 훅docs/requests/**/*.md 편집 시 연결된 태스크 진행률 자동 동기화. (Claude Code 전용)

Related MCP server: claude-code-mcp

전제조건


Claude Code에서 사용

설치 (각 사용자가 자기 PC에서 1회)

마켓플레이스 추가와 설치는 사용자별 설정(~/.claude)이라, 팀원 모두 각자 한 번씩 실행해야 한다.

# 1) 마켓플레이스 추가 (사용자당 1회)
/plugin marketplace add seonmikii/gdc-claude-plugin
# 2) 플러그인 설치
/plugin install gdc-claude-plugin@gdc-marketplace
# 3) 적용
/reload-plugins        # 또는 Claude Code 재시작

적용 후 /mcp 또는 /plugin에서 gdc-local✓ Connected로 뜨면 정상.

업데이트 (새 버전 반영)

/gdc-update

터미널 CLI·VSCode 확장 모두 동작한다(환경을 감지해 알아서 분기한다). 실행 후 Claude Code를 재시작해야 반영된다.

설치/업데이트가 EBUSY: resource busy or locked 로 막히면, 실행 중인 MCP 서버가 캐시 폴더를 점유한 것이다. 플러그인을 Disable 후 재설치하거나, Claude Code를 완전 재시작한 뒤 다시 실행한다.

인증 (브라우저 핸드오프)

/gdc-login

브라우저 창이 열리면 평소처럼 로그인(Google·로컬 모두 가능)하고 워크스페이스/프로젝트를 선택한 뒤 "연결 허용"을 누른다.

  • 인증 토큰은 ~/.gdc-mcp/credentials.json 에 저장된다(사용자 단위 공유, 커밋 금지).

  • 선택한 워크스페이스/프로젝트는 현재 레포(폴더)에만 적용된다 → 레포마다 한 번씩 /gdc-login 하면 레포별로 다른 프로젝트를 쓴다.

  • 콜백은 127.0.0.1 loopback + 1회용 state로 한정된다.

슬래시 커맨드

커맨드

설명

/gdc-login

브라우저 핸드오프 인증/재인증 (워크스페이스·프로젝트 선택)

/gdc-switch

현재 레포의 워크스페이스/프로젝트 전환(재인증 없이)

/gdc-my-tasks [--overdue] [--undated] [--all]

내 미해결 태스크 조회(선택 프로젝트 기준)

/gdc-tasks <담당자> [--overdue] [--undated] [--all]

특정 담당자(이름 또는 id)의 태스크 조회

/gdc-task <id|제목>

태스크 상세 조회(하위·연관·상위 태스크 포함)

/gdc-task-new

새 태스크 생성(선택 목록·한글·담당자 자동)

/gdc-task-from-doc <path>

작업 요청 문서로 태스크 생성

/gdc-doc-from-task <task_id>

태스크로 작업 요청 문서 생성·연동

/gdc-link-task <task_id> [doc]

기존 태스크를 기존 문서와 연동 + 문서 내용 반영(선택)

/gdc-apply [path]

문서 변경을 태스크 본문/댓글/하위 태스크에 반영(분류→라우팅)

/gdc-sync [path]

문서 진행률을 연결된 태스크에 강제 동기화

/gdc-suggest [내용|list|번호]

건의사항 제출 / 내 건의 목록 / 답변 확인

/gdc-update

gdc-marketplace 갱신 후 플러그인 최신 버전으로 승격


Claude Desktop에서 사용

Claude Desktop은 플러그인/마켓플레이스/슬래시 커맨드/훅을 지원하지 않는다. 대신 MCP 서버를 직접 등록하면 아래 도구와 프롬프트(슬래시 커맨드 대응)를 모두 쓸 수 있다.

  1. 레포를 로컬에 클론한다.

    git clone https://github.com/seonmikii/gdc-claude-plugin
  2. Claude Desktop 설정 파일에 MCP 서버를 추가한다.

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    {
      "mcpServers": {
        "gdc-local": {
          "command": "uv",
          "args": ["run", "--directory", "<클론 경로>/gdc-claude-plugin", "python", "-m", "gdc_mcp.server"],
          "env": {
            "GDC_BASE_URL": "https://gdc.gemiso.com",
            "GDC_WEB_URL": "https://gdc.gemiso.com"
          }
        }
      }
    }
  3. Claude Desktop을 재시작한다. 인증은 대화창에서 gdc_login 프롬프트(입력창 "+" 메뉴)를 실행하거나 "gdc 로그인"이라고 요청한다.

Desktop에서는 진행률 자동 동기화 훅과 /gdc-* 슬래시 커맨드는 동작하지 않는다. 동일 기능을 MCP 프롬프트 12종(gdc_login/gdc_switch/gdc_my_tasks/gdc_tasks/gdc_task/gdc_task_new/gdc_task_from_doc/gdc_doc_from_task/gdc_link_task/gdc_apply/gdc_sync/gdc_suggest)으로 "+" 메뉴에서 호출할 수 있고, 진행률 동기화는 sync_doc_progress(또는 gdc_sync 프롬프트)로 수동 실행한다.

/gdc-update는 플러그인 CLI(마켓플레이스) 관리 커맨드라 대응 MCP 프롬프트가 없다. Desktop은 플러그인 개념이 없어(MCP 서버를 직접 등록) git pull로 최신 코드를 받아 Desktop을 재시작하면 반영된다.


MCP 도구 (Code·Desktop 공통)

자연어로 요청하면 Claude가 아래 도구를 호출한다("내 태스크 보여줘", "김철수 담당 태스크 조회해줘" 등).

도구

설명

gdc_login

브라우저 핸드오프로 MCP 전용 토큰 발급, 워크스페이스/프로젝트를 레포별 저장

get_context

현재 레포에 적용되는 워크스페이스/프로젝트 확인

set_context

현재 레포의 워크스페이스/프로젝트 전환(재인증 없이)

list_workspaces

접근 가능한 워크스페이스 목록

list_projects

지정 워크스페이스의 프로젝트 목록 (종료된 프로젝트 제외)

list_customers

프로젝트에 지정 가능한 고객사 목록

get_project_enums

프로젝트별 status/priority/task_type/members(담당자·관련자 후보)

list_my_tasks

내(담당/작성/참여) 미해결 태스크 — not_finished/overdue/undated

list_tasks

특정 담당자(이름 또는 id)의 태스크 — 동일 필터

search_tasks

현재 프로젝트 키워드·다중 필터 검색(상태/우선순위/유형/담당자/관련자/고객사/종료일 범위). 완료 태스크도 기본 포함, 결과는 번호 내림차순(관련도순 아님)

create_task

태스크 생성(담당자 기본=본인, 날짜·멤버 입력 검증, 완료 상태면 진행률·실제 종료일 자동 보정). 상태/우선순위/유형은 생략 시 프로젝트 enum 기준 기본값(WBS형은 등록/보통/기타)이 적용된다. 본문은 라벨 섹션 템플릿(평문)으로 넘기면 GDC 리치텍스트(HTML)로 변환

update_task

태스크 부분 수정(날짜 순서·미래·멤버 검증, 상태/우선순위/유형은 프로젝트 enum 대조 후 차단). 본문은 같은 라벨 섹션 템플릿 — 통째 교체이므로 부분 수정은 edit_task_description 사용

edit_task_description

태스크 본문 최소 편집 — append_work(블렛 추가)·replace_section(라벨 섹션만 교체, 인라인 이미지 보존)

get_task

태스크 상세 조회(하위·연관·상위 태스크 + 실제 날짜·고객사·비중·관련자·태그·댓글 수 등 수정 가능 필드 포함). 저장값이 프로젝트 enum에 없으면 enum_mismatch로 표시. 연결된 GitHub PR은 pull_requests로 함께 반환

open_task

태스크 웹 화면을 Chrome 새 탭으로 열기

list_task_pr_candidates

태스크에 붙일 수 있는 GitHub PR 후보 조회(GitHub 실시간) + 연결 가능 레포 목록. 조회 실패 레포는 사유와 함께 failed_repos

link_task_pr

GitHub PR을 태스크에 연결 — repo"owner/repo"(레포가 하나면 생략)

unlink_task_pr

태스크의 PR 연결 해제 — 자동 연결(source=auto/auto_issue)은 PR 본문의 근거를 지워야 다시 안 붙는다

task_from_doc

작업 요청 문서로 태스크 생성 + 문서 frontmatter에 연동 기록(완료 상태면 진행률·실제 종료일 자동 보정)

link_task_to_doc

기존 태스크를 기존 문서와 연동(새로 만들지 않음)

sync_doc_progress

문서의 Phase/체크박스 진척을 연결된 태스크 진행률·상태·날짜에 동기화(description 전달 시 태스크 본문도 함께 갱신)

list_task_comments

태스크 댓글(Mention) 목록 조회

add_task_comment

태스크 댓글 작성(멘션 지원 — 본문 선두에 하이라이트 멘션 삽입, 알림 발송)

update_task_comment

태스크 댓글 수정(mentions 재전달 시 하이라이트 멘션 유지)

delete_task_comment

태스크 댓글 삭제

archive_task

태스크 숨기기/해제 토글(하위 일괄 처리, WBS 불가, confirm 게이트)

delete_task

태스크 삭제 — 소프트 삭제(휴지통 이동, 복구 가능, 관리자 이상, confirm 게이트)

restore_task

휴지통 태스크 복구(관리자 이상, confirm 게이트)

list_trashed_tasks

현재 프로젝트 휴지통(삭제된 태스크) 목록 — 복구 대상 식별

list_my_notifications

내 알림 목록(멘션·댓글·담당자 변경 등) + 미읽음 수 — 조회 전용, 전 워크스페이스 혼재

list_my_mentions

나와 관련된 댓글 멘션 목록(mentioned/authored/both, 기간·검색) — 현재 컨텍스트 스코프, 조회 전용

submit_suggestion

GDC·플러그인 건의사항 제출(버그/기능 요청/개선 제안/기타) — 워크스페이스·프로젝트 무관, 컨텍스트 불필요

list_my_suggestions

내가 제출한 건의사항 목록(상태·분류 필터) — 답변 여부(has_reply)까지, 본문·답변은 상세에서

get_suggestion

건의사항 상세 — 본문 + 관리자 답변 + 답변자·답변 시각

본문·댓글 자동 링크(v0.6.x): 평문으로 넘긴 태스크 본문·댓글은 HTML로 변환될 때 ① http(s):// URL과 ② 같은 프로젝트의 태스크 언급 #번호가 자동으로 링크된다(#409 → 해당 태스크 페이지 + 뒤에 (제목) 표시). 현재 프로젝트에 없는 번호·숨김 태스크는 평문 그대로 두고, 색상 코드(#fff)나 URL 프래그먼트는 링크하지 않는다. 이미 HTML로 넘긴 본문은 변환 없이 통과하므로 자동 링크도 적용되지 않는다.

입력 규칙(참고): 담당자/관련자는 user id 또는 멤버 이름(자동 id 해석, 비멤버면 멤버 목록 안내). 날짜는 YYYY-MM-DD이며 예상/실제 시작일 ≤ 종료일, 실제 종료일은 미래 불가(미충족 시 안내·차단). 완료 계열 상태(category=='done')로 태스크를 생성하면 진행률 100%·실제 종료일=오늘이 자동 주입된다.


로컬 개발 override

기본 연결은 운영 서버다. 로컬 gdc-service로 붙이려면 환경변수로 덮어쓴다(.env.example 참고). Code는 플러그인 .mcp.jsonenv, Desktop은 위 설정의 env를 바꾸면 된다.

GDC_BASE_URL=http://localhost:8000
GDC_WEB_URL=http://localhost:5173

주의

  • 인증은 브라우저 핸드오프 전용이다(username/password 자동 로그인 없음).

  • 토큰·시크릿은 저장 파일·메모리로만 다루며 커밋·로그에 노출하지 않는다.

  • 기본 연결(운영)은 HTTPS다. dev 서버(http://se.gemiso.com:11521)로 override 시 HTTP(평문) — 토큰 평문 전송 위험은 인지된 상태이며 별도 보완(후속) 대상이다.

Available Tools

28 tools
add_task_commentA

태스크에 댓글(멘션)을 작성한다. 필수: task_id, content(본문).

content는 평문으로 넘기면 GDC 리치텍스트(HTML)로 변환해 저장한다(이미 HTML이면 통과). mentions에 멤버 이름 또는 user id 리스트를 주면 각 멤버를 해석해 본문 맨 앞에 하이라이트 멘션 한 줄(GDC 에디터와 동일한 멘션 노드 — 화면에 볼드+강조색으로 표시)을 붙인다 → 서버가 이를 파싱해 멘션 알림을 발송한다. (멘션은 본문 선두에만 배치되며, 본문 중간 커서 위치 삽입은 지원하지 않는다.) 비멤버를 멘션하면 가능한 멤버 목록과 함께 오류로 안내한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
task_idYes
mentionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It richly discloses that plain text is converted to GDC rich text, mentions are prepended as a highlighted line triggering notifications, mention placement is limited to the beginning, and non-member mentions cause an error listing possible members. This is exemplary transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense. Each sentence adds value, and the use of bold for emphasis and bullet-like structure aids scanning. There is no fluff, and the length is appropriate for the complexity of the mention behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (rich text conversion, mention parsing, notifications, error cases) and the presence of an output schema, the description is comprehensive. It covers input requirements, transformation rules, constraints on mention placement, and error behavior, leaving no significant gaps for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It thoroughly explains task_id (implicitly via 'task'), content (plain text vs HTML), and mentions (member names or user IDs, placement, notifications, error handling). This adds significant meaning beyond the bare schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'write a comment (mention) on a task' (태스크에 댓글(멘션)을 작성한다). It identifies the specific resource (task) and differentiates from sibling operations like listing, updating, or deleting comments by using the verb 'add' and explicitly covering mention creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: required fields are listed, content format rules are given, and the mention behavior is explained. It does not explicitly name alternative tools, but it implicitly distinguishes from comment read/update/delete siblings by focusing on creation and mention processing, which is sufficient for an agent to decide when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

archive_taskA

태스크를 숨기거나(archived=True) 숨김 해제한다(archived=False). 토글 API를 멱등 래핑한다.

task_id는 태스크 id(정수) 또는 제목(문자열) — 제목이면 현재 프로젝트에서 검색해 해석한다. 숨기면 모든 하위 태스크가 함께 숨김되고 고정(pin)은 자동 해제된다. WBS 프로젝트는 숨김 기능을 지원하지 않는다(안내). 숨김 해제는 상위가 숨김 상태면 막힌다(먼저 상위 숨김 해제).

확인 게이트: confirm=False(기본)면 대상과 현재/목표 상태만 미리보기로 반환하고 실행하지 않는다. confirm=True로 다시 호출해야 실제로 토글한다. 이미 원하는 상태면 호출 없이 그대로 둔다(멱등).

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
task_idYes
archivedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and excels: it discloses cascading hide to subtasks, automatic unpinning, WBS unsupported, parent-blocked unhide, the confirm gate requiring confirm=True to execute, and idempotent no-op behavior. This is exceptionally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While lengthy, every sentence contributes essential operational detail, and the use of bold headers and paragraphs structures the information effectively. There is no redundancy or fluff, making it as concise as the complexity demands.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all notable behaviors: idempotency, confirmation workflow, side effects on subtasks and pins, project restrictions, and edge cases like parent-blocked unhide. Even with an output schema present, it explains the confirm=False preview workflow, leaving no critical gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the raw schema by explaining that task_id accepts either an integer ID or a string title resolved via search in the current project, that archived sets the target state, and that confirm controls preview vs. execution. This fully compensates for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool hides or unhides a task by setting archived=True or archived=False, and describes itself as an idempotent wrapper around a toggle API. This distinguishes it from sibling tools like delete_task or restore_task, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete usage context: it mentions that WBS projects do not support hiding, that unhide is blocked if the parent is hidden, and that it works by toggling the archived state. It does not explicitly name alternative tools but effectively communicates when this tool is and isn't applicable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_taskA

태스크를 생성한다. 필수: project(프로젝트 ID), title.

[입력 수집 권장 흐름 — Desktop·Code 공통] 호출 전에 사용자에게 컬럼을 선택지로 하나씩 물어보고 고른 값을 넘긴다:

  1. get_context로 현재 프로젝트 확인 → get_project_enums로 status/priority/task_type/members 조회.

  2. 제목·내용(description)·예상 시작/종료일만 자유 입력으로 받는다.

  3. status/priority/task_type/관련자는 **선택 질문(AskUserQuestion)**으로 제시 — 보기는 한글 label, 각 질문에 반드시 "건너뛰기" 포함(실제 값 최대 3개, 나머지는 "기타"로). 고른 값의 name(관련자는 user id)을 넘긴다.

  4. 담당자(assignee)는 묻지 않는다(생략 시 로그인 사용자로 자동 등록 = 작성자와 동일).

[description — 라벨 섹션 템플릿(평문)] 본문은 평문 한 문단으로 넣지 말고 아래 템플릿으로 작성해 넘긴다. 도구가 GDC 리치텍스트(HTML)로 변환한다(라벨→볼드 문단, -→목록, 섹션 사이 빈 문단). [요약] 요청 내용 한두 줄 요약

[AS-IS]        ← 선택(TO-BE와 짝): 구현 전 상황이 실제로 드러날 때만
구현 전 상황

[TO-BE]        ← 선택(AS-IS와 짝)
구현 후 상황

[작업 내용]
- 실제 산출물 단계를 블렛(`-`)으로 한 줄씩

※ [요약]·[작업 내용]=필수, [AS-IS]/[TO-BE]=선택(짝) — 전/후 상황이 불명확하면 생략(추측·빈말 금지). ※ 체크박스 표시([ ]/[x])는 넣지 않는다(진행 상태는 progress 필드가 담당). ※ 빌드·타입체크·검증·테스트·lint·커밋·배포·버전 범프·'INDEX.md 이력 추가' 같은 프로세스 메타 단계는 넣지 않는다(실제 산출물 단계만). ※ 이미 HTML(태그로 시작)을 넘기면 변환 없이 그대로 저장된다.

값 형식: status/priority/task_type은 해당 프로젝트 enum의 'name', 날짜는 'YYYY-MM-DD'. assignee·participant_ids는 user id 또는 멤버 이름(full_name/username)을 넘기면 자동으로 id로 해석한다.

확장 필드(사용자가 명시할 때만 전달 — 질문으로 강요하지 않음): parent(상위 태스크 id), customer(고객사 id 또는 이름 — 이름은 현재 워크스페이스에서 자동 해석, 모호하면 후보 안내), actual_start_date/actual_end_date, progress(0~100), weight(비중 % — WBS 프로젝트 전용, 비WBS는 호출 전 차단. 형제 그룹 비중 합 100 초과는 서버가 검증).

태그는 지정할 수 없다 — 서버가 태스크의 태그를 본문·댓글의 tagMention에서만 동기화하므로 태그 id를 보내도 무시된다(읽기는 get_task의 tags로 가능).

제약(미충족 시 호출 전 ValueError로 안내·차단): 예상/실제 시작일 ≤ 종료일, 실제 종료일 미래 불가, 담당자/관련자는 해당 프로젝트 멤버만 지정 가능.

완료 보정: status가 완료 계열(category=='done')이면 progress=100·실제 종료일=오늘을 자동 주입한다 (progress/actual_end_date를 직접 전달한 경우 그 값이 우선).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
parentNo
statusNo
weightNo
projectYes
assigneeNo
customerNo
priorityNo
progressNo
task_typeNo
descriptionNo
actual_end_dateNo
participant_idsNo
planned_end_dateNo
actual_start_dateNo
planned_start_dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden and does so richly. It discloses automatic assignee assignment, description HTML conversion, tag synchronization behavior, auto-injection of progress/actual_end_date on completion, and name-to-id resolution, among other behavioral nuances.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Although long, the description is well-structured with clear sections, bullet lists, and a template, making it easy to parse. It is front-loaded with the core purpose and required fields, and every section adds necessary value for a complex 16-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for the tool's complexity: all 16 parameters are semantically covered, validation rules are explicit, and the output schema exists so return values need not be described. This provides an agent with sufficient context to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description compensates comprehensively. It explains every parameter, including value formats (enum names, YYYY-MM-DD dates, user ids or names), the description template, and special rules for weight, customer, and participant_ids.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with '태스크를 생성한다' (creates a task), using a specific verb and resource that clearly distinguishes it from siblings like update_task. It also specifies required fields (project, title) upfront, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool, including a recommended input-collection flow via get_context and get_project_enums, and states validation constraints that should block invocation. It doesn't explicitly mention alternatives like update_task, but the creation-focused purpose and detailed workflow make usage conditions clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_taskA

태스크를 삭제한다(소프트 삭제 → 휴지통 이동, 복구 가능). 관리자 이상 권한 필요.

task_id는 태스크 id(정수) 또는 제목(문자열) — 제목이면 현재 프로젝트에서 검색해 해석한다. 하위 태스크 처리: WBS 프로젝트는 하위 전체 연쇄 삭제, 비WBS는 직속 하위를 최상위로 승격 후 본체만 삭제한다(손자는 승격된 부모 밑 유지). 복구는 restore_task, 목록은 list_trashed_tasks.

확인 게이트: confirm=False(기본)면 삭제 대상과 하위 영향만 미리보기로 반환하고 삭제하지 않는다. confirm=True로 다시 호출해야 실제 삭제한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It discloses soft delete/recoverability, permission requirements, polymorphic task_id interpretation, cascading vs promoting subtask behavior, and a two-phase confirm gate. This is highly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action. Every sentence adds necessary detail: permissions, task_id semantics, subtask handling, related tools, and the confirm gate. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex delete operation with a polymorphic parameter, subtask edge cases, and a confirmation gate, the description covers all essential behavioral aspects. Given the output schema exists, return values need no explanation. It also integrates with sibling tools via cross-references.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description compensates fully: it explains task_id accepts integer or string title (searching current project) and clarifies confirm's default false provides preview without deletion. This goes beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Deletes task' with specific details: soft delete, trash move, recoverable. It distinguishes from siblings like archive_task, restore_task, and list_trashed_tasks by explicitly naming them for recovery and listing, and by explaining the soft delete behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage context: requires admin permission, explains task_id can be integer ID or title, details WBS vs non-WBS subtask handling, and defines the confirm gate for preview vs actual deletion. Also names restoration and listing tools as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_task_commentA

댓글(멘션)을 삭제한다. 본인이 작성한 댓글만 삭제 가능(아니면 오류).

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description alone carries the burden of behavioral disclosure. It reveals a non-obvious rule: deletion is restricted to own comments and fails otherwise. This goes beyond what the input schema shows and is critical for the agent to avoid errors. It does not mention other behaviors like permanence, but the ownership rule is the most significant trait.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the action and the key constraint in bold. Every word earns its place, and there is no redundant information. It is perfectly concise for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete tool with one parameter and an output schema (so return values need not be explained), the description covers the essential context: what it does and the critical ownership restriction. It could mention how to obtain the comment_id or what success returns, but those are inferable from siblings and output schema. Overall, it is adequate and not missing major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explain the 'comment_id' parameter. The parameter name is self-explanatory (an integer ID), but the description fails to provide any additional meaning or context about where the ID comes from or how it should be used. Since coverage is low, the description should have compensated but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '댓글(멘션)을 삭제한다' (delete a comment/mention). It uses a specific verb and resource, and the sibling tools like add_task_comment and update_task_comment make the distinction clear. The mention of '멘션' adds clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit usage constraint: only comments written by the user can be deleted, otherwise an error occurs. This tells the agent when it is appropriate to call the tool, though it does not explicitly name alternatives or when-not-to-use scenarios. Still, the ownership prerequisite is valuable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_task_descriptionA

태스크 본문(description)을 통째 덮어쓰지 않고 최소 편집한다(인라인 이미지 보존).

본문을 재구성해 통째로 PATCH하면 <img data-attachment-id> 인라인 이미지가 유실된다. 이 도구는 현재 본문 HTML을 받아 필요한 부분만 편집해 PATCH하므로 편집 대상 밖 이미지가 자동 보존된다. 반영(문서→태스크) 흐름에서 추가 작업/내용 변경을 본문에 적용할 때 쓴다.

mode:

  • "append_work": [label](기본 '작업 내용') 섹션 목록에 bullets를 <li>로 추가한다 (섹션/목록이 없으면 신설). 기존 내용·이미지 100% 보존. bullets 필수.

  • "replace_section": [label] 섹션 본문만 new_body_html로 교체한다(라벨 문단·타 섹션 보존). 섹션에 인라인 이미지가 있으면 keep_media=True(기본)는 이미지를 섹션 끝으로 옮겨 보존, keep_media=False는 함께 삭제. new_body_html 필수(라벨 문단 제외한 본문 HTML).

task_id는 id(정수) 또는 제목(문자열). 편집 결과가 현재와 같으면 PATCH하지 않고 그대로 반환.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
labelNo작업 내용
bulletsNo
task_idYes
keep_mediaNo
new_body_htmlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and excels: it discloses the PATCH mechanism, inline image preservation, mode-specific behaviors (including keep_media handling), and the no-op behavior when the result is unchanged. This is rich, safety-relevant context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than ideal but every sentence adds necessary detail for a complex tool. It is well-structured with clear sections for purpose, usage, and modes, front-loading the key benefit.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 6 parameters, two distinct modes, and nuanced image preservation behavior, the description is complete. It covers purpose, usage, parameter semantics, and edge cases (no-op), so the agent has sufficient context to invoke the tool correctly. The output schema exists, so return values need not be described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description compensates fully. Every parameter is explained: mode with its two values, label default, bullets required for append_work, new_body_html for replace_section, keep_media behavior, and task_id accepting integer or title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb+resource: 'minimally edit the task description' while preserving inline images. It distinguishes from a full overwrite and explains the inline image preservation benefit, which sets it apart from sibling tools like update_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit usage context: use in the doc→task sync flow when applying additional work/content changes. It describes when to use each mode (append_work vs replace_section) but does not explicitly name alternative tools or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdc_loginA

브라우저 핸드오프(A안)로 MCP 전용 토큰을 발급받고, 선택한 워크스페이스/프로젝트를 현재 레포(루트)별로 저장한다.

브라우저 창이 열리면 평소처럼 로그인(Google·로컬 모두 가능)한 뒤 '연결 허용'을 누른다. 인증 토큰은 사용자 단위로 공유되고, 워크스페이스/프로젝트는 이 레포에만 적용된다. → 레포마다 한 번씩 gdc_login하면 레포별로 다른 프로젝트를 자동으로 쓴다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that a browser window opens, token is shared per user, and workspace/project is repo-specific. This goes beyond a vague 'login' and provides useful behavioral context, though it could mention what happens after authorization (e.g., return to MCP).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight paragraphs, front-loaded with the core purpose, and organized with a line break for the step-by-step instruction. Every sentence contributes meaning: what it does, how to interact, and the persistence semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an authentication tool with no parameters and an output schema present, the description covers the essential aspects: the browser handoff, user-level token sharing, per-repo persistence, and the recommended usage pattern. Minor ambiguity around 'A안' (Option A) is slightly unclear but does not undermine completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is 100% vacuously. The description doesn't need to explain parameters. Per the rubric, a no-parameter tool gets a baseline of 4, and the description correctly focuses on the interaction flow rather than param details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: issuing an MCP-only token via browser handoff and saving the selected workspace/project per repository. It distinguishes itself from other sibling tools by focusing on authentication and repo-specific context, rather than task management.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit usage guidance: '레포마다 한 번씩 gdc_login하면' (run gdc_login once per repo) and explains the login flow (Google/local, press 'Allow'). It doesn't explicitly mention alternatives like set_context, but the repo-scoped behavior clearly implies when to use this over a generic context setter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contextA

현재 레포(루트)에 적용되는 워크스페이스/프로젝트 컨텍스트를 반환한다.

create_task/list 등에서 어떤 프로젝트가 쓰일지 확인하는 용도. roots 미지원 환경에서는 글로벌 fallback 값을 반환한다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the transparency burden. It discloses important behavior: returns context applied to the current repo and falls back to a global value in roots-unsupported environments. The return verb implies read-only nature, though explicit permission or error details are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact Korean sentences: the first states the primary function, the second adds both a concrete use case and the fallback behavior. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has zero parameters and an output schema exists, the description covers the essential purpose, use case, and fallback scenario. It does not mention possible errors or authentication requirements, but these are less critical for a simple read-only getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema coverage is 100%. With no parameters to describe, the baseline is 4. The description adds no param-specific detail, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb '반환한다' (returns) and specifies the resource: workspace/project context for the current repo. It clearly distinguishes from sibling tools like set_context (which sets) and list_workspaces (which lists all available workspaces).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description states a clear use case: 'create_task/list 등에서 어떤 프로젝트가 쓰일지 확인하는 용도' (used to check which project will be used in create_task/list). This provides context on when to call the tool. However, it does not explicitly contrast with sibling tools or mention when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_enumsA

프로젝트별 커스텀 status/priority/task_type enum을 조회한다.

status는 category(planned/in_progress/done)를 포함한다. 완료 상태 = category=='done', 미완료 상태 = 그 보집합. 태스크 생성/수정/필터 전에 유효한 값과 '미완료 집합'을 확인하는 용도.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and adds meaningful behavioral context: statuses include a category (planned/in_progress/done), and done state is defined as category=='done'. This goes beyond a simple 'retrieves enums' statement, though it does not cover auth or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences: the first states the core purpose, the second explains the key enum semantics, and the third gives usage timing. Every sentence earns its place with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter retrieval tool, the description covers purpose, domain semantics, and usage context. An output schema exists to handle return-value structure, so no critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, project_id, is made meaningful by the description's '프로젝트별' (per-project) phrasing. Although schema description coverage is 0%, the single parameter is self-evident from the tool name and description, so the lack of explicit parameter documentation is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb '조회한다' (retrieves) with a specific resource: project-specific custom status/priority/task_type enums. This clearly distinguishes it from sibling task-management tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: before task creation, modification, or filtering to check valid enum values and the 'unfinished set'. It provides clear context but does not mention alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_taskA

태스크 상세를 조회한다(작업 요청 문서 생성·연동용).

task_id는 태스크 id(정수) 또는 제목(문자열) — 제목이면 현재 프로젝트에서 검색해 해석한다(정확 1건이면 채택, 다수면 후보 안내, 0건이면 오류).

제목/내용/상태/우선순위/유형/날짜/진행률/담당자 등 문서 작성에 필요한 필드와 함께 상위 태스크(parent)·하위 태스크(sub_tasks)·연관 태스크(related_tasks) 를 반환한다.

  • sub_tasks: 이 태스크의 하위 태스크 요약 목록(휴지통 제외, 서버 가시성 필터 적용).

  • related_tasks: outgoing/incoming 링크를 방향 유지로 통합({direction, link_type, task}).

  • parent: 직속 상위 태스크 요약(없으면 null).

  • update_task로 쓸 수 있는 값도 함께 읽는다 — actual_start_date/actual_end_date(실제 날짜), customer/customer_name(고객사), weight(비중, WBS 전용), is_pinned(고정), participants(관련자). 수정 전 현재 값 확인과 수정 후 반영 확인에 쓴다.

  • 그 밖에 creator_name(작성자)·tags(태그 이름)·mention_count(댓글 수)·is_archived(숨김)· created_at/updated_at을 함께 반환한다. 상세 API 1회 호출로 모두 받으므로 추가 왕복이 없다(제목 해석 시 검색 1회 추가).

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully shoulders the transparency burden. It discloses task_id dual-type behavior (integer ID or title string) and title resolution edge cases, sub_tasks exclusion of trash and visibility filters, related_tasks direction preservation, and the single-call/no-round-trip behavior. This is exceptionally rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is densely informative yet organized with a purpose sentence, task_id resolution explanation, and bulleted return-field details. Every sentence contributes value, and the structure aids comprehension despite length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's single-parameter but complex output (multiple field groups, parent/subtasks/related tasks, updatable fields, audit fields), the description is remarkably complete. It covers return values, special cases, and integration with update_task, leaving no meaningful gap for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only defines task_id as integer or string with no description. The description adds critical semantics: task_id can be an integer ID or a title string, and if a title, it is searched in the current project with exact-match, multiple-candidate, and zero-result behaviors. This fully compensates for the 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's core action: '태스크 상세를 조회한다' (retrieve task details), with a specific use case ('작업 요청 문서 생성·연동용'). It distinguishes from sibling list/search tools by emphasizing the detailed single-task nature and including parent, sub_tasks, and related_tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit use contexts: for work request document creation/linking and for checking current values before/after update_task. It does not explicitly state when not to use it or name alternative tools, but the context is clear enough for an agent to select it over list/search operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_customersA

현재 레포 컨텍스트 워크스페이스의 고객사 목록을 조회한다.

create_task/update_task의 customer를 이름으로 지정하기 전에 후보를 확인하는 용도. search를 주면 이름·대표자·담당자 이름으로 부분 검색한다(생략 시 전체). 반환된 id 또는 name을 customer 인자로 넘기면 된다.

권한(고객사 열람) 없는 워크스페이스는 서버가 빈 목록을 주므로 count=0이면 고객사가 없거나 열람 권한이 없는 것이다.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that search performs partial matching on name, representative, and manager fields, and that workspaces without permission receive an empty list, interpreting count=0 as either no customers or no viewing permission. This goes beyond basic expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured. Every sentence earns its place: purpose, usage scenario, parameter behavior, and permission edge case. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list operation with one optional parameter and an output schema, the description provides complete context: purpose, usage instructions, parameter semantics, permission implications, and interpretation of the count field. It is self-contained and actionable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only defines 'search' with no description, but the description fully explains that providing search performs partial search on name, representative, and manager, while omitting it returns the full list. This adds significant meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the customer list for the current repo context workspace. It also differentiates itself by explicitly mentioning its role as a candidate-checking step before specifying a customer in create_task/update_task, which no sibling tool covers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a concrete use case: 'create_task/update_task의 customer를 이름으로 지정하기 전에 후보를 확인하는 용도' (use to check candidates before specifying the customer in create_task/update_task). It also explains search behavior and how to pass the returned id or name, but it does not explicitly mention alternatives or when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_my_mentionsA

나와 관련된 댓글 멘션 목록을 최신순으로 조회한다(조회 전용).

알림(list_my_notifications)과 달리 댓글 본문을 훑는 용도다 — 어떤 태스크에서 무슨 이야기가 오갔는지 확인할 때 쓴다.

  • mention_type: 'mentioned'(나를 언급한 것)/'authored'(내가 쓴 것)/'both'(기본).

  • 스코프: 현재 레포 컨텍스트의 워크스페이스 + 프로젝트를 기본 적용한다. project_id를 직접 주면 그 프로젝트로 바꿔 조회한다.

  • date_from/date_to: 작성일 범위(YYYY-MM-DD). search: 댓글 본문 부분 일치.

  • preview는 서버가 100자로 자른 조각을 평문화한 값이라 문장이 중간에서 끊길 수 있다. 전체 내용은 url이나 list_task_comments(task_id)로 확인한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
searchNo
date_toNo
date_fromNo
project_idNo
mention_typeNoboth

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses read-only nature ('조회 전용'), scope behavior (current workspace/project default, project_id override), date format, search semantics, and preview truncation (server cuts at 100 chars). This goes beyond typical descriptions and covers key behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear lead sentence, a usage-context paragraph, and bullet-point parameter explanations. Every segment adds value: purpose, differentiators, parameter semantics, and preview caveat. No wasted words despite being detailed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, no annotations, and the presence of sibling tools, the description is fully complete for selecting and invoking the tool. It covers purpose, scope, parameter behavior, and output limitations (preview truncation, fallback to list_task_comments). The output schema handles return structure, so no further explanation is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain all parameters. It thoroughly explains mention_type (with values 'mentioned'/'authored'/'both'), project_id scope override, date_from/date_to format (YYYY-MM-DD), and search (partial match on comment body). Only 'limit' is not explicitly described but its default and meaning are self-evident, so this is a minor omission.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a list of comment mentions related to the user, sorted by latest. It explicitly distinguishes itself from list_my_notifications by noting it scans comment bodies rather than notifications, and also references list_task_comments for full content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: '댓글 본문을 훑는 용도다 — 어떤 태스크에서 무슨 이야기가 오갔는지 확인할 때 쓴다' (for scanning comment bodies to see what was discussed). It also contrasts with list_my_notifications and advises using list_task_comments for full content when previews are truncated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_my_notificationsA

내 알림 목록을 조회한다(조회 전용 — 읽음 처리는 하지 않는다).

멘션·담당자 변경·댓글·상태 변경 등 나를 수신자로 하는 알림을 최신순으로 반환하고, 미읽음 총 개수(unread_count)를 함께 준다.

  • unread_only=True면 읽지 않은 알림만 조회한다.

  • limit은 최대 99(서버 상한). 그보다 많이 요청해도 99로 자른다.

  • 워크스페이스/프로젝트 스코프가 없다 — 서버가 수신자 기준으로만 거르므로 다른 워크스페이스의 알림이 섞여 온다. 항목의 project_name으로 구분한다.

  • 각 항목의 url로 get_task/open_task를 이어서 호출할 수 있다.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
unread_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses key behaviors: it does not mark notifications as read, enforces a limit cap of 99, may include notifications from other workspaces, and includes unread_count. It also suggests follow-up actions using the item URLs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a main sentence and bullet points for additional details. It is concise yet informative, with every sentence adding value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, parameters, limitations, and follow-up calls, which is complete for a simple read-only tool with two parameters. The output schema already handles return values, so no further explanation is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description explains both parameters (unread_only and limit) with their effects and the server-side cap on limit. This fully compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the user's notification list in read-only mode, with types, ordering, and unread count. It is distinct from sibling tools like list_my_tasks and list_my_mentions by focusing on notifications for the recipient.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use it (for user's notifications) but does not explicitly name alternatives or state when not to use it. It does mention the lack of workspace/project scope, which helps set expectations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_my_tasksA

현재 사용자(assignee/creator/participant)의 태스크 목록을 조회한다.

조회 대상 프로젝트는 현재 레포에서 gdc_login으로 선택한 프로젝트(레포별 컨텍스트)로 고정된다. 그 프로젝트의 미완료 집합으로 서버측 필터링하므로 정확하다. 저장된 프로젝트가 없으면 부득이 mine 전체에서 클라이언트 필터링한다(첫 페이지만 보므로 누락 가능).

  • not_finished=True: 완료(category=='done')가 아닌 상태만

  • overdue=True: 계획 종료일이 지난 것만

  • undated=True: 계획 종료일이 없는(날짜 미정) 것만 (주간 싱크의 '날짜 미정'과 동일)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
overdueNo
undatedNo
not_finishedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does so excellently by revealing that filtering is server-side when a project is stored, but client-side with only first-page visibility when not, potentially causing omissions. It also explains filter semantics (not_finished, overdue, undated) which go beyond a simple 'list' operation and disclose the tool's accuracy and edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose, followed by clear context and a bulleted list of parameter semantics. Every sentence adds value, and the use of bold and bullet points improves readability. It is appropriately sized for the complexity of the tool with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is quite complete: it covers the core function, project context, filtering behavior, fallback scenario, and parameter semantics. An output schema exists, so return values are adequately covered. The only gap is that it does not specify how multiple filters (not_finished, overdue, undated) combine logically (AND vs OR), which could lead to ambiguity. Given the tool's modest complexity, this is a minor omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explicitly explains the meaning of three boolean parameters: not_finished (not done), overdue (past planned end date), and undated (no planned end date). However, the 'limit' parameter is not described in the text; its meaning is only implied by the phrase '첫 페이지만 보므로' (only first page shown). Since the description covers most parameters well but omits limit, a 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: it retrieves the current user's tasks (assignee/creator/participant). It further distinguishes the scope by fixing the project to the one selected via gdc_login, which separates it from generic list_tasks or search_tasks. The verb '조회한다' and the resource '현재 사용자의 태스크 목록' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: when you need the current user's tasks within the repo-specific project selected by gdc_login. It also describes fallback behavior when no project is saved. However, it does not explicitly name sibling alternatives (e.g., list_tasks or search_tasks) or state when not to use it, so it lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsB

지정 워크스페이스의 프로젝트 목록(전환용).

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It only states the action 'list' and the purpose 'for switching,' but it does not disclose any behavioral traits such as authentication requirements, handling of invalid workspace IDs, whether archived projects are included, or any side effects (including confirming it is read-only). The absence of these details leaves the agent with insufficient behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise phrase of eight words, front-loading the core function and purpose. There is no redundant or filler content; every word contributes. It is appropriately sized for a simple list operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema exists), the description covers the basic function and hints at its purpose. However, it does not explain what '전환용' (switching) means in practice, whether the list includes all projects or only active ones, or any relationship to set_context. While the output schema likely documents the return shape, the description leaves some ambiguity for an agent about the exact context and any special cases. It is adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema defines a single integer parameter workspace_id with no description (0% schema coverage). The tool description indirectly references '지정 워크스페이스' (specified workspace) which maps to workspace_id, but it does not explain the parameter's meaning, format, or how to obtain a valid workspace ID (e.g., from list_workspaces). The description therefore provides only minimal semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists projects within a specified workspace, using the verb 'list' and resource 'projects.' The parenthetical '(전환용)' adds a distinct purpose (for switching), differentiating it from sibling tools like list_workspaces and list_tasks. This is a specific and unambiguous purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a brief usage hint via '(전환용)' (for switching), implying it should be used to retrieve projects when the user intends to switch context. However, it does not explicitly state when to use it versus alternatives like set_context or list_workspaces, nor does it mention any prerequisites. This is an implied usage scenario rather than explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_task_commentsA

태스크의 댓글(멘션) 목록을 조회한다. 최신순 상위 limit개를 시간순(오래된→최신)으로 반환.

서버 페이지네이션(PAGE_SIZE=20, page_size 미지원)상 한 요청으로 최대 20개만 받는다 — limit>20을 줘도 20개까지만 반환된다(가장 최근 댓글 우선). count는 태스크의 전체 댓글 수.

각 댓글: id, author_name(작성자 실명), text(HTML을 벗긴 평문), is_edited(수정됨 여부), created_at.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses important behavioral traits: server-side pagination caps responses at 20 even if limit exceeds 20, the ordering is latest-selected but returned oldest-first, and count represents total comments. It also describes the output fields, including that text is plain HTML-stripped. This is extensive and goes beyond basic expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average but every sentence provides necessary information: purpose, pagination cap, sorting behavior, count meaning, and field list. The structure is clear and efficient, with no filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema already covers return types, so the description need not elaborate on that. It adds critical non-obvious context: pagination cap, ordering quirks, count semantics, and HTML stripping. For a simple listing tool, this is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no descriptions (0% coverage), so the description compensates by explaining the limit parameter's meaning (top recent N, but capped at 20). However, task_id's semantics are only implied through the phrase 'task's comments' and not explicitly defined, leaving a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Retrieves the list of comments (mentions) of a task.' It also specifies key behaviors such as sorting and pagination, which distinguishes it from sibling comment manipulation tools (add/update/delete) and other listing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage as the read-only tool for listing task comments, but it does not explicitly state when to use it instead of alternatives like list_my_mentions or how to decide against other comment-related tools. No exclusions or alternative recommendations are provided, so guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasksA

특정 담당자의 태스크를 현재 레포 프로젝트에서 조회한다.

assignee는 user id 또는 멤버 이름(full_name/username) — 자동으로 id로 해석한다. 조회 프로젝트는 현재 레포에서 gdc_login으로 저장한 프로젝트로 고정한다(미설정 시 오류). 필터는 list_my_tasks와 동일: not_finished(미완료만)/overdue(마감 지남)/undated(날짜 미정). "내" 태스크는 list_my_tasks를, 특정 담당자는 이 도구를 쓴다.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
overdueNo
undatedNo
assigneeYes
not_finishedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the transparency burden. It discloses assignee resolution (user id or member name, auto-converted to id), project fixation via gdc_login, and filter semantics. It does not describe the return shape, but an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the first sentence states the primary action, followed by short lines with essential operational details. No redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no annotations and 0% schema coverage, the description covers purpose, the key assignee parameter, filter meanings, project dependency, and sibling differentiation. It omits limit behavior, but the schema provides a default, making it sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds crucial meaning: assignee accepts integer user id or member name (full_name/username) and is auto-interpreted as id. It also explains the boolean filters (not_finished/overdue/undated) with Korean glosses. The limit parameter is self-explanatory with a default, so the gap is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: '특정 담당자의 태스크를 현재 레포 프로젝트에서 조회한다' (retrieves tasks for a specific assignee in the current repo project). It also explicitly contrasts with list_my_tasks, clearly differentiating sibling scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: '내' 태스크는 list_my_tasks를, 특정 담당자는 이 도구를 쓴다 (use list_my_tasks for 'my' tasks, this tool for a specific assignee). It also warns that the project must be set via gdc_login (미설정 시 오류), giving a concrete prerequisite.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_trashed_tasksA

현재 프로젝트 휴지통(삭제된 태스크) 목록을 조회한다. 복구(restore_task) 대상 식별용.

삭제된 태스크는 일반 조회(list_my_tasks/get_task)에서 빠지므로, 복구하려면 이 목록에서 id/제목을 확인한다. 각 항목에 삭제 시각(deleted_at)·삭제자(deleted_by)를 포함한다. 현재 레포 프로젝트로 스코프되며(project 명시 전송), 관리자 이상만 유효한 결과를 받는다. 한 요청으로 최대 100개까지 받아 최신 삭제순 상위 limit개를 반환한다(count는 전체 삭제 수).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the transparency burden. It discloses admin-only access, project scoping, a max of 100 items per request, ordering by latest deletion, and inclusion of deleted_at/deleted_by fields. It also clarifies the 'count' semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized, with three substantive sentences and line breaks that improve readability. Every sentence adds value: purpose, usage context, scope, permissions, and parameter behavior, with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though an output schema exists, the description covers all important contextual aspects: what the tool does, when to use it, permission requirements, scoping, pagination/limit behavior, and key response fields. It is self-sufficient for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has only 'limit' with a default and no description (0% coverage). The description compensates by explaining that 'limit' returns the top N items in latest deletion order and that a request can retrieve at most 100, adding meaning well beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it retrieves the current project's trash list of deleted tasks, using a specific verb and resource. It clearly distinguishes from sibling tools like list_my_tasks/get_task by noting deleted tasks are excluded from those and that this list is for restore_task targeting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear when-to-use guidance: to restore deleted tasks, check id/title in this list because deleted tasks don't appear in normal queries. It references sibling tools (list_my_tasks/get_task, restore_task) to establish context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_workspacesA

현재 사용자가 접근 가능한 워크스페이스 목록(전환용).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the list is filtered by current user access and implies a read-only operation via the word 'list.' However, it does not elaborate on return format, pagination, or potential errors, though the output schema likely covers the return structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short Korean phrase that immediately conveys the tool's purpose and scope. Every word is informative, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, simple listing tool with an output schema, the description is largely sufficient. It provides the core purpose and access scoping, though it is concise to the point of lacking some elaboration on behavioral details, which are not critical here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty schema, so the description correctly adds no parameter information. According to the rubric, 0 parameters earns a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description translates to 'List of workspaces accessible to current user (for switching).' It clearly identifies the tool as a listing operation for workspaces, scoped to the current user's access, and indicates a specific purpose (switching). This distinguishes it from sibling list tools like list_projects and list_customers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase '전환용' (for switching) provides clear context that this tool should be used when the user needs to see available workspaces to switch between. It does not explicitly name alternatives or exclusion criteria, but the intended use case is evident, giving clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_taskA

태스크 웹 화면을 Chrome 새 탭으로 연다.

목록에 표시되는 URL을 클릭하면 VSCode 내장 브라우저로 열릴 수 있으므로, 이 도구는 chrome.exe를 직접 실행해 항상 Chrome으로 연다(미설치 시 기본 브라우저).

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It transparently notes that it directly executes chrome.exe and falls back to the default browser if Chrome isn't installed, and explains why this is necessary. This adds meaningful context beyond a simple 'open' statement, though it omits error handling or prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the primary action and the second provides the rationale. It is concise, front-loaded, and contains no filler, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool, the description covers the core purpose and adds contextual rationale about browser behavior. While it does not mention error handling or prerequisites, the presence of an output schema and the straightforward nature of the operation make this reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema defines task_id as an integer with 0% coverage in the description. The description does not explicitly explain the meaning or format of task_id, relying entirely on the naming convention. Given low schema coverage, the description should have compensated but did not, leaving the parameter's purpose inferred rather than stated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Opens the task web screen in a new Chrome tab,' using a specific verb and resource. It distinguishes this tool from sibling tools that manipulate task data (e.g., update_task, delete_task) by focusing on launching the UI rather than modifying data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains why this tool exists—to guarantee opening in Chrome instead of VSCode's built-in browser—which provides clear context for when to use it. However, it does not explicitly name alternative tools or state when not to use this one, making the guidance implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_taskA

휴지통의 삭제된 태스크를 복구한다. 관리자 이상 권한 필요.

task_id는 태스크 id(정수) 또는 제목(문자열) — 삭제 태스크는 일반 검색에서 빠지므로 현재 프로젝트 휴지통에서 제목을 매칭한다. 존재하지 않거나 삭제되지 않은 태스크는 안내한다.

주의: 첨부 파일은 함께 복구되지만 연쇄 삭제된 하위 태스크는 복구되지 않고 휴지통에 남는다 (단건 + 자기 첨부만 복구). WBS 태스크는 원래 부모 밑이 아니라 최상위로 분리되고 비중(weight)이 해제된 상태로 복구된다.

확인 게이트: confirm=False(기본)면 대상·부작용만 미리보기로 반환하고 복구하지 않는다. confirm=True로 다시 호출해야 실제 복구한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It thoroughly discloses auth requirements (admin+), side effects (attachments restored, cascade-deleted subtasks are NOT restored, WBS tasks detached with weight released), and the preview/commit confirmation gate. This goes well beyond basic operational detail and prevents surprising behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Despite its length, every sentence delivers critical operational detail: purpose, permission, input flexibility, side effects, and the confirmation pattern. The use of bold for key terms and a structured flow makes it scannable without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description does not need to outline the return format. It covers auth, input resolution, side effects (subtasks, WBS), and the preview/commit destructive pattern. It even describes the preview return content (target and side-effects), making it complete for a risky restore operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only provides types (integer/string for task_id, boolean default for confirm) with no descriptions. The description completely fills the gap: task_id can be an integer ID or a string title matched in the trash, and confirm controls whether the call is a preview or an actual restoration. This is substantial added meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific action: restore ('복구한다') deleted tasks from the trash, which clearly distinguishes it from siblings like delete_task or archive_task. It also adds the permission prerequisite (admin or higher), further clarifying the tool's role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool: for tasks that are in the trash and excluded from normal search, with task_id accepting either an ID or a title matched against the trash. It also explicitly describes the two-step confirmation flow (confirm=False for preview, confirm=True for actual restore), but does not name alternative tools like list_trashed_tasks or explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tasksA

현재 레포 프로젝트에서 키워드·필터로 태스크를 검색한다.

조회 범위는 현재 레포에서 gdc_login/set_context로 선택한 프로젝트로 고정된다(미설정 시 오류). "내 태스크"는 list_my_tasks, "특정 담당자 태스크"는 list_tasks가 더 간단하다 — 이 도구는 키워드나 여러 조건을 조합할 때 쓴다.

  • query: 제목·본문·댓글(멘션) 통합 검색어. 생략 가능(필터만으로도 조회된다). 주의: 서버가 결과를 번호 내림차순(고정 태스크 우선)으로 재정렬하므로 관련도순이 아니다 — 매칭이 많으면 "가장 관련 있는 N건"이 아니라 "매칭 중 최신 N건"이 온다. 응답의 total_matched로 전체 매칭 수를 확인하고, 필요하면 필터를 좁히거나 limit을 올린다.

  • query는 root_only와 함께 쓸 수 없다(검색이 매칭한 하위 태스크가 통째로 걸러진다).

  • status/priority/task_type: 상태·우선순위·유형 이름 목록(합집합). 값은 get_project_enums 참고.

  • assignee/participant/customer: user id 또는 멤버 이름, 고객사 id 또는 고객사 이름 허용.

  • planned_end_from/planned_end_to: 계획 종료일 범위(YYYY-MM-DD).

  • not_finished: 완료(category=='done')가 아닌 상태만. status를 직접 주면 그 값이 우선한다. 기본값은 False라 완료된 태스크도 함께 나온다(끝난 태스크를 찾는 것도 검색의 목적이다). list_my_tasks/list_tasks는 반대로 미해결만 보는 도구라 기본값이 True다 — "미완료만" 검색하려면 not_finished=True를 명시해야 한다.

  • overdue: 계획 종료일이 지난 것만(서버 필터). not_finished와 독립이다.

  • undated: 계획 종료일이 없는 것만. 서버 필터가 없어 200건을 받아 거르므로, 200건을 넘는 프로젝트에서는 누락될 수 있다.

  • ordering: number/title/status/priority/progress/created_at/updated_at/planned_*/actual_* 중 하나 (내림차순은 '-' 접두, 예: '-planned_end_date'). 생략 시 서버 기본(번호 내림차순).

  • 응답: count(반환 건수)·total_matched(서버 전체 매칭 수)·tasks(요약 목록).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
statusNo
overdueNo
undatedNo
assigneeNo
customerNo
orderingNo
priorityNo
root_onlyNo
task_typeNo
participantNo
not_finishedNo
planned_end_toNo
planned_end_fromNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses critical behavioral traits: server-side reordering by number rather than relevance, the need to check total_matched, the incompatibility of query with root_only, the not_finished default including completed tasks, the 200-item limitation for undated, and precedence rules. This is exceptionally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence adds value, organized with clear bullet points per parameter. It is front-loaded with purpose and scope, then dives into parameter details. The structure makes complex information digestible without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 15 parameters, no annotations, and high complexity, the description covers the vast majority of needed context: parameter meanings, limitations, default behaviors, and response shape. The only minor gap is the 'limit' parameter, but its name and default make it self-evident, and the description explicitly mentions increasing limit when needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It provides detailed semantics for nearly every parameter: query's scope and relevance behavior, status/priority/task_type value sources, assignee/customer accepted formats, date ranges, not_finished/overdue/undated nuances, ordering options, and response fields. Even root_only's behavior is touched through its incompatibility note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('searches tasks'), resource ('tasks in current repo project'), and scope (keyword/filter-based). It distinguishes itself from siblings by explicitly naming list_my_tasks and list_tasks as simpler alternatives for specific cases, which is strong differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: it is for keyword or combined filters, while list_my_tasks and list_tasks are simpler for 'my tasks' and 'specific assignee tasks' respectively. It also clarifies when not to use certain parameters (e.g., query and root_only together) and how not_finished default differs from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_contextA

현재 레포의 워크스페이스/프로젝트를 전환한다(재인증 없이, 토큰 유지).

이미 로그인된 상태에서 작업 대상 프로젝트만 바꿀 때 사용한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
workspace_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that no re-authentication is needed and the token is retained, which is useful. However, it does not mention whether prior context is lost, persistence of the new context, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise, front-loaded sentences with no redundant information. Every word contributes to understanding the tool's purpose and usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description is largely complete. It covers action, scope, and the key precondition. A minor gap is that it does not explicitly state that subsequent operations use the new context, but 'switch' implies this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only repeats the property names by saying workspace/project, but does not explain where the IDs come from, any constraints, or the relationship between them beyond the schema names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: switching the workspace/project of the current repo. It distinguishes itself from sibling tools like gdc_login or get_context by emphasizing context switching without re-authentication.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this tool when already logged in and only changing the working project, which gives clear usage context. It implies not for login/authentication, though it does not name alternatives explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_doc_progressA

작업 요청 문서의 Phase 진척을 읽어 연결된 태스크 진행률·상태·실제 날짜를 동기화한다.

progress = 완료 Phase 수 / 전체 Phase 수 × 100 (한 Phase는 하위 체크박스가 전부 [x]일 때 완료). task_id 생략 시 문서 frontmatter의 task_id를 사용한다. 최초 진행 시 '진행'+실제 시작일, 100% 시 '완료'+실제 종료일로 자동 전이된다. description 전달 시 진행률 PATCH에 태스크 본문(description)도 함께 반영한다 — 문서 본문이 수정됐을 때 호출 에이전트가 '[작업 내용]' 요약을 재생성해 넘기는 용도(자동 훅은 진행률 전용). 이때 본문은 create_task와 동일한 라벨 섹션 템플릿(평문) 으로 넘긴다 — [요약](필수) → 선택·짝인 [AS-IS]/[TO-BE][작업 내용](필수, - 블렛). 도구가 GDC 리치텍스트(HTML)로 변환하며(태그로 시작하는 HTML은 그대로 통과), 체크박스·프로세스 메타 단계는 넣지 않는다.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idNo
doc_pathYes
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: the progress formula, phase completion criteria (all sub-checkboxes [x]), auto-transitions to '진행'/'완료' with actual dates, and the optional description PATCH including the label template and HTML conversion. It even states that checkboxes and process meta steps are excluded.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but appropriately sized for the tool's complexity. It front-loads the core purpose, then each subsequent sentence adds essential details on formula, defaults, transitions, and the description parameter. No sentence is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex sync tool with no annotations and zero schema coverage, the description covers all critical aspects: calculation method, phase completion, task_id resolution, status transitions, description formatting, and exclusion of checkboxes/meta. The existence of an output schema covers return values, so omitting them is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description adds rich meaning to all parameters: task_id fallback to frontmatter, doc_path as the required document path, and description's role in patching the task body with a precise template and conversion rules. This far exceeds the raw schema information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific verb+resource pair: it reads Phase progress from a work request document and synchronizes the linked task's progress rate, status, and actual dates. This clearly differentiates it from siblings like update_task or task_from_doc, which focus on direct task editing or creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to omit task_id (uses document frontmatter) and when to pass description (after document body modification, for regenerating the summary), explicitly contrasting with the automatic hook which is progress-only. However, it does not explicitly name alternative tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_from_docA

작업 요청 문서로 태스크를 생성하고, 문서 frontmatter에 task_id/task_url을 기록한다.

  • 제목: 문서의 첫 '# ' 헤딩에서 추출.

  • description(필수): 호출하는 에이전트가 아래 라벨 섹션 템플릿(평문)으로 작성해 전달한다. 도구가 GDC 리치텍스트(HTML)로 변환해 저장한다(라벨→문단, 블렛→목록, 섹션 사이 빈 문단). [요약] 문서 "요청 내용" 한두 줄 요약

    [AS-IS] ← 선택(TO-BE와 짝): '요청 내용'·'배경'에서 구현 전 상황이 실제로 드러날 때만 구현 전 상황

    [TO-BE] ← 선택(AS-IS와 짝) 구현 후 상황

    [작업 내용]

    • 작업 결과 단계를 블렛(-)으로 간단히 요약 (각 단계 한 줄) ※ [요약]·[작업 내용]=필수, [AS-IS]/[TO-BE]=선택(짝). 전/후 상황이 불명확하면 생략(추측·빈말 금지) — 신규 기능·문서 작업엔 보통 빠진다. ※ 체크박스 표시([ ]/[x])는 넣지 않는다. 진행 상태는 태스크 progress 필드가 담당한다. ※ 빌드·타입체크·검증·테스트·lint·커밋·배포/동작 확인·'INDEX.md 이력 추가' 같은 프로세스 메타 단계는 넣지 않는다(실제 산출물 단계만). 넣더라도 도구가 자동 제거한다.

  • status: 생략 시 문서 메타데이터 표의 상태를 보고 매핑한다 — done → '완료'(완료/closed 계열), partial → '진행'(in_progress). 그 외 값은 자동 매핑하지 않고 기본 상태로 둔다. status 인자를 주면 그 값이 우선한다.

  • 완료 보정: 최종 status가 완료 계열(category=='done')이면 progress=100·실제 종료일=오늘을 자동 주입한다.

  • task_type: 호출하는 에이전트가 문서 유형/본문을 근거로 프로젝트 enum에 맞춰 매칭해 전달한다(get_project_enums 참고).

  • project: 생략 시 현재 레포에서 gdc_login으로 저장한 프로젝트(레포별 컨텍스트)를 사용.

  • 담당자(assignee): 항상 로그인 사용자로 자동 등록(create_task와 동일).

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
projectNo
doc_pathYes
priorityNo
task_typeNo
descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavioral traits: auto-extraction of title from '# ' heading, conversion of description to GDC rich text, status mapping from document metadata, automatic injection of progress=100 and actual end date for done status, and auto-assignment of assignee. It also discloses automatic removal of checklist markers and process meta steps, giving complete transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Though detailed, the description is well-structured with bullet points and clear section headers. Every sentence adds necessary operational detail, and the length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers input parameters, transformations, default behaviors, and side effects (frontmatter update). An output schema exists, so lack of return-value explanation is acceptable. This is a complete specification for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description compensates substantially for description, status, project, task_type, and assignee behavior. It does not clarify the 'priority' parameter, leaving that one gap, which prevents a perfect 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'create a task from a work request document' and record task_id/task_url in document frontmatter. This distinguishes it from sibling create_task, which lacks the document-writing aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool—when a task must be created from a document with metadata write-back—and references related tools (create_task, get_project_enums) for behavior. However, it stops short of explicit 'use this instead of X' exclusions, so it earns a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_taskA

태스크를 부분 수정(PATCH)한다. 전달한 필드만 갱신된다.

[description — 라벨 섹션 템플릿(평문)] 본문을 교체할 때는 평문 한 문단이 아니라 create_task와 동일한 라벨 섹션 템플릿으로 넘긴다: [요약](필수) → 선택·짝인 [AS-IS]/[TO-BE][작업 내용](필수, - 블렛 한 줄씩). 도구가 GDC 리치텍스트(HTML)로 변환한다(이미 태그로 시작하는 HTML이면 그대로 통과). 체크박스([ ]/[x])와 빌드·검증·테스트·커밋·배포·버전 범프 같은 프로세스 메타 단계는 넣지 않는다. ※ 이 도구는 본문을 통째로 교체한다 — 일부 섹션만 고치거나 블렛만 덧붙일 때는 edit_task_description(replace_section/append_work)을 써서 인라인 이미지 유실을 막는다.

사용자가 수정 권한을 가진 모든 편집 필드를 노출한다(읽기전용 id/number/creator 제외). status/priority/task_type은 해당 프로젝트 enum 'name'(get_project_enums로 확인), 날짜는 'YYYY-MM-DD', parent는 ID. 태그는 수정할 수 없다 — 서버가 본문·댓글의 tagMention에서만 태그를 동기화한다(읽기는 get_task). assignee·participant_ids는 user id 또는 멤버 이름(full_name/username)을 넘기면 자동으로 id로 해석한다. customer는 고객사 id 또는 이름 — 이름은 현재 워크스페이스에서 검색해 정확 일치를 자동 채택, 모호하면 후보 목록으로 안내한다. weight(비중 %)는 WBS 프로젝트 전용 — 비WBS 태스크에 전달하면 호출 전 차단. parent 변경 시 서버가 weight를 자동 초기화한다(weight를 함께 전달하면 그 값 적용). 완료 상태(category=='done')로 전환하면 백엔드가 progress=100·actual_end_date를 자동 보정할 수 있다.

필드 해제(비우기): clear_fields에 필드명 리스트를 전달 — 가능: parent, assignee, customer, planned_start_date, planned_end_date, actual_start_date, actual_end_date, weight. 예) 실제 종료일 비우기 → clear_fields=["actual_end_date"], 고객사 해제 → clear_fields=["customer"]. 같은 필드에 값과 해제를 동시에 전달하면 오류. 관련자 전체 해제는 participant_ids=[].

제약(미충족 시 ValueError로 안내·차단): 예상/실제 시작일 ≤ 종료일, 실제 종료일은 미래 불가, 담당자/관련자는 해당 프로젝트 멤버만 지정 가능.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
parentNo
statusNo
weightNo
task_idYes
assigneeNo
customerNo
priorityNo
progressNo
is_pinnedNo
task_typeNo
descriptionNo
clear_fieldsNo
actual_end_dateNo
participant_idsNo
planned_end_dateNo
actual_start_dateNo
planned_start_dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and does so thoroughly: it discloses PATCH semantics, full description replacement with HTML conversion, weight auto-reset on parent change, done-status auto-correction, clear_fields conflict errors, and validation constraints (ValueError).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a one-sentence purpose, then organized into labeled sections (description template, editable fields, clearing fields, constraints). It is long but every sentence adds operational detail, with examples, and no fluff—justified for an 18-param tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutation tool with no annotations, this description is remarkably complete: it covers prerequisites, side effects, error behavior, field semantics, and alternatives. The output schema exists, so return values are not required. It leaves no critical operational gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description compensates extensively: it explains date format (YYYY-MM-DD), enum name requirements, id-or-name resolution for assignee/customer, WBS-only weight, clear_fields usage with examples, and date/member constraints. Almost all 18 parameters are semantically enriched beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with '태스크를 부분 수정(PATCH)한다' (partially updates the task with PATCH) and states '전달한 필드만 갱신된다' (only passed fields are updated). This specific verb+resource+semantics clearly distinguishes it from siblings like edit_task_description and create_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names edit_task_description as the alternative for partial section edits to avoid inline image loss, and references get_project_enums for enum values and get_task for tag reading. It gives clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_task_commentA

댓글(멘션) 본문을 수정한다. 본인이 작성한 댓글만 수정 가능(아니면 오류).

주의: 서버가 새 content로 멘션을 다시 파싱해 덮어쓴다. 기존 멘션을 유지하려면 mentions 인자로 함께 넘겨야 하며, mentions 없이 수정하면 이전 멘션 알림 대상이 사라진다. mentions는 add_task_comment와 동일하게 본문 선두 하이라이트 멘션 한 줄로 삽입된다 (이미 멘션된 사용자에게 중복 알림은 가지 않는다 — 서버가 신규 멘션 델타만 발송). content는 평문→HTML 자동 변환(이미 HTML이면 통과).

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
mentionsNo
comment_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and excels: it discloses side effects (server re-parses mentions and overwrites), caveats (mentions necessity), and formatting (plaintext→HTML conversion). It also states error conditions (cannot edit others' comments) and duplicate notification avoidance, providing rich insight beyond basic 'update' semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph with a clear note (주의) and bullet-like statements. It is dense but appropriately so, covering all critical caveats without wasted words. It is front-loaded with the core purpose and then expands on important behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mention re-parsing, mutation, ownership constraints), the description provides comprehensive context: purpose, preconditions, side effects, parameter semantics, and comparisons to a sibling. Output schema exists, so not explaining return values is fine. It is nearly complete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description compensates well. It explains content's auto-conversion behavior and mentions' insertion mechanism, including how it interacts with existing mentions. comment_id is not explicitly described, but its role is implied by the context and default null for mentions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool modifies the body of a comment (mention), using the specific verb '수정한다' (modify). It distinguishes itself from sibling tools by explicitly focusing on editing, not creating/deleting/listening, and includes a constraint about only modifying self-authored comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides strong usage context: only self-written comments can be edited, and it warns about the need to pass mentions to preserve existing mention targets. It references add_task_comment for behavioral consistency, but does not explicitly state when to choose this over alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 28 tool updatesv0.1.0
    • First observedadd_task_comment
    • First observedarchive_task
    • First observedcreate_task
    • First observeddelete_task
    • First observeddelete_task_comment
    • First observededit_task_description
    • First observedgdc_login
    • First observedget_context
    • First observedget_project_enums
    • First observedget_task
    • First observedlink_task_to_doc
    • First observedlist_customers
    • First observedlist_my_mentions
    • First observedlist_my_notifications
    • First observedlist_my_tasks
    • First observedlist_projects
    • First observedlist_task_comments
    • First observedlist_tasks
    • First observedlist_trashed_tasks
    • First observedlist_workspaces
    • First observedopen_task
    • First observedrestore_task
    • First observedsearch_tasks
    • First observedset_context
    • First observedsync_doc_progress
    • First observedtask_from_doc
    • First observedupdate_task
    • First observedupdate_task_comment

TDQS

A3.9/5.0

Scored across 28 tools

Disambiguation4/5

Each tool has a clear primary purpose, and potentially overlapping tools like list_my_tasks, list_tasks, and search_tasks are explicitly differentiated in their descriptions. Some pairs (list_my_notifications vs list_my_mentions) are similar but serve distinct use cases.

Naming Consistency3/5

Most tool names follow a verb_noun pattern (list_*, get_*, update_*, delete_*), but there are inconsistencies such as 'task_from_doc' (noun-first), 'gdc_login' (prefix + verb), and 'link_task_to_doc' (verb + object + preposition). This breaks a fully predictable naming scheme.

Tool Count2/5

With 28 tools, the count exceeds the 'heavy' threshold of 25, making selection more difficult. Although the scope is broad (workspaces, projects, tasks, comments, notifications, docs), several tools are close variants of task listing/filtering and could be consolidated.

Completeness5/5

The tool set covers the full task lifecycle (create, read, update, delete, restore, archive), comments (list, add, update, delete), notifications (read-only), and document integration (link, create, sync). No critical operations are missing for the domain.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    The self-hosted MCP bridge between Claude Chat and Claude Code.
    46
    AGPL 3.0
  • A
    license
    A
    quality
    D
    maintenance
    Wraps Claude Code as tools for MCP clients, enabling autonomous coding tasks via a 4-tool lifecycle with session management, async polling, and permission controls.
    4
    34 npm
    20
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to edit, run, inspect, and fix Godot 4 projects through an MCP server with dynamic tool groups and setup-gated capabilities.
    126 npm
    258
    MIT