npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

xlmcp

v0.4.0

Published

Excel automation MCP server via PowerShell COM. 48 tools — session pooling, chunked parallel I/O, virtual clipboard. Windows only.

Readme

xlmcp

Excel을 직접 제어하는 MCP 서버.

실행 중인 Excel 인스턴스에 자동 연결되며, 워크북·시트 파라미터 생략 시 현재 활성 대상을 사용합니다.

  • 런타임: Windows + PowerShell + Excel COM
  • 전송: stdio
  • npm: bunx xlmcp@latest

아키텍처

  • Session Pool: PowerShell 프로세스 4개 (General) + 1개 (Exclusive). 라운드 로빈 배분.
  • Exclusive Queue: 클립보드·Selection·구조 변경 도구는 직렬 실행. 실행 중 General Pool 일시 차단.
  • HealthMonitor: 10초 heartbeat, 사망 감지 시 자동 재생성, 호출당 30초 타임아웃.
  • 대용량 쓰기: 30행 이상 시 자동 청크 분할 + JSON 임시 파일 + 병렬 쓰기.
  • 가상 클립보드: 값/수식 복사 시 시스템 클립보드 미사용. 서식 복사만 시스템 클립보드 사용.

환경 변수

| 변수 | 기본값 | 설명 | |---|---|---| | XLMCP_POOL_SIZE | 4 | PowerShell 세션 풀 크기 (General Pool). 최소 1 |

도구 (48개)

Workbook (6)

| 도구 | 설명 | |---|---| | excel_list_open_workbooks | 열린 워크북 목록 반환 (이름, 경로, 시트 수) | | excel_get_active_workbook | 활성 워크북의 이름, 경로, 시트 수, 활성 시트명 반환 | | excel_create_workbook | 새 빈 워크북 생성. savePath 지정 시 즉시 저장 | | excel_open_workbook | 파일 경로로 워크북 열기. 이미 열려 있으면 활성화 | | excel_save_workbook | 워크북 저장. savePath 지정 시 다른 이름으로 저장 | | excel_close_workbook | 워크북 닫기. save 옵션으로 저장 여부 지정 |

Sheet (5)

| 도구 | 설명 | |---|---| | excel_list_sheets | 워크북 내 모든 시트 이름 반환 | | excel_create_sheet | 새 시트 추가. after로 삽입 위치 지정 가능 | | excel_delete_sheet | 시트 삭제 | | excel_copy_sheet | 시트 복사. newName으로 복사본 이름 지정 가능 | | excel_rename_sheet | 시트 이름 변경 |

Cell / Range (6)

| 도구 | 설명 | |---|---| | excel_read_cell | 단일 셀의 값, 수식, 표시 텍스트, 표시 형식 반환 | | excel_write_cell | 단일 셀에 값 또는 수식 입력. =로 시작하면 수식 처리 | | excel_read_range | 범위를 2D 배열로 반환. 타입 유지. 생략 시 UsedRange | | excel_write_range | 시작 셀부터 2D 배열 데이터 입력. 숫자 자동 감지, 수식 혼합 가능. 대용량 시 자동 청크 분할 병렬 쓰기 | | excel_read_range_formulas | 범위의 수식을 2D 배열로 반환 | | excel_clear_range | 범위 삭제 (값만/서식만/전체) |

Format (6)

| 도구 | 설명 | |---|---| | excel_format_range | 서식 적용 — 폰트, 배경색, 정렬, 테두리(전체/개별), 표시 형식 | | excel_set_column_width | 열 너비 설정. auto로 자동 맞춤 가능 | | excel_set_row_height | 행 높이 설정. auto로 자동 맞춤 가능 | | excel_merge_cells | 셀 병합 또는 병합 해제 | | excel_read_cell_format | 셀의 현재 서식 정보 반환 (폰트, 색상, 정렬, 테두리, 병합 여부) | | excel_write_cell_format | 서식 데이터 기반 일괄 적용. read_cell_format 출력으로 서식 복제 가능 |

