Skip to main content
Glama
Corvalon
by Corvalon

mcp-excel

License: MIT Model Context Protocol

Ein Model Context Protocol-Server, der Claude Code (oder einem beliebigen MCP-Client) vollen Lese- und Schreibzugriff auf Excel-Arbeitsmappen bietet: Blätter, Zellbereiche, strukturierte Tabellen, Formeln, Formatierungen und arbeitsmappenübergreifende Verweise. Er liest und schreibt echte .xlsx-Dateien auf der Festplatte mit ExcelJS; keine Kopie von Excel, kein Microsoft-Konto und kein Cloud-Dienst erforderlich.

Er läuft lokal als stdio-Subprozess oder als HTTP/SSE-Dienst (praktisch, um eine Instanz mit einem Desktop-Client über Ihr LAN per Docker zu teilen).

Status: 11 Tools, stdio- und SSE-Transports, keine externen Abhängigkeiten außer npm. Lizenz: MIT.

Tools

Tool

Was es tut

list_sheets

Alle Blätter einer Arbeitsmappe mit Zeilen-/Spaltenanzahl auflisten

read_range

Einen Zellbereich lesen; liefert Werte, Formeln und Typen

write_cells

Werte oder Formeln in bestimmte Zellen schreiben (erstellt Datei/Blatt, falls fehlend)

write_rows

Mehrere Datenzeilen ab einer Startzelle schreiben (Bulk-Datensatzaufbau)

create_table

Eine strukturierte Excel-Tabelle (ListObject) mit Kopfzeilen, Daten und optionalen Spaltenformeln erstellen

create_workbook

Eine neue leere Arbeitsmappe mit einem oder mehreren benannten Blättern erstellen

add_sheet

Ein neues Blatt zu einer vorhandenen Arbeitsmappe hinzufügen

delete_sheet

Ein Blatt aus einer Arbeitsmappe löschen

format_cells

Schriftart, Füllung, Zahlenformat, Ausrichtung und Rahmen auf einen Bereich anwenden

cross_workbook_reference

Aus einer Arbeitsmappe lesen und Werte (oder Verknüpfungsformeln) in eine andere schreiben

get_defined_names

Benannte Bereiche und Tabellennamen in einer Arbeitsmappe auflisten

Alle Dateipfad-Argumente werden mit path.resolve() relativ zum Arbeitsverzeichnis des Servers aufgelöst, daher sind absolute Pfade am sichersten. Im Docker-Modus (SSE) werden Pfade innerhalb des Containers gegen das gemountete /data-Volume aufgelöst (siehe unten).

Related MCP server: mcp-xlsx-server

Voraussetzungen

  • Node.js 18 oder neuer (stdio-Modus), oder

  • Docker (SSE-/gemeinsamer-Instanz-Modus)

Einrichtung: Claude Code (stdio, lokal)

Klonen und installieren:

git clone https://bitbucket.org/corvalon/mcp-excel.git
cd mcp-excel
npm ci

Server registrieren. Entweder über die CLI hinzufügen:

claude mcp add excel -- node /absolute/path/to/mcp-excel/index.js

oder manuell zur Claude-Code-Konfiguration (~/.claude.json) hinzufügen:

{
  "mcpServers": {
    "excel": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-excel/index.js"]
    }
  }
}

Claude Code neu starten. Die Tools erscheinen unter dem Präfix mcp__excel__*.

Einrichtung: Claude Desktop (stdio, lokal)

Fügen Sie denselben Block zur Konfiguration von Claude Desktop hinzu (Einstellungen > Entwickler > Konfiguration bearbeiten, öffnet claude_desktop_config.json):

{
  "mcpServers": {
    "excel": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-excel/index.js"]
    }
  }
}

Speichern und neu starten. Wenn das Hammer-/Werkzeug-Symbol erscheint, ist der Server verbunden.

Einrichtung: Docker (SSE, gemeinsame Instanz)

Einen Container ausführen, den jeder MCP-Client in Ihrem Netzwerk über SSE erreichen kann. Dies ist nützlich, um Excel-Dateien von einem Rechner ohne Node.js zu steuern.

  1. Den Container auf den Ordner mit Ihren Arbeitsmappen zeigen lassen und starten:

    MCP_EXCEL_DATA_DIR=/path/to/your/spreadsheets docker compose up -d --build

    Die Compose-Datei mountet diesen Ordner als /data im Container und lauscht auf Port 3001.

  2. Den SSE-Endpunkt zur Client-Konfiguration hinzufügen (Host durch die LAN-IP des Container-Hosts ersetzen, wenn der Client auf einem anderen Rechner läuft):

    {
      "mcpServers": {
        "excel": {
          "url": "http://localhost:3001/sse"
        }
      }
    }
  3. Da Pfade innerhalb des Containers aufgelöst werden, Dateien relativ zum /data-Mount ansprechen. Wenn MCP_EXCEL_DATA_DIR ~/spreadsheets ist, dann ist ~/spreadsheets/2025/Budget.xlsx in Tool-Aufrufen /data/2025/Budget.xlsx.

