09

도구 레퍼런스

MCP 서버가 노출하는 읽기·쓰기 전체 표면과, 그 행동의 근거가 되는 도메인 리소스.

읽기

list_projects

접근 가능한 ground: slug, name, latestActivityAt, isActive, transplanting.

입력 — 없음

get_graph

트리: nodes(plan/implements/dormant 플래그 포함), edges, apis, seasons, bugs, project.transplanting. summary 뷰는 soft-deleted 노드를 제외합니다.

입력slug; 선택 view, rootId/depth, maxType, role, season, descriptions

큰 트리는 한 번에 다 읽지 말고 조각으로 읽습니다:

  • rootId (+ depth) — 특정 trunk나 limb. 먼저 maxType="trunk" 골격으로 id를 확보하세요.
  • maxType — 레이어 상한. twig면 leaf·vein을 뺀 골격이 나옵니다.
  • role — 단면(structure / object / action).
  • season — 그 시즌에 자란 것.
  • descriptionsnone / excerpt / full. 가장 무거운 필드를 제어합니다.

summary에는 shape(깊이·너비), 노드별 childCount, 구조 냄새를 짚는 iaHints도 함께 실립니다.

get_impact

파급 범위 — 대상이 깨질 때 영향받는 노드를 의존성·API 흐름을 따라 순회합니다.

입력slug, node 또는 bug; 선택 direction(affected / dependsOn / both)

list_bugs

해당 ground의 버그. 각 버그는 score(0–8 변경 위험도)와 impactCount를 가집니다.

기본값은 status: "active" — wild + chasing입니다. 잡힌(catched) 버그는 이력이라 스캔에서 빠지며, 필요할 때 catchedall로 부릅니다.

입력slug; 선택 status(active / wild / chasing / catched / all), limit, order(asc / desc), view

get_bug

버그 단건. 번호(ref: 14 — 화면의 #014) 또는 id로 조회하며, 전체 설명과 파급 범위를 함께 반환합니다.

입력slug, ref

list_seasons

시즌(시간순).

입력slug

list_events

ground의 append-only 변경 이력(create / update / delete / plan_commit).

입력slug; 선택 limit, before, entityType

쓰기 — 트리·엣지·API

create_node

식물 어휘 프로토콜을 따르며 soft 이슈는 경고로 알립니다. leaf-first로 빌드하세요.

입력slug, type, label; 선택 parent, season, description, metadata

update_node

label/type/parent/season/description/metadata 패치. 실현한 코드는 metadata.implements에 기록합니다.

입력slug, id, patch

delete_node

soft 삭제(활성 자손이 있으면 거부). hard와 cascade는 옮겨심는 중에만 동작합니다.

입력slug, id; 선택 hard

create_edge / delete_edge

노드 간 의존성·데이터 흐름 엣지.

입력slug, source·target(생성) 또는 id(삭제)

create_api / update_api / delete_api

API 흐름 — 일반 엣지가 아닌 1차 시민.

입력slug, start/end, …

쓰기 — ground·버그

create_project

새 ground. 옮겨심기 모드로 시작하며, 뿌리내리기 전까지 가드가 완화됩니다.

입력slug, name; 선택 description

create_bug

score는 0–8 변경 위험도(영향도 × 수정 난이도)이며 기본값은 4입니다.

입력slug, title, target {kind, id?}; 선택 score, status

update_bug / delete_bug

status 전이, score, metadata.resolvedVersion 등.

입력slug, id, patch

Plan 루프 · 라이프사이클

commit_plan

plan 노드를 정식 트리로 승격합니다. metadata.implements(실현 증거)가 없으면 거부됩니다.

입력slug, id

record_commit

변경 파일과 implements가 매칭되는 모든 노드의 metadata.commits에 커밋을 누적합니다. 보통 CI가 호출합니다.

입력slug, sha, files; 선택 message

reopen_transplant

뿌리내린 ground를 다시 옮겨심기로 되돌립니다 — 사용자가 명시적으로 요청할 때만. 뿌리내리기(종료)는 사람이 UI에서만 합니다.

입력slug

시즌은 쓰기 도구가 없습니다 — 사람만 생성합니다(umtri://rules/seasons-human-only).

리소스

read-only 리소스가 AI 클라이언트의 행동을 Umtri 도메인 규칙에 맞춰줍니다:

URI내용
umtri://rules/vocabulary식물 메타포(trunk → limb → twig → leaf → vein), role, 트리=정보구조도, “작업 결과 기록(작업 로그 금지)”.
umtri://rules/vocabulary-detailed재분류, twig-vs-leaf, 승격 신호, 한글 라벨 휴리스틱.
umtri://rules/system-structure노드는 정보 단위지 코드 파일이 아님; metadata 키 컨벤션.
umtri://rules/planplan 노드는 노드 기반 브리프: 읽기 → 코드 실현 → implements 부착 → commit.
umtri://rules/transplant옮겨심는 중엔 과거 시즌 수정·hard delete 허용(프로젝트 임포트용).
umtri://rules/seasons-human-onlyAI가 시즌을 만들면 안 되는 이유와 방식.
umtri://about/visionUmtri란 무엇인가 — 브리프 + 형상 기록 허브 — 그리고 작업 톤.