Data (6)

| 도구 | 설명 | |---|---| | excel_insert_delete_rows_cols | 행 또는 열 삽입·삭제 | | excel_copy_paste_range | 값 또는 수식 복사/붙여넣기. 시스템 클립보드 미사용, 병렬 안전 | | excel_copy_paste_format | 서식 복사/붙여넣기. 값·수식과 함께 필요 시 copy_paste_range와 순차 호출 | | excel_find_replace | 시트 내 찾기/바꾸기. 찾기만도 가능 | | excel_sort_range | 범위를 지정 열 기준으로 정렬 | | excel_auto_filter | 자동 필터 설정/해제/조건 적용 |

Table (4)

| 도구 | 설명 | |---|---| | excel_list_tables | 시트 내 표(ListObject) 목록 반환 | | excel_create_table | 범위를 Excel 표로 변환 | | excel_edit_table | 표 이름, 스타일, 크기 변경, 행/열 추가, 요약 행 토글 | | excel_delete_table | 표 삭제 (데이터 유지 또는 함께 삭제) |

Chart (1)

| 도구 | 설명 | |---|---| | excel_create_chart | 차트 생성 (line/bar/column/pie/scatter/area) |

Pivot (1)

| 도구 | 설명 | |---|---| | excel_create_pivot_table | 피벗 테이블 생성. 행/열/데이터 필드 및 집계 함수 지정 |

Validation (2)

| 도구 | 설명 | |---|---| | excel_set_data_validation | 데이터 유효성 검사 (드롭다운, 숫자 범위, 수식 등) | | excel_set_conditional_format | 조건부 서식 (셀 값, 수식, 색조, 데이터 막대) |

Image (4)

| 도구 | 설명 | |---|---| | excel_insert_image | 이미지 파일을 시트에 임베딩 삽입 (PNG, JPG, BMP, GIF). 위치·크기·비율 유지 지정 | | excel_list_images | 시트에 삽입된 이미지(Picture) 목록 조회 (이름, 크기, 위치) | | excel_manage_image | 이미지 삭제, 이동(셀 지정), 크기 변경 | | excel_export_range_image | 셀 범위를 이미지 파일(PNG/JPG/BMP/GIF)로 내보내기 (exclusive) |

VBA (3)

| 도구 | 설명 | |---|---| | excel_insert_vba | VBA 모듈 추가 + 코드 삽입 (module, classModule, form) | | excel_list_vba | VBA 모듈 목록 조회. name 지정 시 소스 코드 반환 | | excel_manage_vba | VBA 모듈 삭제/코드 교체/코드 추가. Document 모듈은 코드만 제거 |

View (4)

| 도구 | 설명 | |---|---| | excel_freeze_panes | 틀 고정/해제 | | excel_named_range | 이름 정의 조회/생성/삭제 | | excel_pool_status | 세션 풀 상태 조회 (세션 수, busy/alive, 큐 길이, 처리 통계) | | excel_cancel_queued | 대기 중인 작업 취소 (단건 또는 전체). 실행 중 작업은 취소 불가 |

구조

src/
├── index.ts
├── services/
│   ├── powershell.ts       # SessionPool (General 4 + Exclusive 1)
│   └── utils.ts            # psEscape, parseJSON, textContent
├── schemas/
│   └── common.ts
└── tools/
    ├── workbook/            # 6 도구
    ├── sheet/               # 5 도구
    ├── cell/                # 6 도구
    ├── format/              # 6 도구
    ├── data/                # 6 도구
    ├── table/               # 4 도구
    ├── chart/               # 1 도구
    ├── pivot/               # 1 도구
    ├── validation/          # 2 도구
    ├── image/               # 4 도구 (+ 1 exclusive)
    ├── vba/                 # 3 도구
    └── view/                # 4 도구 (+ 1 exclusive)

각 카테고리 폴더에 {도구명}.tool.ts + index.ts로 구성. 도구 추가 시 .tool.ts 파일 생성 후 해당 index.ts에 import 추가.