메인 콘텐츠로 건너뛰기

개요

get_note는 특정 노트의 상세 메타데이터를 가져오고, 선택적으로 요약, transcript, 생성된 문서를 한 번의 병렬 호출로 함께 포함시켜요. 추가 콘텐츠를 요청하려면 include 파라미터를 사용하세요. 요청된 모든 리소스가 동시에 가져와지므로 하나가 실패해도 나머지 응답이 막히지 않아요. 이 도구는 2026-05-06 기준으로 제거된 list_note_summaries, get_note_summary, list_note_documents, get_note_document 도구를 대체한 통합 콘텐츠 페처예요. 주요 사용 사례:
  • 노트의 기본 정보(참가자, 날짜, 길이)만 필요하면 메타데이터만 가져와요.
  • AI가 생성한 요약의 전체 내용을 얻으려면 summary를 포함하세요.
  • 전체 대화 텍스트(타임스탬프가 붙은 단락이 하나의 문자열로 연결됨)를 얻으려면 transcript를 포함하세요.
  • 노트의 모든 생성 문서(one-pager, custom 등)를 전체 내용과 함께 가져오려면 documents를 포함하세요.
핵심 기능:
  • Promise.allSettled를 사용한 병렬 가져오기. 한 리소스가 실패해도 나머지는 그대로 반환돼요.
  • include는 선택적 배열 enum이에요: ["summary"], ["transcript"], ["documents"] 또는 이들의 조합.
  • documents 옵션은 노트의 모든 문서에 대해 전체 내용을 반환해요(5KB로 제한하는 search_notes와 달리).
  • include가 비었거나 생략되면 메타데이터만 반환해요.
참고: get_note는 설계상 전체 문서 내용을 반환해요. 문서당 5KB로 제한하는 search_notes보다 무거워요. 내용 미리보기가 필요하면 대신 search_notes를 사용하세요.

파라미터

ParameterTypeRequiredDescription
noteGuidstringYes고유 노트 식별자. 보통 list_notessearch_notes에서 얻어요.
includearrayOptional콘텐츠 옵션 배열: "summary", "transcript", "documents". 모두 선택이며 추가 방식이에요. 생략하거나 빈 배열을 전달하면 메타데이터만 반환해요.

noteGuid (필수)

노트의 고유 식별자예요. 예시:
{
  "noteGuid": "abc-123-def"
}

include (선택)

병렬로 가져올 콘텐츠 유형의 배열이에요. 유효한 옵션:
  • "summary" — 노트에서 처음으로 사용 가능한 AI 생성 요약을 가져와요(전체 내용).
  • "transcript" — 전체 대화 transcript를 가져와요(단락이 \n\n로 연결됨).
  • "documents" — 노트의 모든 생성 문서(one-pager, custom 등)를 전체 내용과 함께 가져와요.
예시:
// Metadata only
{}

// With summary
{ "include": ["summary"] }

// With transcript and documents
{ "include": ["transcript", "documents"] }

// All three
{ "include": ["summary", "transcript", "documents"] }

응답 형식

성공 응답

