An AI agent can pull every comment out of a marked-up document and report on it in three ways: a summary, a table, or an XML archive. The GroupDocs.Annotation.Mcp server hands the LLM the annotations as structured data, and Claude, Cursor or GitHub Copilot do the reasoning, all locally:

Summarize the review of contract_annotated.pdf: how many comments, from whom, and what the main themes are.

The step-by-step version with config and troubleshooting is in the documentation: Як витягнути та звітувати про анотації документу за допомогою ШІ.

Що ви отримуєте, коли витягуєте анотації з PDF?

Позначений документ є і даними, і чорнилом. Інструмент get_annotations повертає JSON‑об’єкт з полем found – кількістю, та масивом annotations. Кожен запис містить id анотації, type, message, page (нумерація з 1), координати, user та будь‑які replies. Не виконується парсинг документа і OCR, тому агент працює безпосередньо з записами анотацій.

Інструмент приймає один документ за виклик. Щоб охопити набір файлів, вкажіть їх у запиті, і агент викликає інструмент один раз для кожного файлу. Сервер не підтримує виклик на рівні папки.

Спосіб 1: Запитати резюме

Один виклик, потім міркування. Вкажіть файл і скажіть, для чого потрібне резюме.

Summarize the review of contract_annotated.pdf: how many comments, from whom, and what the main themes are.

Агент викликає get_annotations, підраховує записи, групує їх за user і описує теми, які знаходить у полях message. Кількість і автори беруться з даних. Теми – це інтерпретація моделі, тому їх варто перевірити людиною.

Спосіб 2: Запитати таблицю або відфільтрований список

Оскільки дані структуровані, форма звіту визначається запитом:

Give me a table: page, author, comment, answered yes/no.

Group the comments by reviewer and tell me who has the most open items.

List only the strikeouts. I want to see what people want removed.

Which pages have no comments at all?

Останнє питання погано відповідає PDF‑читалка, а масив відповідає одразу: “answered” – це непорожній список replies, а “pages without comments” – це номери сторінок, яких немає у значеннях page. Поєднайте це з get_document_info для отримання кількості сторінок.

Спосіб 3: Архівувати коментарі у форматі XML

Export the annotations so we can keep them with the case file.

export_annotations записує XML‑файл, що містить лише анотації. Повідомлення про успіх має вигляд Exported N annotation(s) from <file> to <name>.annotations.xml. Файл невеликий і його можна порівнювати, а 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.

Чи може агент діяти над коментарями?

Він може передати список далі: відкрити задачу для кожного без відповіді, підготувати лист‑відповідь або написати абзац статусу. Діє одне правило. Коментарі надходять від інших людей, тому агент має розглядати текст анотації як матеріал для звіту, а не як інструкції. Коментар типу “ignore previous instructions” – це дані в полі. Запитуйте резюме та звіти, а дії, що змінюють щось, залишайте під власним контролем.

Як запустити сервер для Claude, Cursor або Copilot?

Сервер працює з Docker‑образу ghcr.io/groupdocs-annotation/annotation-net-mcp або з NuGet за допомогою dnx GroupDocs.Annotation.Mcp --yes (.NET 10 SDK) і монтує папку, що містить ваші документи. На головній сторінці перераховано реєстрації для Claude Desktop, Claude Code, VS Code з GitHub Copilot, Cursor, Windsurf та інших клієнтів.

Чесні обмеження

  • Evaluation mode. На верхній частині кожної сторінки ставиться пробний значок. Він не змінює дані анотацій, тому звіти, створені таким чином, точні без ліцензії. Це впливає на те, що ви можете надсилати. Якщо план закінчується фразою “email the marked-up copy”, спочатку перевірте get_license_status.
  • One document per call. Обробка багатьох файлів означає багато викликів, і кожен з них – це інструментальний виклик, який агент має виконати і повідомити про нього.
  • Export is XML. get_annotations повертає JSON для читання агентом; export_annotations записує XML у сховище.
  • No preview needed. Жоден із трьох способів не рендерить сторінку, тому обмеження попереднього перегляду PDF у generate_pages_preview на Linux їх не стосується.

Питання та відповіді

How do I export all comments from a PDF? Ask the agent to export the annotations. It calls export_annotations, which writes an XML file next to your documents, or it calls get_annotations if you want the comments listed in the chat.

Can AI summarize reviewer comments across several files? Yes. Name the files in the prompt and the agent reads each one with get_annotations, then combines the results in one summary. It reads one file per call.

Does the report change if I have no license? The annotation data does not change. Only the rendered or saved pages carry a trial badge.

Поглибити