VOOZH about

URL: https://glama.ai/mcp/servers/TapanKumarBarik/PYTHON-MCP?locale=ko-KR

⇱ Excel MCP μ„œλ²„ by TapanKumarBarik | Glama


πŸ‘ λŒ€μ²΄ ν…μŠ€νŠΈ

uv init mcp-server-demo

cd mcp-server-demo

uv add "mcp[cli]" uv pip install mcp-python pandas matplotlib openpyxl fastapi uvicorn pillow uv run mcp dev server.py

uv run mcp install server.py

Excel MCP μ„œλ²„

이 ν”„λ‘œμ νŠΈλŠ” Excel 데이터 μž‘μ—…μ„ μœ„ν•œ 도ꡬ와 λ¦¬μ†ŒμŠ€λ₯Ό μ œκ³΅ν•˜λŠ” λͺ¨λΈ μ»¨ν…μŠ€νŠΈ ν”„λ‘œν† μ½œ(MCP) μ„œλ²„λ₯Ό κ΅¬ν˜„ν•©λ‹ˆλ‹€. 이 μ„œλ²„λŠ” κ°„λ‹¨ν•œ APIλ₯Ό 톡해 Excel 데이터λ₯Ό 읽고, μ—…λ°μ΄νŠΈν•˜κ³ , ν•„ν„°λ§ν•˜κ³ , μ‹œκ°ν™”ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

νŠΉμ§•

  • Excel μž‘μ—… : Excel 파일 읽기 및 μ“°κΈ°

  • 데이터 필터링 : λ‹€μ–‘ν•œ 기쀀에 따라 데이터λ₯Ό ν•„ν„°λ§ν•˜κ³  κ²€μƒ‰ν•©λ‹ˆλ‹€.

  • 데이터 뢄석 : 톡계 μš”μ•½ 및 ν”Όλ²— ν…Œμ΄λΈ” 생성

  • 데이터 μ‹œκ°ν™” : λ‹€μ–‘ν•œ μ°¨νŠΈμ™€ μ‹œκ°ν™”λ₯Ό λ§Œλ“€μ–΄ λ³΄μ„Έμš”

  • μ—…λ°μ΄νŠΈ μž‘μ—… : μ…€ μ—…λ°μ΄νŠΈ, ν–‰ μΆ”κ°€, ν–‰ μ‚­μ œ

  • 이상 탐지 : μˆ˜μΉ˜ν˜• λ°μ΄ν„°μ—μ„œ μ΄μƒμΉ˜ μ°ΎκΈ°

  • 차트 μΆ”μ²œ : μ μ ˆν•œ μ‹œκ°ν™”λ₯Ό μžλ™μœΌλ‘œ μ œμ•ˆν•©λ‹ˆλ‹€.

Related MCP server: Excel MCP Server

μ„€μΉ˜

  1. ν•„μš”ν•œ 쒅속성을 μ„€μΉ˜ν•˜μ„Έμš”:

μ§€μ—‘μŠ€ν”Ό1

  1. 이 μ €μž₯μ†Œλ₯Ό λ³΅μ œν•˜κ±°λ‚˜ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•˜μ„Έμš”.

    • server.py - MCP μ„œλ²„ κ΅¬ν˜„

    • client.py - κΈ°λŠ₯을 λ³΄μ—¬μ£ΌλŠ” 데λͺ¨ ν΄λΌμ΄μ–ΈνŠΈ

μš©λ²•

μ„œλ²„ μ‹œμž‘

μ„œλ²„λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€:

python server.py

μ„œλ²„λŠ” 기본적으둜 http://localhost:8000 μ—μ„œ μ‹œμž‘λ©λ‹ˆλ‹€.

ν΄λΌμ΄μ–ΈνŠΈ 데λͺ¨ μ‚¬μš©

ν΄λΌμ΄μ–ΈνŠΈ 데λͺ¨ μŠ€ν¬λ¦½νŠΈλŠ” MCP μ„œλ²„λ‘œ μˆ˜ν–‰ν•  수 μžˆλŠ” λ‹€μ–‘ν•œ μž‘μ—…μ„ λ³΄μ—¬μ€λ‹ˆλ‹€.

python client.py

μ΄λ ‡κ²Œ ν•˜λ©΄:

  1. μƒ˜ν”Œ Excel νŒŒμΌμ„ λ§Œλ“­λ‹ˆλ‹€(μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 경우)

  2. κΈ°λ³Έ Excel μž‘μ—…μ„ μ‹œμ—°ν•©λ‹ˆλ‹€

  3. 데이터 필터링 κΈ°λŠ₯ ν‘œμ‹œ

  4. μ‹œκ°ν™” 생성

  5. 데이터 μ—…λ°μ΄νŠΈ μˆ˜ν–‰

  6. λ°μ΄ν„°μ˜ 이상 감지

API 직접 μ‚¬μš©

MCP μ„œλ²„μ˜ APIλ₯Ό 직접 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

도ꡬ API

/tools/{tool_name} 에 λŒ€ν•œ POST μš”μ²­μ„ μ‚¬μš©ν•˜μ—¬ 도ꡬλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.

import requests

# Example: Read Excel file
response = requests.post(
 "http://localhost:8000/tools/read_excel",
 json={"filename": "example.xlsx", "sheet_name": "Sheet1"}
)
data = response.json()

λ¦¬μ†ŒμŠ€ API

/resources/{resource_path} 에 λŒ€ν•œ GET λ˜λŠ” POST μš”μ²­μ„ μ‚¬μš©ν•˜μ—¬ λ¦¬μ†ŒμŠ€μ— μ•‘μ„ΈμŠ€ν•©λ‹ˆλ‹€.

