excel-search-mcp

msaltnet/excel-search-mcp

3.3

If you are the rightful owner of excel-search-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Excel Search MCP server is designed to search and read Excel files on a local PC, providing data in a format usable by AI models.

Tools
3
Resources
0
Prompts
0

Excel Search MCP

둜컬 PC의 μ—‘μ…€ νŒŒμΌμ„ κ²€μƒ‰ν•˜κ³  λ‚΄μš©μ„ μ½μ–΄μ˜€λŠ” MCP(Model Context Protocol) μ„œλ²„

πŸ“‹ ν”„λ‘œμ νŠΈ κ°œμš”

이 ν”„λ‘œμ νŠΈλŠ” MCP(Model Context Protocol)λ₯Ό 톡해 둜컬 PC의 Excel νŒŒμΌλ“€μ„ κ²€μƒ‰ν•˜κ³ , λ‚΄μš©μ„ μ½μ–΄μ™€μ„œ AI λͺ¨λΈμ΄ ν™œμš©ν•  수 μžˆλŠ” ν˜•νƒœλ‘œ μ œκ³΅ν•˜λŠ” μ„œλ²„μž…λ‹ˆλ‹€.

🎯 μ£Όμš” κΈ°λŠ₯

  • μ—‘μ…€ 파일 검색: μ§€μ •λœ λ””λ ‰ν† λ¦¬μ—μ„œ Excel νŒŒμΌλ“€μ„ μž¬κ·€μ μœΌλ‘œ 검색
  • 파일 λͺ©λ‘ 제곡: 발견된 Excel νŒŒμΌλ“€μ˜ μ ˆλŒ€ 경둜 λͺ©λ‘ 제곡
  • 파일 μš”μ•½: Excel 파일의 κΈ°λ³Έ 정보 및 ꡬ쑰 μš”μ•½ 제곡
  • 데이터 μΆ”μΆœ: Excel 파일의 λ‚΄μš©μ„ JSON ν˜•νƒœλ‘œ λ³€ν™˜ν•˜μ—¬ 제곡
  • μ›Œν¬μ‹œνŠΈ 관리: 닀쀑 μ›Œν¬μ‹œνŠΈ 지원 및 κ°œλ³„ μ›Œν¬μ‹œνŠΈ μ ‘κ·Ό

πŸ—οΈ μ•„ν‚€ν…μ²˜

μ‹œμŠ€ν…œ ꡬ성도

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   AI Client     │◄──►│  MCP Server     │◄──►│  Excel Files    β”‚
β”‚   (Claude, etc) β”‚    β”‚  (Python)       β”‚    β”‚  (.xlsx, .xls)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚  File System    β”‚
                       β”‚  (Directory     β”‚
                       β”‚   Scanning)     β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

핡심 μ»΄ν¬λ„ŒνŠΈ

  1. MCP Server Core

    • MCP ν”„λ‘œν† μ½œ κ΅¬ν˜„
    • ν΄λΌμ΄μ–ΈνŠΈμ™€μ˜ 톡신 관리
    • μš”μ²­/응닡 처리
  2. Excel Processor

    • Excel 파일 읽기/νŒŒμ‹±
    • μ›Œν¬μ‹œνŠΈ 데이터 μΆ”μΆœ
    • JSON λ³€ν™˜ 둜직
  3. File Scanner

    • 디렉토리 μž¬κ·€ 검색
    • Excel 파일 필터링
    • 파일 메타데이터 μˆ˜μ§‘
  4. Data Formatter

    • Excel 데이터λ₯Ό JSON으둜 λ³€ν™˜
    • μš”μ•½ 정보 생성
    • μ—λŸ¬ 처리 및 검증

πŸ“ μž‘μ—… κ³„νš

Phase 1: ν”„λ‘œμ νŠΈ 초기 μ„€μ • (1-2일)

  • Python ν”„λ‘œμ νŠΈ ꡬ쑰 μ„€μ •
  • MCP μ„œλ²„ κΈ°λ³Έ ν”„λ ˆμž„μ›Œν¬ κ΅¬ν˜„
  • μ˜μ‘΄μ„± 관리 (requirements.txt, pyproject.toml)
  • κΈ°λ³Έ μ„€μ • 파일 ꡬ성

Phase 2: 핡심 κΈ°λŠ₯ κ΅¬ν˜„ (3-4일)

  • Excel 파일 검색 κΈ°λŠ₯
    • 디렉토리 μž¬κ·€ μŠ€μΊ”
    • Excel 파일 ν™•μž₯자 필터링 (.xlsx, .xls)
    • 파일 메타데이터 μˆ˜μ§‘
  • Excel 파일 읽기 κΈ°λŠ₯
    • openpyxl/pandasλ₯Ό μ‚¬μš©ν•œ Excel νŒŒμ‹±
    • 닀쀑 μ›Œν¬μ‹œνŠΈ 지원
    • 데이터 νƒ€μž… 처리 (λ¬Έμžμ—΄, 숫자, λ‚ μ§œ λ“±)

