local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Enables analyzing Excel spreadsheets stored in Google Sheets, including accessing financial data, forms, and tabular datasets.
Provides a Python-based interface to the OpenPyXl library for Excel file manipulation and data extraction.
openpyxl_mcp_server
이게 뭔가요?
OpenPyXl Python 라이브러리를 감싸는 얇은 래퍼로, 일부 기능을 MCP(Model Context Protocol) 서버로 제공합니다. 이를 통해 Claude 및 기타 MCP 클라이언트가 Excel 파일에서 데이터를 가져올 수 있습니다.
관련 링크:
- https://openpyxl.readthedocs.io/en/stable/index.html
- https://modelcontextprotocol.io/quickstart/server
설치
일반 단계
- https://github.com/jonemo/openpyxl-mcp-server/releases 에서 실행 파일의 최신 버전을 다운로드하세요.
openpyxl_mcp_server
는 MacOS용이고,openpyxl_mcp_server.exe
는 Windows용입니다. - MCP 클라이언트를 구성하세요. 가장 일반적으로 사용되는 클라이언트는 Claude Desktop입니다. 다음 섹션의 지침을 참조하세요.
Windows는 인터넷에서 다운로드한 임의의 실행 파일을 실행하지 못하도록 막으려 할 것입니다. 파일이 삭제되지 않도록 하려면 여러 곳에서 "유지" 또는 "계속 유지"를 클릭해야 합니다. 이 설정의 세부 사항은 사용 중인 브라우저와 Windows Defender 설정에 따라 다릅니다.
또는 제 실행 파일을 신뢰하지 못하시는 경우, 이 저장소에서 직접 소스 코드를 설치하실 수도 있습니다. 아래 "소스에서 설치" 섹션을 참조하세요.
Claude Desktop 구성
이 기능은 Claude Desktop 앱 에서만 작동하며, Claude가 웹 브라우저에서 실행되는 경우에는 작동하지 않습니다.
- Claude Desktop을 설치하세요.
- MCP 서버 실행 파일을 다운로드하세요(이전 섹션 참조). 이는 실행 파일을 다운로드 폴더에 다운로드했다는 것을 전제로 합니다. 다른 폴더를 사용할 수 있으며, 아래 구성에서 경로를 적절히 조정하세요.
- Claude Desktop에서 "설정..." 메뉴를 엽니다.
- 설정의 "개발자" 섹션으로 이동합니다.
- "구성 편집"을 클릭하세요. MCP 서버용 구성 파일이 없다면 자동으로 생성됩니다. 이 파일의 기본 위치는 다음과 같습니다.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- MacOS에서는
claude_desktop_config.json
파일에 다음을 추가합니다.<YOUR-USERNAME>
MacOS 사용자 이름으로 바꾸세요. 이미 다른 MCP 서버를 사용 중이라면 JSON을 기존 내용에 병합해야 합니다.지엑스피1 - Windows에서는
claude_desktop_config.json
파일에 다음을 추가하세요.<YOUR-USERNAME>
MacOS 사용자 이름으로 바꾸세요. 이미 다른 MCP 서버를 사용 중이라면 JSON을 기존 내용에 병합해야 합니다.Copy - 구성 파일을 업데이트한 후 변경 사항을 적용하려면 Claude 앱을 다시 시작해야 합니다. Claude 앱 창을 닫는 것만으로는 충분하지 않습니다. Windows에서는 시스템 트레이에 있는 Claude 아이콘을 마우스 오른쪽 버튼으로 클릭하고 "종료"를 선택하세요. macOS에서는 Command+Q를 사용할 수 있습니다.
문제가 발생하면 다음 리소스를 참조하세요.
- 사용자를 위한 Anthropic 문서입니다 .
- 개발자를 위한 Anthropic 설명서 의 "데스크톱용 Claude로 서버 테스트" 섹션
- 누군가 https://claudedesktopconfiggenerator.com/ 에서 설정 파일 생성기를 만들었습니다.
다른 MCP 클라이언트 구성
MCP 서버를 지원하는 다른 도구에서 MCP 서버를 구성하는 방법에 대한 지침:
소스에서(개발용)
이 섹션은 소스 코드를 수정하려는 경우나 제공된 실행 파일을 신뢰하지 않고 소스 코드에서 실행하려는 경우에만 적용됩니다.
/Users/jonas/repos/openpyxl_mcp_server
에 저장소를 복제했다고 가정하면 구성 파일 내용은 이제 다음과 같이 변경되어야 합니다.
예시 프롬프트
예제 1
https://catalog.data.gov/dataset/near-port-air-quality-assessment-utilizing-a-mobile-monitoring-approach 의 "모바일 모니터링 방식을 활용한 항만 근처 대기 질 평가" 데이터 세트의 KimbroughEvelyn_A-5qg0_Dataset_20160624.xlsx
파일을 사용합니다.
설명과 파일 내용을 잠깐 훑어봤지만, 이 데이터 세트가 어떤 포트에 대한 것인지 명확하게 드러나지 않았습니다. Claude에게 물어보겠습니다.
~/Downloads/KimbroughEvelyn_A-5qg0_Dataset_20160624.xlsx에 미국 내 항구 하나 이상의 대기 오염 연구 관련 데이터가 담긴 Excel 파일이 있습니다. 파일 내용을 통해 이 연구의 대상이 되는 항구가 어디인지 유추해 볼 수 있을까요?
https://claude.ai/share/d87f67a9-dbc0-4223-86ff-3b4c1f9fa2e7
MCP 서버에 11번의 호출을 한 후의 응답은 다음과 같습니다.
그림 2의 위도와 경도 좌표를 살펴보고 이를 위치 정보와 결합하면 이 연구가 사우스캐롤라이나 주 찰스턴 항구에 초점을 맞추고 있다는 것을 추론할 수 있습니다.
데이터 세트의 좌표(위도 약 32.83, 경도 -79.87)는 찰스턴 지역에 해당하며, 도심, 철도 차량 기지, 공항 모니터링 스테이션에 대한 참조는 항구 도시 주변의 대기 질 모니터링과 일치합니다.
이 데이터 세트에는 찰스턴 항구 근처에서 수집된 대기 오염 측정값(PM2.5 및 PM10)이 포함되어 있는 것으로 보이며, 항구 위치와 배경/참조 사이트를 비교한 내용도 포함되어 있습니다.
예 2:
저는 10세대 규모의 소규모 주택 소유자 협회의 재무 담당자입니다. 저희 협회의 회계는 Google 스프레드시트의 Excel 파일로 처리됩니다. 이 파일은 거래 내역서, 회원 회비 계정, 분기 보고서 등 9개의 시트로 구성되어 있습니다.
파일에는 비공개 정보가 포함되어 있으므로 이 예에서는 프롬프트, 몇 가지 주요 "통찰력" 및 최종 답변만 보여줍니다.
~/Downloads/CASH FLOW 2024.xlsx는 저희 주택 소유자 협회의 재정입니다. 2024년에 스프링클러 시스템 유지 보수 비용으로 얼마를 받았나요? 이 총액에 몇 건의 거래가 포함되었나요? 각 거래는 언제 이루어졌나요?
[...]
"거래" 시트가 보이는데, 거기에 자세한 지출 내역이 있을 것 같습니다. 이 시트에서 "스프링클러"를 검색해서 관련 거래를 찾아보겠습니다.
[...]
스프링클러 유지관리가 범주로 나열되어 있는지 확인하기 위해 2024년 요약 시트를 살펴보겠습니다.
[...]
좋아요! YEAR 2024 시트의 24행에 "스프링클러 유지 관리"라는 항목이 있는 걸 발견했습니다. 이제 스프링클러 유지 관리와 관련된 실제 거래를 확인해 보겠습니다.
[...]
전체 거래 시트에서 "스프링클러 유지 관리"를 구체적으로 검색하여 더 많은 항목을 확인해 보겠습니다.
[...]
"CASH FLOW 2024.xlsx" 파일에서 HOA의 재무 기록을 분석한 결과, 2024년 스프링클러 시스템 유지 관리 비용에 대해 다음과 같은 내용을 발견했습니다.
2024년 스프링클러 시스템 유지 관리에 청구된 총 금액: $565.00 거래 수: 1건 거래 날짜: 2024년 9월 9일
해당 비용은 거래 시트에 단일 거래로 표시됩니다. 스프레드시트의 "2024년 실적 대비 계획" 시트에는 스프링클러 유지보수 예산 금액 750달러가 포함되어 있으며, "아직 송장을 받지 못했습니다"라는 메모가 함께 표시됩니다(현재 송장이 하나 등록되어 있으므로 오래된 내용일 수 있습니다). HOA 스프링클러 유지보수 비용의 다른 측면이나 스프레드시트의 다른 재무 정보를 분석해 드리겠습니다.
실화입니다. 스프링클러 기사님이 봄에 한 번 방문한 것에 대해서만 청구서를 보냈고, 연말 작업 청구서는 보내는 걸 깜빡했습니다. 걱정 마세요. 급여는 받았지만 2025년에 예약이 잡혀 있거든요.
예 3: 양식 작성
흥미로운 Excel 통합 문서를 구글에서 검색해 보니 캘리포니아 천연자원청(California Natural Resources Agency)의 DPR 973 양식이 나왔습니다. https://www.parks.ca.gov/pages/22374/files/Annual Report DPR973.xls 이 양식은 캘리포니아 주립공원을 지원하는 "협회"에서 작성하는 양식인 것 같습니다. 분명히 말씀드리자면, 저는 그런 협회와 아무런 관련이 없습니다. 하지만 양식을 .xls 형식에서 .xlsx 형식으로 변환하고 클로드에게 작성을 도와달라고 부탁했습니다.
캘리포니아 주립공원 "협력 협회"에서 일하기 때문에 DPR973 양식을 제출해야 합니다. 작성해야 하는 양식은 다음 엑셀 시트입니다: /Users/jonas/Downloads/Annual Report DPR973.xlsx. 저희는 책을 출판하여 주립공원을 지원했고, 장작 판매로 수익을 창출했습니다. 워크북의 어느 셀에 입력해야 하나요?
도구에 11번이나 전화를 건 후, 응답은 정확한 듯합니다. 하지만 클로드가 왜 나머지 시트를 전혀 보지 않았는지는 이해할 수 없습니다.
DPR973 양식을 검토한 결과를 바탕으로, 이제 도서 출판 및 장작 판매를 담당하는 협력 협회의 경우 셀을 어디에 작성해야 하는지에 대한 지침을 제공해 드리겠습니다.
- 페이지 1 :
- 귀하의 조직 세부 정보(이름, 주소, 연락처 정보)를 포함하여 협회 정보(1부)를 작성해야 합니다.
- 셀 C4의 연도를 현재 보고 연도로 업데이트합니다.
- 2페이지(A) - 여기에 판매 정보를 기록합니다.
- 도서 판매(해석적/교육적이라고 간주됨):
Copy
- 장작 판매를 위해:
Copy
- 이 양식은 셀 F25(장부 이익), F54(장작 이익), F58(총 순 이익)의 합계를 자동으로 계산합니다.
- 3페이지 - 재무 요약:
- 판매 수치는 2페이지(A)에서 다음 페이지로 자동으로 채워집니다.
Copy
- 다음을 수동으로 입력해야 합니다.
Copy
- 비용에 대해:
Copy
- 자산/부채의 경우:
Copy
- 4페이지 (완전히 조사되지는 않았지만 다음 내용이 포함되어 있을 가능성이 있음):
- 추가 메모, 설명 및 서명
귀하의 특정 활동(도서 출판 및 장작 판매)에 대해서는 다음 사항을 정확하게 완료하는 데 중점을 두십시오.
- 2페이지(A)의 해석 및 교육 판매 섹션은 도서 판매에 관한 것입니다.
- 장작 판매 섹션은 2페이지(A)에 있으며 장작 판매 수익에 대한 정보를 제공합니다.
- 3페이지에 전체 재무 요약이 있습니다.
특정 섹션에 대해 더 자세히 설명해 드릴까요?
예제 4
이 데이터 세트는 https://catalog.data.gov/dataset/inventory-of-owned-and-leased-properties-iolp 에서 제공되는 소유 및 임대 부동산 재고(IOLP) 데이터 세트의 2025-3-7-iolp-buildings.xlsx
파일을 사용합니다. 최근 몇 주 동안 뉴스를 보셨다면 이 데이터 세트가 현재 data.gov에서 가장 인기 있는 데이터 세트인 이유를 아실 겁니다.
즉각적인:
"/Users/jonas/Downloads/2025-3-7-iolp-buildings.xlsx"의 Excel 파일을 사용하여: 유타주에서 면적 기준으로 가장 큰 연방 건물은 무엇입니까?
저는 이 파일과 프롬프트를 테스트 케이스로 반복해서 사용했고 엇갈린 결과를 얻었습니다.
- 컨텍스트 제한에 도달하여 응답 없이 종료된 채팅이 있습니다. 이는 Claude가 한 번에 여러 행을 하나씩 쿼리하는 루프에 빠졌을 때 발생했습니다.
- 클로드가 진행 과정에서 "잘못된 가정"을 했기 때문에 오답입니다. 예를 들어, 이 채팅 에서 클로드는 가장 큰 건물이 솔트레이크시티에 있어야 한다고 판단하고 스프레드시트에서 임의의 용어를 검색하기 시작합니다.
- 정답은 다음과 같습니다. 이 채팅 : 오그던에 있는 IRS 서비스 센터는 목록에 있는 유타주에서 가장 큰 연방 정부 소유 건물입니다.
각주: IRS 서비스 센터는 목록에서 가장 큰 건물이라는 점에서는 맞습니다. "범블하이브", 일명 " 유타 데이터 센터 ", 일명 "인텔리전스 커뮤니티 종합 국가 사이버 보안 이니셔티브 데이터 센터"는 거의 확실히 더 크지만, 목록에는 포함되지 않았습니다.
기여 및 개발
독립 실행형 실행 파일 빌드
Python 설치가 필요하지 않은 독립 실행형 실행 파일을 만들려면:
- 모든 종속성이 설치되어 있는지 확인하세요.Copy
- 실행 파일을 빌드합니다.Copy
실행 파일은 dist
디렉터리에 생성됩니다. Windows에서는 openpyxl_mcp_server.exe
라는 이름으로, macOS에서는 openpyxl_mcp_server
라는 이름으로 생성됩니다.
참고: macOS에서 빌드하는 경우, 실행 파일이 제대로 실행되도록 서명해야 할 수 있습니다. 다음을 사용하여 서명할 수 있습니다.
MCP 서버 디렉토리
openpyxl-mcp-server는 현재 다음 MCP 서버 디렉토리에 나열되어 있습니다.
This server cannot be installed
OpenPyXl Python 라이브러리를 감싸는 얇은 래퍼로, Excel 파일 작업을 MCP(Model Context Protocol) 서버로 노출하여 Claude와 다른 MCP 클라이언트가 Excel 파일에서 데이터를 가져와 분석할 수 있도록 합니다.