{
  "noteGuid": "abc-123-def",
  "guid": "abc-123-def",
  "title": "Q2 OKR Planning",
  "webUrl": "https://platform.tiro.ooo/notes/abc-123-def",
  "participants": [
    { "name": "Alice Kim", "email": "alice@example.com" },
    { "name": "Bob Park", "email": null }
  ],
  "createdAt": "2026-04-15T10:00:00Z",
  "updatedAt": "2026-04-15T11:30:00Z",
  "recordingDurationSeconds": 3625,
  "sourceType": "live-voice",
  "summary": {
    "content": "## Key Decisions\n- Q2 roadmap prioritizes...\n## Action Items\n- Alice: finalize spec by...",
    "format": "MARKDOWN",
    "summaryId": "summary-id-123"
  },
  "transcript": "[10:00:05] Alice: Let's start with Q2 planning.\n[10:00:18] Bob: Sure, here's what...",
  "documents": [
    {
      "documentId": 42,
      "templateId": 1,
      "templateTitle": "One Pager",
      "locale": "en",
      "sections": [
        {
          "content": "## OKR Goals\nGoal 1: ...",
          "format": "MARKDOWN"
        }
      ],
      "createdAt": "2026-04-15T11:30:00Z"
    }
  ]
}
필드 설명:
FieldTypeDescription
noteGuid / guidstring노트 식별자(하위 호환을 위해 두 필드 모두 존재).
titlestring노트 제목.
webUrlstringTiro 웹 앱에서 노트로 바로 가는 링크.
createdAtstringISO 8601 생성 타임스탬프.
updatedAtstringISO 8601 마지막 수정 타임스탬프.
recordingDurationSecondsnumber녹음 길이(초).
sourceTypestringlive-voice, recording, text, video, webpage, offline-mode, onboarding 중 하나.
participants[]array참가자별 { name, email }. 둘 중 어느 쪽이든 null일 수 있어요.
summary (포함된 경우)object요약이 있으면 { content, format, summaryId }, 없으면 null.
summary.contentstring요약 텍스트(HTML 제거, markdown 친화적).
summary.formatstringMARKDOWN 또는 PLAIN_TEXT.
summary.summaryIdstring요약의 식별자.
transcript (포함된 경우)string[HH:MM:SS]가 앞에 붙은 줄들로 이뤄진 전체 transcript, \n\n로 연결돼요. transcript가 없으면 null.
documents (포함된 경우)array문서 객체 배열, 없으면 null. include: ["documents"]를 요청했지만 노트에 문서가 없으면 빈 배열 [].
documents[].documentIdnumber안정적인 문서 식별자.
documents[].templateIdnumber숫자 template id(구분에는 templateTitle이 아니라 이걸 사용하세요).
documents[].templateTitlestring표시 라벨(locale에 따라 달라지며 custom 템플릿은 사용자가 편집 가능).
documents[].localestring문서의 locale(예: "en", "ko").
documents[].sections[]array{ content, format } 섹션 배열.
documents[].sections[].contentstring섹션 텍스트(HTML 제거).
documents[].sections[].formatstring콘텐츠 형식(MARKDOWN, PLAIN_TEXT 등).
documents[].createdAtstringISO 8601 문서 생성 타임스탬프.
요청한 리소스를 사용할 수 없을 때(예: 요약이 없을 때) 해당 필드는 생략되지 않고 null로 설정돼요. 이를 통해 호출자는 “요청에 포함되지 않음”과 “포함했지만 사용 불가”를 구분할 수 있어요.

사용 예시

예시 1: 메타데이터만

요청:
{
  "noteGuid": "abc-123-def"
}
응답:
{
  "noteGuid": "abc-123-def",
  "title": "Q2 Planning",
  "participants": [{ "name": "Alice Kim", "email": "alice@example.com" }],
  "createdAt": "2026-04-15T10:00:00Z",
  "recordingDurationSeconds": 3625,
  "sourceType": "live-voice"
}

예시 2: 요약만 포함

요청:
{
  "noteGuid": "abc-123-def",
  "include": ["summary"]
}
응답:
{
  "noteGuid": "abc-123-def",
  "title": "Q2 Planning",
  "participants": [{ "name": "Alice Kim", "email": "alice@example.com" }],
  "createdAt": "2026-04-15T10:00:00Z",
  "recordingDurationSeconds": 3625,
  "sourceType": "live-voice",
  "summary": {
    "content": "## Key Decisions\n- OKR prioritizes feature X...\n## Action Items\n- Alice: finalize spec",
    "format": "MARKDOWN",
    "summaryId": "summary-id-123"
  }
}

예시 3: transcript와 문서 포함