Phase 3: MCP 도ꡬ κ΅¬ν˜„ (2-3일)

  • list_excel_files 도ꡬ
    • μ§€μ •λœ λ””λ ‰ν† λ¦¬μ—μ„œ Excel 파일 λͺ©λ‘ λ°˜ν™˜
    • 파일 경둜, 크기, μˆ˜μ •μΌμ‹œ 정보 포함
  • get_excel_summary 도ꡬ
    • Excel 파일의 κΈ°λ³Έ 정보 제곡
    • μ›Œν¬μ‹œνŠΈ λͺ©λ‘, ν–‰/μ—΄ 수, 데이터 νƒ€μž… 정보
  • read_excel_data 도ꡬ
    • Excel 파일 λ‚΄μš©μ„ JSON으둜 λ³€ν™˜
    • νŠΉμ • μ›Œν¬μ‹œνŠΈ 선택 μ˜΅μ…˜
    • 데이터 λ²”μœ„ μ œν•œ μ˜΅μ…˜

Phase 4: κ³ κΈ‰ κΈ°λŠ₯ 및 μ΅œμ ν™” (2-3일)

  • μ„±λŠ₯ μ΅œμ ν™”
    • λŒ€μš©λŸ‰ 파일 처리 κ°œμ„ 
    • λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ μ΅œμ ν™”
    • 캐싱 λ©”μ»€λ‹ˆμ¦˜ κ΅¬ν˜„
  • μ—λŸ¬ 처리 κ°•ν™”
    • 파일 μ ‘κ·Ό κΆŒν•œ μ—λŸ¬ 처리
    • μ†μƒλœ Excel 파일 처리
    • λ©”λͺ¨λ¦¬ λΆ€μ‘± 상황 처리
  • λ‘œκΉ… 및 λͺ¨λ‹ˆν„°λ§
    • μƒμ„Έν•œ 둜그 기둝
    • μ„±λŠ₯ λ©”νŠΈλ¦­ μˆ˜μ§‘

Phase 5: ν…ŒμŠ€νŠΈ 및 λ¬Έμ„œν™” (1-2일)

  • λ‹¨μœ„ ν…ŒμŠ€νŠΈ μž‘μ„±
  • 톡합 ν…ŒμŠ€νŠΈ κ΅¬ν˜„
  • μ‚¬μš© 예제 및 λ¬Έμ„œ μž‘μ„±
  • README μ—…λ°μ΄νŠΈ

πŸ› οΈ 기술 μŠ€νƒ

  • μ–Έμ–΄: Python 3.8+
  • MCP ν”„λ ˆμž„μ›Œν¬: mcp (Model Context Protocol)
  • Excel 처리: openpyxl, pandas
  • 파일 μ‹œμŠ€ν…œ: pathlib, os
  • 데이터 λ³€ν™˜: json
  • λ‘œκΉ…: logging
  • ν…ŒμŠ€νŠΈ: pytest

πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰 (μ˜ˆμƒ)

excel-search-mcp/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ server.py              # MCP μ„œλ²„ 메인
β”‚   β”œβ”€β”€ excel_processor.py     # Excel 파일 처리
β”‚   β”œβ”€β”€ file_scanner.py        # 파일 검색
β”‚   └── data_formatter.py      # 데이터 λ³€ν™˜
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ test_server.py
β”‚   β”œβ”€β”€ test_excel_processor.py
β”‚   └── test_file_scanner.py
β”œβ”€β”€ examples/
β”‚   β”œβ”€β”€ sample_excel_files/
β”‚   └── usage_examples.py
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ pyproject.toml
β”œβ”€β”€ README.md
└── .gitignore

πŸš€ μ‚¬μš© μ˜ˆμ‹œ

# MCP ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ‚¬μš© μ˜ˆμ‹œ
tools = [
    {
        "name": "list_excel_files",
        "description": "μ§€μ •λœ λ””λ ‰ν† λ¦¬μ—μ„œ Excel 파일 λͺ©λ‘μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€",
        "parameters": {
            "directory_path": "string",
            "recursive": "boolean"
        }
    },
    {
        "name": "get_excel_summary", 
        "description": "Excel 파일의 μš”μ•½ 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€",
        "parameters": {
            "file_path": "string"
        }
    },
    {
        "name": "read_excel_data",
        "description": "Excel 파일의 데이터λ₯Ό JSON으둜 μ½μ–΄μ˜΅λ‹ˆλ‹€",
        "parameters": {
            "file_path": "string",
            "worksheet_name": "string",
            "max_rows": "integer"
        }
    }
]

πŸ“Š μ„±λŠ₯ λͺ©ν‘œ

  • 파일 검색: 1000개 파일 κΈ°μ€€ 5초 이내
  • Excel 읽기: 10MB 파일 κΈ°μ€€ 3초 이내
  • λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰: 100MB μ΄ν•˜
  • λ™μ‹œ 처리: μ΅œλŒ€ 10개 파일 λ™μ‹œ 처리

πŸ”’ λ³΄μ•ˆ 고렀사항

  • 파일 μ ‘κ·Ό κΆŒν•œ 검증
  • 경둜 μ‘°μž‘ 곡격 λ°©μ§€
  • λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ μ œν•œ
  • λ―Όκ°ν•œ 데이터 λ§ˆμŠ€ν‚Ή μ˜΅μ…˜

πŸ“ˆ ν–₯ν›„ ν™•μž₯ κ³„νš

  • Excel 파일 μ“°κΈ° κΈ°λŠ₯
  • μ‹€μ‹œκ°„ 파일 λͺ¨λ‹ˆν„°λ§
  • 원격 Excel 파일 지원 (URL, ν΄λΌμš°λ“œ)
  • κ³ κΈ‰ 필터링 및 검색 κΈ°λŠ₯
  • 데이터 μ‹œκ°ν™” 지원