An AI 에이전트는 마크업된 문서에서 모든 댓글을 추출하여 세 가지 방식으로 보고할 수 있습니다: 요약, 표, 또는 XML 아카이브. GroupDocs.Annotation.Mcp 서버는 LLM에 주석을 구조화된 데이터로 전달하고, Claude, Cursor 또는 GitHub Copilot이 로컬에서 추론을 수행합니다:
contract_annotated.pdf 검토를 요약해 주세요: 댓글 수는 몇 개이며, 누가 달았고, 주요 주제는 무엇인지.
구성 및 문제 해결이 포함된 단계별 버전은 문서에 있습니다: AI를 사용하여 문서 주석을 추출하고 보고하는 방법.
PDF에서 주석을 추출하면 무엇을 얻을 수 있나요?
마크업된 문서는 잉크와 동시에 데이터이기도 합니다. get_annotations 도구는 found(개수)와 annotations(배열)를 포함하는 JSON 객체를 반환합니다. 각 항목은 주석 id, type, message, page(1부터 시작), 경계 상자, user 및 replies를 보유합니다. 문서 파싱이나 OCR이 전혀 없으므로 에이전트는 주석 레코드 자체만을 사용합니다.
이 도구는 호출당 하나의 문서만 처리합니다. 여러 파일을 다루려면 프롬프트에 파일명을 나열하고 에이전트가 파일당 한 번씩 도구를 호출합니다. 서버는 폴더 수준 호출을 제공하지 않습니다.
방법 1: 요약 요청
한 번 호출하고 추론합니다. 파일명을 지정하고 요약 목적을 말하면 됩니다.
contract_annotated.pdf 검토를 요약해 주세요: 댓글 수는 몇 개이며, 누가 달았고, 주요 주제는 무엇인지.
에이전트는 get_annotations를 호출해 항목을 세고, user별로 그룹화한 뒤 message 필드에서 찾은 주제를 설명합니다. 개수와 작성자는 데이터에서 가져오며, 주제는 모델이 텍스트를 해석한 결과이므로 인간의 검토가 필요합니다.
방법 2: 표 또는 필터링된 목록 요청
데이터가 구조화되어 있기 때문에 보고서 형태는 프롬프트에 달려 있습니다:
표를 만들어 주세요: 페이지, 작성자, 댓글, 답변 여부(yes/no).
리뷰어별로 댓글을 그룹화하고 가장 많은 미해결 항목을 가진 사람을 알려 주세요.
취소선만 나열해 주세요. 사람들이 제거하고 싶어 하는 내용을 보고 싶습니다.
댓글이 전혀 없는 페이지는 어디인가요?
마지막 질문은 PDF 리더가 제대로 답하지 못하지만 배열을 통해 직접 답할 수 있습니다. “답변 여부”는 비어 있지 않은 replies 리스트이며, “댓글이 없는 페이지”는 page 값에 없는 페이지 번호입니다. 페이지 수를 알기 위해 get_document_info와 함께 사용하세요.
방법 3: 주석을 XML로 보관
주석을 내보내서 사건 파일과 함께 보관하고 싶습니다.
export_annotations는 주석만 포함된 XML 파일을 작성합니다. 성공 메시지는 Exported N annotation(s) from <file> to <name>.annotations.xml 형태입니다. 파일이 작아 diff가 가능하고, import_annotations를 사용해 다른 사본에 적용할 수 있습니다. 이는 문서가 보존 규정에 따라 주석은 제외되고 파일 자체는 보관되어야 할 때 또는 두 차례 검토 라운드를 비교하고 싶을 때 유용합니다. 동일 문서의 두 번 내보내기는 두 개의 텍스트 파일이며, 에이전트는 그 사이의 변화를 설명할 수 있습니다.
예시 세션 (요약)
이는 도구의 문서화된 동작을 기반으로 만든 예시이며, 실제 스크린샷이 아닙니다.
You: Summarize the review of contract_annotated.pdf and group it by reviewer.
Agent: [calls get_annotations on contract_annotated.pdf]
Found 5 annotations: 4 from Maria, 1 from Dana.
Maria: payment terms (page 2), delivery date (page 5),
liability cap (page 6), a missing signature block (page 6).
Replies: Alex answered the page 2 payment terms comment.
Dana: a strikeout on page 4 marking an outdated clause.
Maria comments without a reply: page 5 and the two on page 6.
에이전트가 댓글에 대해 행동할 수 있나요?
에이전트는 목록을 전달할 수 있습니다: 답변이 없는 댓글당 이슈를 열거나, 회신 이메일 초안을 작성하거나, 상태 문단을 작성합니다. 한 가지 규칙이 적용됩니다. 댓글은 다른 사람에 의해 작성된 것이므로 에이전트는 주석 텍스트를 보고용 콘텐츠로 취급해야 하며, 지시로 오해해서는 안 됩니다. “이전 지시 무시”와 같은 댓글은 필드에 들어 있는 데이터일 뿐입니다. 요약과 보고서를 요청하고, 실제로 무언가를 변경하는 행동은 직접 검토 후에 수행하세요.
Claude, Cursor 또는 Copilot용 서버를 어떻게 실행하나요?
서버는 ghcr.io/groupdocs-annotation/annotation-net-mcp Docker 이미지 또는 dnx GroupDocs.Annotation.Mcp --yes(.NET 10 SDK)로 NuGet에서 실행되며, 문서가 들어 있는 폴더를 마운트합니다. 허브 페이지에는 Claude Desktop, Claude Code, GitHub Copilot이 포함된 VS Code, Cursor, Windsurf 및 기타 클라이언트에 대한 등록 정보가 나열되어 있습니다.
솔직한 제한 사항
- Evaluation mode. 모든 페이지 상단에 체험 배지가 찍힙니다. 이는 주석 데이터를 변경하지 않으므로 라이선스 없이도 정확한 보고서를 만들 수 있습니다. 전송 가능한 내용에 영향을 미칩니다. 계획에 “마크업된 사본을 이메일로 보내기”가 포함되어 있다면 먼저
get_license_status를 확인하세요. - One document per call. 여러 파일을 한 번에 스캔하려면 호출을 여러 번 해야 하며, 각 호출은 에이전트가 수행하고 보고해야 하는 도구 호출입니다.
- Export is XML.
get_annotations는 에이전트가 읽을 수 있도록 JSON을 반환하고,export_annotations는 XML을 저장소에 기록합니다. - No preview needed. 세 가지 방법 모두 페이지를 렌더링하지 않으므로 Linux에서
generate_pages_preview의 PDF 미리보기 제한에 영향을 받지 않습니다.
자주 묻는 질문
PDF에서 모든 댓글을 어떻게 내보내나요?
에이전트에게 주석을 내보내도록 요청하세요. 에이전트는 export_annotations를 호출해 XML 파일을 문서 옆에 저장하거나, 채팅에 댓글 목록을 원한다면 get_annotations를 호출합니다.
AI가 여러 파일에 걸친 리뷰어 댓글을 요약할 수 있나요?
예. 프롬프트에 파일명을 나열하면 에이전트가 각각 get_annotations로 읽고, 결과를 하나의 요약으로 결합합니다. 파일당 한 번씩 호출합니다.
라이선스가 없으면 보고서가 달라지나요?
주석 데이터 자체는 변하지 않습니다. 라이선스가 없을 경우 렌더링되거나 저장된 페이지에 체험 배지가 표시될 뿐입니다.
더 깊이 파고들기
- 문서, 표준 사용법: AI를 사용하여 문서 주석을 추출하고 보고하는 방법
- 문서 허브: GroupDocs.Annotation MCP Server
- 시작하기: 채팅 로그가 아닌 문서에 기록되는 AI 검토
- 관련: MCP를 사용한 자동 주석 스레드로 검토 워크플로우 강제
- 관련: 에이전트가 수행한 작업 보기
- 온프레미스 및 보안 모델: AI 문서 처리용 3가지 아키텍처와 파일을 네트워크 내부에 보관하는 방법
- 질문: GroupDocs Annotation 포럼
- 소스: GitHub의 GroupDocs.Annotation.Mcp