Wenn ein Client auf einem anderen Host über SSE verbindet, setzen Sie MCP_ALLOWED_HOSTS, damit der Server die Anfrage akzeptiert. Erstellen Sie eine .env-Datei neben docker-compose.yml:

MCP_ALLOWED_HOSTS='localhost,127.0.0.1,::1,192.168.1.50,my-host.local'

Container-Verwaltung:

docker compose up -d --build   # start / rebuild after code changes
docker compose down            # stop
docker compose logs -f         # tail logs

Ein Health-Check ist unter http://<host>:3001/health verfügbar.

Konfiguration

Variable

Standard

Zweck

MCP_TRANSPORT

stdio

stdio für einen lokalen Subprozess, sse für den HTTP/SSE-Dienst

MCP_PORT

3000

Port für den SSE-Modus (die Docker-Compose-Datei verwendet 3001)

MCP_ALLOWED_HOSTS

localhost,127.0.0.1,::1

Kommagetrennte Host-Header-Allowlist für den SSE-Modus

MCP_EXCEL_DATA_DIR

./data

Host-Ordner, der im Docker-Container als /data gemountet wird

Sicherheit

Dieser Server liest und schreibt echte Dateien und öffnet im SSE-Modus einen Netzwerkport. Behandeln Sie ihn als vertrauenswürdiges lokales Werkzeug, nicht als internetfähigen Dienst.

  • Dateizugriff. Tool-Aufrufe können jeden .xlsx-Pfad lesen oder schreiben, den der Serverprozess erreichen kann. Im stdio-Modus ist das Ihr gesamtes Dateisystem; im Docker-Modus (SSE) ist es auf das gemountete /data-Volume beschränkt, daher ist Docker der sicherere Weg, den Zugriff einzugrenzen.

  • SSE hat keine Authentifizierung. Der HTTP/SSE-Endpunkt lauscht auf 0.0.0.0 und authentifiziert Anrufer nicht. Nur in einem vertrauenswürdigen LAN ausführen und den Zugriff mit MCP_ALLOWED_HOSTS (einer Host-Header-Allowlist) sowie Ihrer eigenen Firewall einschränken. Port 3001 nicht für das öffentliche Internet freigeben.

  • Formeln sind Daten, kein Code. ExcelJS schreibt Formelstrings; es führt keine Makros oder VBA aus, sodass das Öffnen einer erstellten Arbeitsmappe keinen Code von diesem Server ausführt.

Beispielaufforderungen

  • "Erstelle eine neue Budget-Arbeitsmappe mit den Spalten Kategorie, Budget, Ist und Differenz."

  • "Lies die Daten in Sales.xlsx und fasse die Summen nach Region zusammen."

  • "Füge eine SUM-Formel am Ende von Spalte B im Blatt Q1 hinzu."

  • "Baue eine formatierte Tabelle aus diesen Daten mit einer Summenzeile."

  • "Ziehe die Monatssummen aus Budget.xlsx in ein Summary-Blatt in Report.xlsx."

Hinweise und Stolperfallen

Berechtigungen. Ein Wildcard deckt alle 11 Tools ab: mcp__<key>__* erlauben, wobei <key> der Name ist, unter dem Sie den Server registriert haben. Als excel registriert, ist das mcp__excel__*. Sie müssen Tools nie einzeln aufzählen.

Unbekannte Parameter werden abgelehnt (seit 1.1.0). Ein falsch geschriebener Argumentname schlägt mit -32602 unrecognized_keys fehl und benennt den Schlüssel; jedes Tool veröffentlicht additionalProperties: false. Frühere Versionen verwarfen den Tippfehler stillschweigend und liefen mit Standardwerten, was fälschlich sichere Daten lieferte.

Formeln werden gespeichert, nicht ausgewertet. Dieser Server schreibt Formeltext; er berechnet keine Ergebnisse. Das Lesen einer Formelzelle liefert =SUM(A1:A2) (result: not calculated), bis die Datei in Excel oder LibreOffice geöffnet und gespeichert wird, was das zwischengespeicherte Ergebnis füllt. Wenn Sie berechnete Summen benötigen, lesen Sie entweder die Quellzellen und summieren Sie selbst, oder führen Sie die Datei zuerst durch eine Tabellenkalkulationsanwendung.

Einschränkungen

Derzeit von keinem Tool abgedeckt:

  • Einfügen oder Löschen von Zeilen/Spalten in der Mitte eines Blatts

  • Erstellen oder Bearbeiten definierter Namen

  • Unterscheidung von Tabellen und definierten Namen

Für diese Fälle treiben Sie die Datei direkt mit einer Tabellenkalkulations- Bibliothek an. In Python deckt openpyxl alle drei ab; laden Sie mit load_workbook(path, data_only=False), um Formeln zu erhalten, da data_only=True zwischengespeicherte Werte liefert, die aus dem oben genannten Grund None sein können.

Lizenz

MIT (c) 2026 Corvalon.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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/Corvalon/mcp-excel'

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