Excel MCP Server (FsOpenXmlDsl)
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_fsharp_scriptA | Reads an existing Excel workbook and returns a self-contained F# script (using Kookerella.FsOpenXmlDsl) that rebuilds an equivalent file when run via |
| generate_json_schemaA | Returns the raw JSON Schema (Json.schema.json) that generate_json's output and create_workbook_from_json's input both conform to. Meant for a caller authoring JSON by hand or by a generation script who wants real schema validation/autocomplete in their own editor or pipeline, rather than reverse-engineering the shape from a generate_json example. This schema isn't validated against at runtime by the core library itself the way Xml.xsd is (JSON Schema has no .NET-built-in equivalent to System.Xml.Schema, so wiring that up would mean adding a runtime dependency - JsonSchema.Net - to every consumer of the core library just for this) - it's bundled here, in the Mcp tool specifically, purely to hand back on request. |
| generate_csharp_scriptA | Reads an existing Excel workbook and returns a self-contained C# file (using Kookerella.CsOpenXmlDsl) that rebuilds an equivalent file when run via |
| create_workbook_from_jsonA | Builds a new Excel workbook from JSON matching the shape generate_json produces (see the main library repo's Json.schema.json) and saves it to disk - the inverse of generate_json. The JSON-side equivalent of create_workbook_from_xml, for a caller that already produces data as JSON and wants to reach Excel without learning the OOXML schema, this library's own F#/C# API, or needing .NET installed at all - the .NET work happens inside this server, so any language can call it directly, and a human with no MCP client at all can get the same result via |
| generate_jsonA | Reads an existing Excel workbook and returns it as JSON. The JSON-side equivalent of generate_xml, for a caller whose tooling speaks JSON rather than XML - same use cases (inspect, transform, or archive a workbook's structure without any F#/C# source, or any .NET runtime at all, on the caller's side) and the same worksheet/workbook-level feature set. Usable directly from Python, JavaScript, or any other language, and a human with no MCP client at all can get the same result via |
| create_workbook_from_xmlA | Builds a new Excel workbook from XML matching Kookerella.FsOpenXmlDsl's own embedded schema (Xml.xsd) and saves it to disk - the inverse of generate_xml. The natural target for a caller that already produces data as XML (e.g. an XSLT pipeline generating a report) and wants to reach Excel without learning the OOXML schema, this library's own F#/C# API, or needing .NET installed at all - like generate_xml, the .NET work happens inside this server, so any language can call it directly, and a human with no MCP client at all can get the same result via |
| generate_xmlA | Reads an existing Excel workbook and returns it as XML, validated against Kookerella.FsOpenXmlDsl's own embedded schema (Xml.xsd). A plain-data alternative to generate_fsharp_script/generate_csharp_script for a caller who wants to inspect, transform (e.g. via XSLT), or archive a workbook's structure without any F#/C# source involved - and without any .NET runtime on the caller's side either: the .NET work happens inside this server, so Python, JavaScript, or any other language can call this tool directly, and a human with no MCP client at all can get the same result via |
| generate_xml_schemaA | Returns the raw XSD (Xml.xsd) that generate_xml's output and create_workbook_from_xml's input both conform to. Meant for a caller authoring XML by hand or by transform (e.g. an XSLT stylesheet) who wants real schema validation/autocomplete in their own editor or pipeline, rather than reverse- engineering the shape from a generate_xml example. |
| read_workbookA | Reads an existing Excel workbook (.xlsx/.xlsm) and returns its sheets and cell contents as JSON. Formula cells are rendered as "=expression" (matching create_workbook's input convention), with any cached value included separately under CachedValue. Features outside the core cell model (charts, tables, pivot tables, styling, etc.) are not included in this output - see MAPPING.md in the main library repo for the full list of what round-trips. |
| create_workbookA | Creates a new Excel workbook (.xlsx) from a simple grid of sheets/rows/cells and saves it to disk. Each cell is given as plain text, the same way you'd type it into Excel: a leading '=' makes it a formula (e.g. "=SUM(A1:A2)"), 'true'/'false' makes a boolean, a bare number is numeric, and anything else is text. Rows don't need to be the same length. Does not support cell styling, tables, charts, or pivot tables in this version - reference the Kookerella.FsOpenXmlDsl library directly for those. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
The set has clear separation between JSON/XML representations)Skip, but read_workbook and generate_json both read a workbook into JSON, and create_workbook and create_workbook_from_json both create workbooks, which can cause misselection. The descriptions help by highlighting feature coverage differences, but the boundaries require careful reading.
Tool names consistently use snake_case with a verb prefix (create_, generate_, read_), and the pattern is generally predictable. Minor deviations exist: create_workbook lacks a from_* suffix unlike its counterparts, and read_workbook doesn't follow the generate_* naming used by the other extraction tools.
Ten tools is a well-scoped size for an Excel conversion server, with each representation (simple JSON, full JSON, XML, F#, C#) getting appropriate creation, generation, and schema support. No tool feels redundant to the point of bloat, and the count supports the multi-format purpose.
The server covers creation and reading well across multiple representations, including schemas and code script generation. However, there is no update or delete tool for existing workbooks, and read_workbook omits styling/tables/charts while generate_json includes them, leaving an inconsistent high-level read surface.