Skip to main content
Glama
TapanKumarBarik

Excel MCP Server

代替テキスト

uv init mcp-server-demo

cd mcp-server-demo

uv に "mcp[cli]" を追加 uv pip install mcp-python pandas matplotlib openpyxl fastapi uvicorn pillo uv run mcp dev server.py

uv 実行 mcp インストール server.py

Excel MCP サーバー

このプロジェクトは、Excelデータを操作するためのツールとリソースを提供するModel Context Protocol(MCP)サーバーを実装します。このサーバーは、シンプルなAPIを通じてExcelデータの読み取り、更新、フィルタリング、視覚化の機能を提供します。

特徴

  • Excel 操作: Excel ファイルの読み取りと書き込み

  • データフィルタリング: さまざまな基準に基づいてデータをフィルタリングおよび検索します

  • データ分析: 統計サマリーとピボットテーブルを生成する

  • データの視覚化: さまざまなチャートと視覚化を作成する

  • 更新操作: セルの更新、行の追加、行の削除

  • 異常検出:数値データ内の外れ値を見つける

  • チャートの推奨事項: 適切な視覚化を自動的に提案します

Related MCP server: Excel MCP Server

インストール

  1. 必要な依存関係をインストールします。

pip install mcp-python pandas matplotlib openpyxl fastapi uvicorn pillow
  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()

利用可能なツール

Excel操作

  • 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
C
maintenance

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