An AI 에이전트는 테이블을 직접 읽어서는 안 됩니다. 테이블을 반환하는 도구를 호출하고, 그 후 행에 대해 연산을 수행해야 합니다. Docker에서 로컬로 실행되는 GroupDocs.Parser.Mcp를 사용하면 Claude Desktop이나 Cursor와 같은 AI 클라이언트가 PDF, Word 및 Excel 파일에서 테이블을 추출하고 JSON 형태로 받을 수 있습니다:
invoice.pdf에서 라인 항목을 JSON으로 추출하고 amount 열의 합계를 구하세요.
구성 및 문제 해결이 포함된 단계별 버전은 문서에 있습니다: 문서에서 테이블을 추출하여 구조화된 데이터로 변환하는 방법.
모델이 테이블을 직접 읽을 때 발생하는 문제는 무엇인가요?
일반적인 워크플로는 PDF를 채팅에 붙여넣고 테이블을 요청하는 것입니다. 모델은 평탄화된 텍스트 스트림을 보고 열이 어디에 있었는지 추론한 뒤 행을 다시 작성합니다. 각 셀은 예측이 됩니다. 열이 누락되거나, 행이 병합되었거나, 소수점이 이동해도 오류가 발생하지 않고, 약간 잘못된 자신감 넘치는 형식의 테이블이 생성됩니다. 과일 목록이라면 크게 문제되지 않지만, 청구서 합계에서는 큰 문제가 됩니다.
출력이 올바르게 보이기 때문에 실패를 잡기 어렵습니다. 채팅 응답에는 파일에서 읽힌 셀과 재구성된 셀을 구분해 주는 정보가 없습니다.
모델이 추측하도록 내버려 두는 대신의 대안은 무엇인가요?
읽기를 모델 밖으로 이동합니다. extract_tables 도구가 문서 엔진으로 테이블을 감지하고 데이터를 반환합니다:
- 기본값은 Markdown이며,
### Table N (page N, R×C)섹션으로 채팅, VS Code 및 GitHub에 바로 렌더링됩니다. format: "json"을 사용하면 JSON 형태로 반환되며,{ table, page, rows, columns, data }객체 배열이며data는 문자열 그리드입니다.
모델은 셀을 전사하지 않습니다. data를 받아 작업하므로 모델의 역할은 신뢰할 수 있는 작업인 합산, 비교, 필터링 및 설명으로 축소됩니다. 이 도구는 PDF, DOCX, XLSX, PPTX 및 HTML을 지원하므로 동일한 프롬프트로 공급업체 청구서, Word 보고서 및 스프레드시트를 처리할 수 있습니다.
테이블을 JSON 형태로 얻으려면 어떻게 해야 하나요?
프롬프트에 형식을 명시하세요.
라인 항목을 JSON으로 추출하고 amount 열의 합계를 구하세요.
Example session (abridged)
You: Extract the line items from invoice-014.pdf as JSON and total the amount column.
Agent: [calls extract_tables with format "json"]
{"table": 1, "page": 1, "rows": 4, "columns": 3,
"data": [["Item", "Qty", "Amount"],
["Paper A4", "10", "48.00"],
["Toner", "2", "170.00"],
["Delivery", "1", "22.00"]]}
Total of the Amount column: 240.00 across 3 line items.
에이전트가 행을 보유하고 있기 때문에 다음 단계는 일반적인 질문이 됩니다: 가장 큰 라인은 어느 것인지, 총합이 텍스트에 표시된 수치와 일치하는지, 출력 폴더에 CSV로 행을 기록하는지 등. 연산이 중요한 경우, 에이전트에게 합산한 행을 나열하도록 요청하여 직접 확인할 수 있습니다.
언제 JSON 대신 Markdown을 요청해야 하나요?
결과를 사람이 바로 읽을 경우에는 Markdown을 사용하고, 코드가 읽을 경우에는 JSON을 사용합니다. Markdown은 기본값이며 테이블을 빠르게 확인하고 올바르게 추출됐는지 판단하는 가장 빠른 방법입니다. 합계, 교차 검증, 스프레드시트나 데이터베이스에 입력되는 경우에는 JSON으로 전환하세요. 테이블 위치를 알고 있다면 호출을 좁힐 수 있습니다:
페이지 4의 테이블을 추출하세요.
page 매개변수는 감지를 한 페이지로 제한하므로 더 빠르고, 사용량 기반 라이선스에서는 비용이 절감됩니다.
어떤 경우에 여전히 사람의 검토가 필요합니까?
테이블은 일반 텍스트보다 한계가 더 명확합니다.
- 스캔에는 찾을 테이블이 없습니다. 텍스트 레이어가 없으면 테이블 구조가 없으며, 추출 결과가 비어 있습니다. 이 서버에는 OCR 기능이 없습니다.
- 복잡한 레이아웃은 다양합니다. 병합된 셀, 중첩 테이블 및 페이지를 가로지르는 테이블은 단순 그리드만큼 깔끔하게 유지되지 않을 수 있습니다. 200개를 실행하기 전에 문서 하나를 샘플링해 보세요.
- 평가 모드는 제한됩니다. 라이선스가 없으면 추출이 제한되며, 정확한 제한은 라이브러리의 라이선스 페이지에 나와 있습니다. 실제 실행 전에 에이전트에게
get_license_status를 호출하도록 요청하세요.
한 명령으로 설치하기
서버는 Docker 이미지 형태로만 배포되므로 dnx 명령이 없습니다. Claude Code에 다음과 같이 등록하고, 경로를 문서 폴더로 교체하세요:
claude mcp add groupdocs-parser -- docker run --rm -i \
-v /path/to/documents:/data ghcr.io/groupdocs-parser/parser-net-mcp:latest
Cursor, Claude Desktop, VS Code with GitHub Copilot, Windsurf, Cline 및 Codex는 클라이언트별 구성 파일을 사용해 동일한 컨테이너를 사용하며, 각각은 AI 클라이언트에 등록하기에 나와 있습니다.
FAQ
Claude가 PDF 테이블을 정확하게 읽나요?
파일과 클라이언트가 텍스트를 평탄화하는 방식에 따라 다르므로 가정하지 말고 직접 확인하세요. extract_tables를 사용하면 행이 문서 엔진의 테이블 감지 결과로 그리드 형태의 문자열로 반환되며, Claude는 이를 기반으로 작업합니다.
AI를 사용하여 PDF에서 Excel로 테이블을 추출하려면 어떻게 해야 하나요?
테이블을 JSON으로 요청한 뒤, 에이전트에게 출력 폴더에 CSV로 행을 기록하도록 요청하면 Excel에서 열 수 있습니다. 행을 CSV로 변환하는 단계는 에이전트가 수행하며, 셀 값은 도구에서 제공됩니다.
Word 및 Excel 파일에서 로컬로 테이블을 추출할 수 있나요?
예. extract_tables는 PDF뿐만 아니라 DOCX와 XLSX도 처리하며, 컨테이너는 마운트한 폴더에서 파일을 읽습니다.
더 깊이 파고들기
- 문서, 표준 사용 방법: 문서에서 테이블을 추출하여 구조화된 데이터로 변환하는 방법
- 문서 허브: GroupDocs.Parser MCP 서버
- 도구 참조:
extract_tables도구 참조 - 시작하기: AI 에이전트와 MCP를 활용한 문서 데이터 추출 3가지 방법 (텍스트, 테이블, 이미지)
- 관련: MCP를 이용한 자동 추출 워크플로로 일관된 데이터 캡처 보장
- 관련: AI 에이전트를 활용한 스캔‑투‑레코드 자동화
- 온프레미스 및 보안 모델: AI 문서 처리용 3가지 아키텍처와 네트워크 내부에 파일을 보관하는 방법
- 질문: GroupDocs Parser 포럼
- 소스: GroupDocs.Parser.Mcp on GitHub