Um agente de IA pode extrair todos os comentários de um documento anotado e relatar de três maneiras: um resumo, uma tabela ou um arquivo XML. O servidor GroupDocs.Annotation.Mcp fornece ao LLM as anotações como dados estruturados, e Claude, Cursor ou GitHub Copilot realizam o raciocínio, tudo localmente:

Resuma a revisão de contract_annotated.pdf: quantos comentários, de quem e quais são os principais temas.

A versão passo a passo com configuração e solução de problemas está na documentação: How to extract and report on document annotations with AI.

O que você obtém ao extrair anotações de um PDF?

Um documento anotado é tanto dado quanto tinta. A ferramenta get_annotations devolve um objeto JSON com found (a contagem) e annotations (um array). Cada entrada contém a anotação id, type, message, page (baseada em 1), a caixa delimitadora, o user e quaisquer replies. Não há parsing de documento nem OCR envolvidos, portanto o agente trabalha diretamente a partir dos registros de anotação.

A ferramenta aceita um documento por chamada. Para cobrir um conjunto de arquivos, nomeie‑os no prompt e o agente chamará a ferramenta uma vez por arquivo. O servidor não oferece uma chamada ao nível de pasta.

Modo 1: Solicitar um resumo

Uma chamada, depois raciocínio. Nomeie o arquivo e diga para que serve o resumo.

Resuma a revisão de contract_annotated.pdf: quantos comentários, de quem e quais são os principais temas.

O agente chama get_annotations, conta as entradas, agrupa‑as por user e descreve os temas que encontra nos campos message. A contagem e os autores vêm dos dados. Os temas são a interpretação do modelo do texto, portanto merecem uma revisão humana.

Modo 2: Solicitar uma tabela ou uma lista filtrada

Como os dados são estruturados, o formato do relatório depende do prompt:

Dê‑me uma tabela: página, autor, comentário, respondido sim/não.

Agrupe os comentários por revisor e diga quem tem mais itens em aberto.

Liste apenas os riscos. Quero ver o que as pessoas querem remover.

Quais páginas não têm nenhum comentário?

A última pergunta é uma que leitores de PDF respondem mal, mas um array responde diretamente: “respondido” corresponde a uma lista replies não vazia, e “páginas sem comentários” são os números de página ausentes nos valores page. Combine com get_document_info para obter a contagem total de páginas.

Modo 3: Arquivar os comentários como XML

Exporte as anotações para que possamos mantê‑las no arquivo do caso.

export_annotations grava um arquivo XML que contém apenas as anotações. Sua mensagem de sucesso tem o formato Exported N annotation(s) from <file> to <name>.annotations.xml. O arquivo é pequeno e pode ser comparado por diff, e import_annotations pode aplicá‑lo a outra cópia do documento. Isso ajuda quando o documento está sob uma regra de retenção que não inclui seus comentários, ou quando você deseja comparar duas rodadas de revisão: duas exportações do mesmo documento são dois arquivos de texto, e o agente pode descrever o que mudou entre eles.

Sessão de exemplo (abreviada)

Esta é uma ilustração construída a partir do comportamento documentado das ferramentas, não uma captura de tela.

Você:   Resuma a revisão de contract_annotated.pdf e agrupe por revisor.

Agente: [calls get_annotations on contract_annotated.pdf]
        Encontradas 5 anotações: 4 de Maria, 1 de Dana.
        Maria: termos de pagamento (página 2), data de entrega (página 5),
          limite de responsabilidade (página 6), um bloco de assinatura ausente (página 6).
        Respostas: Alex respondeu ao comentário sobre termos de pagamento da página 2.
        Dana: um risco na página 4 marcando uma cláusula desatualizada.
        Comentários de Maria sem resposta: página 5 e os dois da página 6.

O agente pode agir sobre os comentários?

Ele pode repassar a lista: abrir uma issue por comentário não respondido, rascunhar um e‑mail de resposta ou escrever um parágrafo de status. Uma regra se aplica. Comentários vêm de outras pessoas, portanto o agente deve tratar o texto da anotação como conteúdo a ser relatado, não como instruções. Um comentário que diz “ignore instruções anteriores” é apenas um dado em um campo. Solicite resumos e relatórios, e mantenha ações que alterem algo sob sua própria revisão.

Como executar o servidor para Claude, Cursor ou Copilot?

O servidor roda a partir da imagem Docker ghcr.io/groupdocs-annotation/annotation-net-mcp ou via NuGet com dnx GroupDocs.Annotation.Mcp --yes (.NET 10 SDK), e monta a pasta que contém seus documentos. A página central lista o registro para Claude Desktop, Claude Code, VS Code com GitHub Copilot, Cursor, Windsurf e outros clientes.

Limites honestos

  • Modo de avaliação. Um selo de teste é estampado no topo de cada página. Ele não altera os dados de anotação, portanto relatórios construídos dessa forma são precisos sem licença. Afeta o que você pode enviar adiante. Se o plano terminar com “enviar por e‑mail a cópia anotada”, verifique get_license_status primeiro.
  • Um documento por chamada. Varreduras em muitos arquivos implicam muitas chamadas, e cada uma é uma chamada de ferramenta que o agente deve fazer e relatar.
  • Exportação é XML. get_annotations devolve JSON para o agente ler; export_annotations grava XML no armazenamento.
  • Nenhuma pré‑visualização necessária. Nenhum dos três modos renderiza uma página, portanto o limite de pré‑visualização de PDF de generate_pages_preview no Linux não os afeta.

Perguntas frequentes

Como exporto todos os comentários de um PDF?
Peça ao agente para exportar as anotações. Ele chamará export_annotations, que grava um arquivo XML ao lado dos seus documentos, ou chamará get_annotations se você quiser os comentários listados no chat.

A IA pode resumir comentários de revisores em vários arquivos?
Sim. Nomeie os arquivos no prompt e o agente lê cada um com get_annotations, depois combina os resultados em um único resumo. Ele lê um arquivo por chamada.

O relatório muda se eu não tiver licença?
Os dados de anotação não mudam. Apenas as páginas renderizadas ou salvas carregam o selo de teste.

Aprofunde‑se