Excel
Excel
Excel MCP 서버는 Microsoft Excel 스프레드시트와의 통합을 제공하여 데이터 조작, 분석, 시각화 기능을 LLM에 제공합니다. 이 서버를 통해 스프레드시트의 데이터를 읽고 쓰며, 수식 적용, 서식 지정, 차트 생성, 피벗 테이블 조작 등 Excel의 다양한 기능을 활용할 수 있습니다. 특히 데이터 기반 분석, 재무 모델링, 보고서 자동화 등의 작업에 유용합니다.
특징
- 파일 관리: Excel 파일 생성, 열기, 저장 및 내보내기
- 데이터 읽기/쓰기: 셀, 범위, 워크시트 단위의 데이터 접근 및 조작
- 워크시트 관리: 워크시트 추가, 삭제, 복사, 이름 변경 등
- 수식 작업: 수식 적용, 계산, 함수 사용 지원
- 서식 지정: 셀 서식, 조건부 서식, 스타일 적용
- 차트 생성: 다양한 유형의 차트 생성 및 수정
- 피벗 테이블: 데이터 분석을 위한 피벗 테이블 생성 및 조작
- 데이터 필터링: 데이터 필터링, 정렬, 고급 필터 적용
- 매크로 지원: VBA 매크로 실행 및 자동화 작업
- 템플릿 관리: 보고서 및 분석 템플릿 생성 및 적용
API
도구
파일 관리 도구
- create_workbook: 새 Excel 워크북 생성
- 입력: 파일 이름, 템플릿(선택적)
-
출력: 생성된 워크북 ID 및 경로
-
open_workbook: 기존 Excel 파일 열기
- 입력: 파일 경로
-
출력: 로드된 워크북 ID 및 메타데이터
-
save_workbook: 현재 워크북 저장
- 입력: 워크북 ID, 저장 경로(선택적), 형식(xlsx, csv 등)
- 출력: 저장 결과 및 파일 정보
데이터 조작 도구
- read_range: 셀 범위 데이터 읽기
- 입력: 워크북 ID, 워크시트 이름, 범위(e.g. "A1:D10")
-
출력: 셀 데이터 배열
-
write_range: 셀 범위에 데이터 쓰기
- 입력: 워크북 ID, 워크시트 이름, 범위, 데이터 배열
-
출력: 쓰기 작업 결과
-
apply_formula: 수식 적용
- 입력: 워크북 ID, 워크시트 이름, 범위, 수식
- 출력: 수식 적용 결과
워크시트 관리 도구
- add_worksheet: 새 워크시트 추가
- 입력: 워크북 ID, 워크시트 이름
-
출력: 생성된 워크시트 ID
-
rename_worksheet: 워크시트 이름 변경
- 입력: 워크북 ID, 현재 이름, 새 이름
-
출력: 이름 변경 결과
-
delete_worksheet: 워크시트 삭제
- 입력: 워크북 ID, 워크시트 이름
- 출력: 삭제 상태
서식 도구
- apply_formatting: 셀 서식 적용
- 입력: 워크북 ID, 워크시트 이름, 범위, 서식 옵션(폰트, 색상, 테두리 등)
-
출력: 서식 적용 결과
-
apply_conditional_format: 조건부 서식 적용
- 입력: 워크북 ID, 워크시트 이름, 범위, 조건, 서식
- 출력: 조건부 서식 적용 결과
차트 및 분석 도구
- create_chart: 차트 생성
- 입력: 워크북 ID, 워크시트 이름, 데이터 범위, 차트 유형, 옵션
-
출력: 생성된 차트 ID 및 정보
-
create_pivot_table: 피벗 테이블 생성
- 입력: 워크북 ID, 소스 데이터 범위, 대상 위치, 행/열/값 필드
-
출력: 생성된 피벗 테이블 정보
-
apply_data_filter: 데이터 필터 적용
- 입력: 워크북 ID, 워크시트 이름, 범위, 필터 기준
- 출력: 필터 적용 결과
사용 방법
설치
# npm을 통한 설치
npm install -g excel-mcp-server
# 또는 GitHub 저장소에서 직접 설치
git clone https://github.com/author/excel-mcp-server
cd excel-mcp-server
npm install
필요 조건
- Windows 환경: Microsoft Excel이 설치되어 있어야 합니다.
- macOS/Linux 환경: Excel Online API 연결을 위한 Microsoft 계정 또는 ExcelJS와 같은 라이브러리 사용
구성
Claude Desktop에서 이 서버를 사용하려면 다음과 같이 설정할 수 있습니다:
{
"mcpServers": {
"excel": {
"command": "npx",
"args": ["-y", "excel-mcp-server"],
"env": {
"EXCEL_API_KEY": "YOUR_API_KEY",
"WORKBOOKS_DIRECTORY": "/path/to/workbooks"
}
}
}
}
사용 예시
// 새 워크북 생성
const workbook = await create_workbook({
filename: "sales_analysis.xlsx"
});
// 데이터 작성
await write_range({
workbookId: workbook.id,
worksheet: "Sheet1",
range: "A1:D1",
data: <a href="/document/"Date", "Product", "Quantity", "Price"" class="internal-link">"Date", "Product", "Quantity", "Price"</a>
});
await write_range({
workbookId: workbook.id,
worksheet: "Sheet1",
range: "A2:D6",
data: [
["2025-01-15", "Laptop", 5, 1200],
["2025-01-16", "Monitor", 10, 300],
["2025-01-17", "Keyboard", 15, 80],
["2025-01-18", "Mouse", 20, 25],
["2025-01-19", "Headset", 8, 100]
]
});
// 수식 적용
await apply_formula({
workbookId: workbook.id,
worksheet: "Sheet1",
range: "E1",
formula: "Total"
});
await apply_formula({
workbookId: workbook.id,
worksheet: "Sheet1",
range: "E2:E6",
formula: "=C{row}*D{row}"
});
// 차트 생성
await create_chart({
workbookId: workbook.id,
worksheet: "Sheet1",
dataRange: "A1:E6",
chartType: "column",
chartOptions: {
title: "Sales by Product",
xAxis: { title: "Product" },
yAxis: { title: "Total Sales" }
},
position: {
sheet: "Sheet1",
topLeft: "G2"
}
});
// 워크북 저장
await save_workbook({
workbookId: workbook.id,
path: "/path/to/sales_analysis.xlsx"
});
연결된 구성 요소
- SQLite - 데이터베이스 쿼리 결과를 Excel로 내보내기 및 분석
- Office-Word-MCP-Server - Excel 데이터를 Word 문서에 통합
- Office-PowerPoint-MCP-Server - Excel 차트와 데이터를 PowerPoint 프레젠테이션에 통합
- Markdownify - Excel 데이터를 Markdown으로 변환