위키 도구는 Tiro가 자동 생성한 워크스페이스 위키, 즉 회의 노트에서 추출된 엔티티, 개념, 관계를 에이전트가 탐색할 수 있는 지식 그래프로 노출합니다. 네 개의 읽기 전용 도구가 검색 → 읽기 → 탐색으로 이어지는 체인을 구성합니다.
search_wiki: 위키 페이지에 대한 키워드 검색입니다. 진입점 역할을 하며, 나머지 세 도구에 전달할 순위가 매겨진 페이지(pageGuid, name, pageType, 관련도)를 반환합니다.
get_wiki_page: 단일 페이지의 본문(설명 + 생성 상태)과 메타데이터, 그리고 구조화된 mentions, aliases, links를 반환합니다.
list_wiki_mentions: 페이지를 참조하는 노트 단락들, 즉 노트 전체에서 해당 페이지가 언급되는 위치입니다.
get_wiki_graph: 페이지들이 어떻게 연결되는지 탐색할 수 있도록 지식 그래프의 노드+엣지 단면을 반환합니다.
노트 검색에 비해 위키가 갖는 차별적 가치는 그래프입니다. 단순히 텍스트를 읽는 데 그치지 않고, 엔티티에서 그것이 언급된 위치(list_wiki_mentions)로, 다시 연결된 개념(get_wiki_graph)으로 이동할 수 있습니다.
다섯 번째 보조 도구인 **list_workspaces**는 체인 자체의 일부는 아닙니다. 여러 워크스페이스를 가진 계정이 어떤 워크스페이스를 대상으로 할지(각 워크스페이스의 guid와 위키 활성화 여부) 찾을 수 있게 해 주며, 위의 네 도구에 명시적인 workspaceGuid를 전달할 수 있도록 합니다.
읽기 전용 (v1). 이 도구들은 위키를 읽기만 합니다. 위키 페이지의 생성, 이름 변경, 병합, 삭제는 v1에서 MCP로 노출되지 않습니다(OAuth 쓰기 동의 대기 중). 노트 콘텐츠에는 이 도구들을 사용하지 마세요. 대신 search_notes / get_note를 사용하세요.
접근 권한과 요금제 게이트
위키는 유료, 옵트인 기능입니다. 네 도구는 항상 tools/list에 표시되지만(모든 연결에서 보입니다), 사용 자격은 호출 시점에 백엔드에서 검증됩니다. 따라서 사용 가능한 것처럼 보이는 도구라도 게이트 응답을 반환할 수 있습니다.
워크스페이스는 다음 두 가지가 모두 충족될 때만 위키를 사용할 수 있습니다.
- 자격 있는 요금제: 워크스페이스의 구독이 Pro, Max, Team, Enterprise 중 하나입니다. Free와 Lite는 자격이 없습니다.
- 활성화됨: 워크스페이스 관리자가 해당 워크스페이스에서 위키를 켰습니다.
호출이 게이트에 걸리면, 도구는 기계 판독 가능한 error_code와 함께 오류 엔벨로프(HTTP 402)를 반환합니다.
error_code | 의미 | 호출자가 취할 조치 |
|---|
WIKI_PLAN_REQUIRED | 요금제에 위키가 포함되어 있지 않음(Free/Lite/구독 없음/비활성). | 업그레이드. action_url은 요금제(B2C) 또는 팀 결제(팀 관리자) 페이지를 가리킵니다. 팀 구성원의 경우 null이며, 관리자에게 요청하라는 메시지가 표시됩니다. |
WIKI_NOT_ACTIVATED | 요금제 자격은 있으나 관리자가 위키를 활성화하지 않음. | 워크스페이스 설정에서 위키를 활성화하거나(관리자), 관리자에게 요청(구성원). 업셀 없음. required_plans는 null입니다. |
엔벨로프 형태(백엔드에서 그대로 전달됨):
{
"success": false,
"error_code": "WIKI_PLAN_REQUIRED",
"message": "위키 기능은 Pro 이상 요금제에서 사용할 수 있어요. 웹에서 로그인 후 요금제를 업그레이드해 주세요.",
"current_plan": "Lite",
"required_plans": ["pro", "max", "team", "enterprise"],
"action_url": "https://tiro.ooo/#pricing",
"status_code": 402
}
current_plan: 워크스페이스의 현재 요금제 표시 이름, 구독이 없을 경우 null.
required_plans: WIKI_PLAN_REQUIRED의 업그레이드 대상. WIKI_NOT_ACTIVATED에서는 null. (Team Free Trial은 의도적으로 제외됩니다. 이미 보유 중인 체험이지 업그레이드 대상이 아니기 때문입니다.)
action_url: 조치를 취할 웹 링크, 호출자가 직접 조치할 수 없을 때(팀 구성원이거나 관리자에 의한 활성화)는 null.
워크스페이스 선택. 기본적으로 위키 도구는 API 키로부터 워크스페이스를 암묵적으로 결정합니다. 워크스페이스 바인딩 키나 팀 키는 직접 결정되고, 개인 또는 OAuth 토큰은 기본 워크스페이스로 결정됩니다. 노트 도구의 범위 지정 방식과 동일합니다.계정이 여러 워크스페이스에 속해 있다면 list_workspaces를 호출해 목록을 나열하고(각각 guid와 위키 활성화 여부 포함), 선택한 workspaceGuid를 임의의 위키 도구에 전달하여 해당 워크스페이스를 명시적으로 대상으로 지정하세요. workspaceGuid를 생략하면 기본 워크스페이스 동작이 유지됩니다. 백엔드는 전달한 워크스페이스의 구성원인지 검증합니다.
list_workspaces
API 키가 접근할 수 있는 워크스페이스 목록을 각각의 guid, name, 위키 활성화 여부와 함께 반환합니다. 계정이 둘 이상의 워크스페이스에 속해 있을 때 위키 도구에 사용할 workspaceGuid를 고르는 데 사용하세요.
이 도구는 매개변수를 받지 않습니다. 다음을 반환합니다.
{
"workspaces": [
{ "guid": "ws_abc", "name": "Acme", "isWikiEnabled": true },
{ "guid": "ws_def", "name": "Personal", "isWikiEnabled": false }
]
}
- 개인/OAuth 토큰은 구성원으로 속한 모든 워크스페이스를 나열하고, 워크스페이스 바인딩 키나 팀 키는 해당 워크스페이스 하나만 나열합니다.
isWikiEnabled는 해당 워크스페이스에서 위키가 요금제 자격이 있고 동시에 활성화되어 있는지를 반영합니다. true인 워크스페이스를 골라 그 guid를 workspaceGuid로 전달하세요.
search_wiki
키워드로 위키 페이지를 검색합니다. 가장 먼저 사용하세요. 반환된 pageGuid를 다른 도구에 전달합니다.
| 매개변수 | 타입 | 필수 여부 | 설명 |
|---|
keyword | string | 필수 | 페이지 이름과 매칭되는 검색어. |
workspaceGuid | string | 선택 | 특정 워크스페이스를 대상으로 지정(list_workspaces에서 가져옴). 생략하면 기본 워크스페이스 사용. |
순위가 매겨진 페이지 결과를 반환하며, 각각 pageGuid, name, pageType(예: CONCEPT, ENTITY), 관련도 점수를 포함합니다.
get_wiki_page
pageGuid(search_wiki에서 가져옴)로 위키 페이지 하나를 가져옵니다.
| 매개변수 | 타입 | 필수 여부 | 설명 |
|---|
pageGuid | string | 필수 | search_wiki가 반환한 페이지 식별자. |
workspaceGuid | string | 선택 | 특정 워크스페이스를 대상으로 지정(list_workspaces에서 가져옴). 생략하면 기본 워크스페이스 사용. |
페이지 본문(설명 + 생성 상태)과 메타데이터(제목, 타입, mention/alias/link 수, 타임스탬프), 그리고 페이지의 구조화된 mentions, aliases, links를 반환합니다. 이어서 list_wiki_mentions로 페이지가 노트 전체에서 어디에 참조되는지 확인하세요.
list_wiki_mentions
위키 페이지를 언급하는 노트 단락들을 나열합니다.
| 매개변수 | 타입 | 필수 여부 | 설명 |
|---|
pageGuid | string | 필수 | 페이지 식별자(search_wiki / get_wiki_page에서 가져옴). |
cursor | string | 선택 | 이전 응답에서 받은 페이지네이션 커서. |
workspaceGuid | string | 선택 | 특정 워크스페이스를 대상으로 지정(list_workspaces에서 가져옴). 생략하면 기본 워크스페이스 사용. |
언급 레코드(소스 노트, 단락, 추출된 텍스트, kind)와 페이지네이션 커서를 반환합니다.
get_wiki_graph
위키 지식 그래프의 노드+엣지 단면을 가져옵니다. { nodes, edges }를 반환하며, 각 엣지는 두 페이지 사이의 타입이 지정된 관계를 담습니다.
| 매개변수 | 타입 | 필수 여부 | 설명 |
|---|
mode | string | 필수 | seed, expand, around, links 중 하나(아래 참조). |
pageGuid | string | 조건부 | expand / around의 기준 페이지. |
pageGuids | string[] | 조건부 | links를 위한 명시적 페이지 집합. |
depth | number | 선택 | expand의 탐색 깊이. |
radius | number | 선택 | around의 이웃 반경. |
limit | number | 선택 | 반환되는 최대 노드 수. 기본값 50, 최대 200. |
q / type / since | — | 선택 | seed를 위한 개요 필터. |
workspaceGuid | string | 선택 | 특정 워크스페이스를 대상으로 지정(list_workspaces에서 가져옴). 생략하면 기본 워크스페이스 사용. |
mode | 반환 |
|---|
seed | 워크스페이스에 대한 개요 그래프(선택적으로 q / type / since로 필터링). |
expand | pageGuid에서 depth만큼 바깥으로의 탐색. |
around | radius로 정한 페이지의 이웃. |
links | 명시적인 pageGuids 집합 간의 링크들. |
결과 상한. get_wiki_graph는 최대 limit개의 노드(기본값 50, 최대 200)와 그 반환된 노드들 사이의 엣지만 반환합니다(연결되지 않은 엣지는 제거되므로 모든 엣지의 양 끝점이 nodes에 존재합니다). 기반 그래프가 상한보다 컸던 경우, 응답에 truncated: true가 설정됩니다. mode / q / type 또는 더 작은 radius / depth로 좁혀 집중된 단면을 얻으세요. 이를 통해 허브 페이지의 이웃이 무한정 큰 페이로드를 반환하는 것을 방지합니다.
클러스터 기반 탐색은 아직 노출되지 않았습니다. 웹 앱의 최신 그래프 탐색 뷰(overview/context/cluster)는 내부 전용입니다. MCP get_wiki_graph 도구는 seed / expand / around / links 모드를 노출합니다. 클러스터 탐색의 외부 노출은 로드맵에 있습니다.
권장 체인
- 워크스페이스 먼저 선택(여러 워크스페이스):
list_workspaces → 선택한 workspaceGuid를 아래의 임의 도구에 전달.
- 위키가 어떤 주제에 대해 아는 내용 찾기:
search_wiki → get_wiki_page.
- 페이지가 노트에서 어디에 근거하는지 찾기:
search_wiki → list_wiki_mentions.
- 개념들이 어떻게 연결되는지 탐색하기:
search_wiki → get_wiki_graph(mode: "around", pageGuid).