# Example: Get sheet list
response = requests.get("http://localhost:8000/resources/excel://example.xlsx/sheets")
sheets = response.json()

μ‚¬μš© κ°€λŠ₯ν•œ 도ꡬ

μ—‘μ…€ μž‘μ—…

  • read_excel - Excel νŒŒμΌμ—μ„œ 데이터 읽기

  • write_excel - Excel νŒŒμΌμ— 데이터 μ“°κΈ°

  • get_excel_sheets - Excel 파일의 μ‹œνŠΈ λͺ©λ‘μ„ κ°€μ Έμ˜΅λ‹ˆλ‹€.

데이터 필터링

  • filter_data - 쑰건에 따라 Excel 데이터 필터링

  • search_data - Excel λ°μ΄ν„°μ—μ„œ μš©μ–΄ 검색

데이터 뢄석

  • summarize_data - Excel λ°μ΄ν„°μ˜ 톡계 μš”μ•½μ„ κ°€μ Έμ˜΅λ‹ˆλ‹€.

  • create_pivot_table - Excel λ°μ΄ν„°μ—μ„œ ν”Όλ²— ν…Œμ΄λΈ” λ§Œλ“€κΈ°

데이터 μ‹œκ°ν™”

  • visualize_chart - λ‹€μ–‘ν•œ 차트 μœ ν˜•(λ§‰λŒ€ν˜•, μ„ ν˜•, λΆ„μ‚°ν˜•, μ›ν˜•, νžˆμŠ€ν† κ·Έλž¨)을 μƒμ„±ν•©λ‹ˆλ‹€.

  • recommend_charts - 데이터 ꡬ쑰에 λ”°λ₯Έ 차트 μΆ”μ²œ λ°›κΈ°

μ—…λ°μ΄νŠΈ μž‘μ—…

  • update_cell - Excel 파일의 νŠΉμ • 셀을 μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.

  • add_row - Excel νŒŒμΌμ— μƒˆ ν–‰ μΆ”κ°€

  • delete_rows - ν•„ν„°λ₯Ό 기반으둜 Excel νŒŒμΌμ—μ„œ ν–‰ μ‚­μ œ

μΆ”κ°€ κΈ°λŠ₯

  • detect_anomalies - Z-점수λ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ«μžν˜• λ°μ΄ν„°μ—μ„œ μ΄μƒμΉ˜ μ°ΎκΈ°

  • export_to_csv - Excel 데이터λ₯Ό CSV ν˜•μ‹μœΌλ‘œ 내보내기

μ‚¬μš© κ°€λŠ₯ν•œ λ¦¬μ†ŒμŠ€

  • excel://{filename}/sheets - Excel 파일의 μ‹œνŠΈ λͺ©λ‘ κ°€μ Έμ˜€κΈ°

  • excel://{filename}/sheet/{sheet_name} - νŠΉμ • μ‹œνŠΈμ—μ„œ 데이터 κ°€μ Έμ˜€κΈ°

  • excel://{filename}/sheet/{sheet_name}/summary - μ‹œνŠΈ 데이터 μš”μ•½ κ°€μ Έμ˜€κΈ°

  • excel://{filename}/sheet/{sheet_name}/filter - μ‹œνŠΈμ˜ 데이터 필터링

예: μ‚¬μš©μž μ •μ˜ ν΄λΌμ΄μ–ΈνŠΈ λ§Œλ“€κΈ°

MCP μ„œλ²„μ™€ μƒν˜Έ μž‘μš©ν•˜κΈ° μœ„ν•΄ κ³ μœ ν•œ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

import requests

def call_tool(tool_name, params):
 """Call an MCP tool"""
 url = f"http://localhost:8000/tools/{tool_name}"
 response = requests.post(url, json=params)
 return response.json()

# Example: Get chart visualization
chart_result = call_tool("visualize_chart", {
 "filename": "sales_data.xlsx",
 "sheet_name": "Sheet1",
 "chart_type": "bar",
 "x_column": "Month",
 "y_columns": ["Revenue"],
 "title": "Monthly Revenue"
})

# Save chart image
if chart_result.get("success", False) and "image" in chart_result:
 import base64
 img_data = base64.b64decode(chart_result["image"])
 with open("revenue_chart.png", "wb") as f:
 f.write(img_data)

AI λͺ¨λΈκ³Όμ˜ 톡합

이 MCP μ„œλ²„λŠ” Claude와 같은 AI λͺ¨λΈκ³Ό μ‰½κ²Œ ν†΅ν•©λ˜μ–΄ Excel 데이터에 μžμ—°μ–΄ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  1. AIλŠ” μ‚¬μš©μžμ˜ μš”μ²­μ— 따라 μ μ ˆν•œ MCP 도ꡬλ₯Ό ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  2. λ„κ΅¬μ—μ„œ λ°˜ν™˜λœ 데이터λ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€.

  3. μ‚¬μš©μžμ—κ²Œ 톡찰λ ₯κ³Ό μ‹œκ°ν™”λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

이λ₯Ό 톡해 μžμ—°μ–΄ μš”μ²­μ„ μ΄ν•΄ν•˜κ³  Excel 데이터λ₯Ό λΆ„μ„ν•˜κ³  μ‘°μž‘ν•  수 μžˆλŠ” λŒ€ν™”ν˜• "Excel λ„μš°λ―Έ"κ°€ μƒμ„±λ©λ‹ˆλ‹€.

-
license - not tested
-
quality - not tested
D
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TapanKumarBarik/PYTHON-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server