요청:
{
  "noteGuid": "abc-123-def",
  "include": ["transcript", "documents"]
}
응답:
{
  "noteGuid": "abc-123-def",
  "title": "Q2 Planning",
  "participants": [{ "name": "Alice Kim", "email": "alice@example.com" }],
  "createdAt": "2026-04-15T10:00:00Z",
  "recordingDurationSeconds": 3625,
  "sourceType": "live-voice",
  "transcript": "[10:00:05] Alice: Let's start with Q2 planning...\n[10:00:18] Bob: Sure...",
  "documents": [
    {
      "documentId": 42,
      "templateId": 1,
      "templateTitle": "One Pager",
      "locale": "en",
      "sections": [
        { "content": "## OKR Goals\n...", "format": "MARKDOWN" }
      ],
      "createdAt": "2026-04-15T11:30:00Z"
    }
  ]
}

예시 4: 한 번의 호출로 모든 콘텐츠

요청:
{
  "noteGuid": "abc-123-def",
  "include": ["summary", "transcript", "documents"]
}
메타데이터, 요약, 전체 transcript, 모든 문서를 병렬로 반환해요. 그중 하나라도 실패하면(예: 요약이 없을 때) 해당 필드는 null이지만 나머지는 그대로 채워져요.

권장 사례

필요한 콘텐츠만 요청하세요. 메타데이터는 약 50 토큰이고, 요약을 추가하면 약 200 토큰이, transcript는 시간당 약 3,000~5,000 토큰이 추가돼요. 문서는 크기에 따라 달라요.메타데이터로 시작해서 빠른 개요가 필요하면 get_note(include: ["summary"])로, action item이나 핵심 정리가 필요하면 get_note(include: ["documents"])로 전환하세요.
노트에 무엇이 들어 있는지 빠르게 보려면 먼저 search_notes를 사용하세요. 5KB로 제한된 문서와 함께 매칭된 노트를 반환해요. 문서의 전체 내용이 필요할 때만 get_note(include: ["documents"])를 사용하세요.
include: ["summary"]를 설정했지만 요약이 없으면 summarynull이 돼요. 코드에서 이를 처리해야 해요. 요청했다는 이유만으로 필드가 항상 채워진다고 가정하지 마세요.
점진적 공개(progressive disclosure) 패턴: list_notessearch_notesget_note(include: [...]). 대부분의 워크플로우는 2단계에서 멈춰요. 전체 내용이 필요하거나 앞선 도구로 충분하지 않을 때만 3단계를 사용하세요.

자주 발생하는 오류

노트를 찾을 수 없음

해결 방법: noteGuid가 올바른지 확인하세요. list_notessearch_notes로 유효한 노트 식별자를 찾으세요.

권한 scope 부족

해결 방법: API key에 mcp:notes:read scope가 있는지 확인하세요. scope 구성은 Setup을 참고하세요.

토큰 사용량

ModeTokens
메타데이터만~50
메타데이터 + 요약~250
메타데이터 + transcript시간당 ~3,000–5,000
메타데이터 + 문서~1,000–5,000 (문서 크기에 따라 다름)
세 가지 모두~4,000–10,000 (가변)
통합으로 절감: 예전의 list_note_summaries + get_note_summary 체인이 이제 한 번의 get_note(include: ["summary"]) 호출로 처리돼요. list_note_documents + get_note_documentget_note(include: ["documents"])도 마찬가지예요.

관련 도구

  • search_notes — keyword로 노트를 찾고 그 문서까지 읽어야 할 때. 문서당 5KB로 제한된 문서 내용과 함께 최대 10개의 매칭 노트를 반환해요.
  • list_notes — 어떤 노트가 있는지만 알면 될 때. 가장 가벼운 단계로 메타데이터만 반환해요.
  • get_note_transcript — 타임스탬프가 있는 원본 transcript용(대체 수단이며, 병렬 가져오기에는 대신 이 도구에서 include: ["transcript"]를 사용하세요).
  • list_document_templates — 문서를 요청하기 전에 사용 가능한 문서 템플릿 유형을 확인하세요.