Skip to main content
Glama
Kookerella-Ltd

Excel MCP Server (FsOpenXmlDsl)

Official

Server Quality Checklist

83%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Each tool has a distinct role: F#/ C# scripts, XML/ JSON round-trips, simple vs full-featured read/write, and schema retrieval. The only plausible confusion is between read_workbook and generate_json, which both return JSON but at different fidelities.

    Naming Consistency5/5

    All tools follow a consistent snake_case verb_noun pattern: generate_*, create_workbook_from_*, read_workbook, and create_workbook. Format modifiers like json/xml and fsharp/csharp are clear and uniformly applied.

    Tool Count5/5

    Ten tools are well-scoped for a workbook conversion/creation bridge. Each tool covers a meaningful mode of interaction (simple or full, JSON or XML, script or schema) without redundant bulk.

    Completeness4/5

    The set covers round-trip reading/creating in both XML and JSON, simple cell-level creation, full-featured creation through structured inputs, schema retrieval, and script generation for both F# and C#. No update/moidify output is provided, but that appears outside the stated conversion-oriented purpose. Minor gap only.

  • Average 4.4/5 across 10 of 10 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 93 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • This repository includes a glama.json configuration file.

  • This server has been verified by its author.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden and discloses the key behavioral traits: it reads an existing workbook (non-mutating on input), produces a pasteable/runnable artifact, requires .NET 10 file-based apps (no .csproj needed), and scopes generated feature coverage explicitly (styling, tables, charts, pivot tables, conditional formatting, etc.). Does not address edge behavior — overwrite semantics for outputFileName or failure on invalid files — but the agent gets a realistic model of what happens.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The core action is front-loaded in sentence one, with the runtime requirement attached. Sentence two is overloaded — a large parenthetical enumerating every supported feature (styling, tables, charts, pivot tables, sparklines, conditional formatting, data validation, hyperlinks, comments, print settings, defined names, protection) — which is informative but makes the definition read as a run-on. A trimmed version keeping the feature-scope summary would earn a 4.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a 2-parameter tool with no output schema and no annotations, the description covers purpose, output artifact, execution model, and fidelity scope — the agent knows what the call produces and how it behaves. Remaining gaps (error handling, whether an existing output file is overwritten) are edge cases and not blocking for correct invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so both path and outputFileName are already documented; the description does not add format or syntax details. It does supply the causal connection (path feeds the read, outputFileName receives the rebuilt file) that ties the two parameters into the tool's pipeline. Baseline 3 is correct since the schema does the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Opens with a specific verb-resource pair ('Reads an existing Excel workbook and returns a self-contained C# file') and states the generated artifact's runtime behavior. Explicitly contrasts with the sibling generate_fsharp_script ('The C# equivalent of'), so an agent can distinguish them by output language alone. The reverse-engineering intent is unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Names the primary alternative directly — generate_fsharp_script — and gives the selection criterion ('for a caller who wants pasteable/runnable C# rather than F#'). Also positions the tool against create_workbook ('beyond what create_workbook exposes'). Stops short of a formal when-not-to-use statement for the remaining siblings, so 4 rather than 5.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are present, so the description carries the full behavioral burden. It transparently discloses that the tool reads the input rather than mutating it, that the output is a self-contained script, and that the script should be executed via dotnet fsi. It does not mention edge cases like unsupported workbook features, but the core non-mutating and code-generation behavior is clear.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two focused sentences: the first states behavior and output, the second adds use cases. The parenthetical library reference and dotnet fsi command are relevant, and there is no padding or repeated schema information.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a two-parameter read-and-generate tool with no output schema, the description is near-complete: it explains the input, the generated output, the execution mechanism, and why one would prefer this over create_workbook. It could be strengthened by explicitly stating that the tool does not execute the script or write files itself, though 'returns a script' already conveys this reasonably well.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Both parameters are already fully documented in the input schema (100% schema description coverage), and the description does not add new semantics beyond what the schema says. The phrase 'rebuilds an equivalent file' corroborates the outputFileName role but does not provide extra detail, so the baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description is unambiguous: it reads an existing Excel workbook and produces a self-contained F# script that can rebuild an equivalent file. It clearly differs from the sibling JSON/XML/C# generators and from create_workbook, which builds a workbook directly rather than generating source code.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description gives concrete usage contexts: explaining how a file is structured, or starting from a point that exposes library features beyond create_workbook. It explicitly names create_workbook as an alternative, though it does not enumerate exclusions for other siblings like generate_csharp_script or read_workbook.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    There are no annotations, so the description carries the burden. It clearly discloses the side-effect of saving to disk and the inverse relationship to generate_json. However, it does not mention overwrite behavior, failure modes, validation of the JSON, or filesystem permissions, which are relevant for a mutation tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is thorough and front-loaded with the core action, but longer than strictly necessary. Every sentence earns its place by clarifying the inverse relationship, sibling tool, and feature scope, though a more compact phrasing could preserve the same value with less verbosity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite having no output schema and no annotations, the description gives an agent enough context to invoke correctly: it identifies the expected JSON shape, the output destination, and how this tool relates to alternative sibling tools. It is somewhat incomplete on overwrite behavior and errors, but those are minor gaps for a tool with only two well-described parameters.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already covers both parameters fully, so baseline is 3. The description adds value by explaining that json must match the shape generate_json produces, linking to Json.schema.json, and enumerating the feature set expressible in JSON, which clarifies what content the json parameter can hold beyond the schema's generic wording.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    This says it builds a new Excel workbook from JSON and saves it to disk – a specific verb, resource, and output. It also differentiates itself from siblings: inverse of generate_json, JSON-side equivalent of create_workbook_from_xml, and distinct from create_workbook because it supports styling, tables, charts, and every other modeled feature.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It explicitly states when to use it: when a caller already has data as JSON and wants Excel without learning OOXML schema or the library's own F#/ C# API. It also names alternatives and exclusions: use create_workbook when only plain cell values are needed, and notes it covers the same feature set as generate_json.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full behavioral burden. It clearly indicates that this is a read operation returning XML validated against an embedded schema, and it explains the important non-script behavior. It does not explicitly state the input workbook is unmodified, but 'Reads' strongly implies a non-destructive operation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is longer than minimal but every clause contributes: the core behavior, the intended use cases, the contrast with script-generating siblings, and the feature-set scope. It is front-loaded with the primary action, though the sibling-contrast material is slightly dense.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    With only one parameter and no output schema, the description sufficiently clarifies that the tool returns XML data rather than a script and validates against Xml.xsd. It does not detail the exact XML structure, but that is acceptable because the output is validated by an embedded schema and the input surface is minimal.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The single parameter path is already fully documented in the input schema, including the .xlsx/.xlsm nuance. The description adds no additional parameter-level information, so with 100% schema coverage the baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with a specific verb and resource: 'Reads an existing Excel workbook and returns it as XML.' It also distinguishes itself from siblings by explicitly framing itself as a plain-data alternative to generate_fsharp_script/generate_csharp_script, making its role clear relative to other generators.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description gives explicit use cases: inspecting, transforming via XSLT, or archiving a workbook's structure without F#/C# source. It names the alternative tools and explains the deciding difference: generate_xml returns data, not a runnable script, and therefore has no output-filename parameter.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the burden of behavioral disclosure. It does disclose that the tool writes to disk and requires XML matching the embedded Xml.xsd schema, and it conveys feature parity with generate_xml. However, it does not mention overwrite behavior, failure modes for invalid XML, or whether any status/return is produced, so coverage is adequate but incomplete.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Three sentences each serve a distinct purpose: core action, intended usage context, and differentiation from sibling tools. There is no filler or repetition of schema content, and the most important information is front-loaded.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a 2-parameter tool with full schema coverage, the description provides the key contextual pieces: schema identity, disk-writing behavior, use-case, and relationships to generate_xml and create_workbook. Minor gaps remain around overwrite and error behavior, but the description is sufficient for correct invocation in most cases.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the baseline is 3. The description adds useful parameter-level meaning by elaborating that the XML can express styling, tables, charts, and every modeled feature, going beyond the schema's terse 'matches Xml.xsd' note. The path parameter is fully covered by its schema description.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states a specific action: builds a new Excel workbook from XML and saves it to disk, and explicitly frames itself as the inverse of generate_xml. It also distinguishes itself from create_workbook by noting it supports styling, tables, charts, and other modeled features beyond plain cell values.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It explicitly describes the natural caller profile: someone who already has data as XML (e.g., from an XSLT pipeline) and wants to reach Excel without learning OOXML or the library API. It also states when create_workbook is insufficient and names generate_xml as the inverse, giving clear routing guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must carry the behavioral disclosure burden. It does so by making clear this is a read operation with no source code involved, and by disclosing that no runtime JSON Schema validation occurs, which is a meaningful caveat for callers expecting validation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The core action is front-loaded in the first sentence, and the remaining sentences earn their place by providing tool selection guidance, a caveat about validation, and a pointer to the schema companion. There is no filler or redundant restatement of the tool name.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a single-parameter read tool with no output schema, the description covers purpose, alternatives, use cases, and a known behavioral limitation. It also points to generate_json_schema for the return shape. A fully complete definition would still give a bit more direct detail about the returned JSON structure, hence not a 5.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100% for the single 'path' parameter, with the schema already defining it as a path to an existing .xlsx/.xlsm file. The description adds no new parameter-level meaning beyond what the schema provides, so the baseline score of 3 applies.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with a clear verb and resource: 'Reads an existing Excel workbook and returns it as JSON.' It also distinguishes itself from generate_xml by framing itself as the JSON-side equivalent, so an agent can tell immediately what this tool does and how it differs from siblings.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explicitly states the intended use case: callers whose tooling speaks JSON rather than XML, for inspecting, transforming, or archiving a workbook. It names generate_xml as the direct alternative and notes the lack of runtime JSON Schema validation, routing the agent to generate_json_schema for that purpose.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the burden of behavioral disclosure. It adequately does so by describing a pure retrieval operation that returns a static XSD with a stated conformance relationship. The zero-parameter signature further implies no side effects, though the description does not explicitly say the operation is read-only.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single front-loaded sentence that begins with the action and resource, then adds focused context about target users. Every clause earns its place, with no redundant wording or repetition of the tool name.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple, parameterless retrieval tool with no output schema, the description explains what is returned and why an agent might call it. The only minor gap is the lack of an explicit comparison to generate_json_schema, but the XML-specific wording and sibling context make the distinction clear enough.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, so the baseline is 4. The schema already documents an empty object, and the description adds all necessary context about what the returned value represents. No parameter documentation is needed.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description identifies a specific verb ('Returns'), a specific resource ('raw XSD (Xml.xsd)'), and the exact role the XSD plays between generate_xml's output and create_workbook_from_xml's input. This makes it clearly distinguishable from sibling schema tool generate_json_schema by grounding it in the XML workflow.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description states the intended caller ('a caller authoring XML by hand or by transform') and the concrete condition under which the tool is valuable ('wants real schema validation/autocomplete... rather than reverse-engineering'). It does not explicitly name alternatives to avoid, but the context makes the intended usage unambiguous.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full disclosure burden and does so well. It states how formula cells are represented, that cached values are included separately, and explicitly lists major omitted features such as charts, tables, and styling, pointing to MAPPING.md for full round-trip details.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is compact and front-loaded: the core behavior appears first, then the important formula edge case, then the limitation note. Each sentence contributes distinct, useful information with no redundancy or filler.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite having no output schema, the description explains what is returned, how formulas appear, and what is intentionally excluded, and it references MAPPING.md for a full compatibility list. It could be slightly more explicit about the exact JSON layout of sheets and cell references, but it is complete enough for correct invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The single path parameter is already thoroughly documented in the schema at 100% coverage, including the required .xlsx/.xlsm format and existence requirement. The tool description's file-format mention adds no additional semantic meaning beyond the schema, so a baseline score is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states a specific verb and resource: it reads an existing .xlsx/.xlsm workbook and returns sheets/cell contents as JSON. It also names the formula rendering convention, which further distinguishes this reader from the sibling creation/generation tools.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description clearly implies the use case: read an existing workbook when you need its cell data as JSON. It does not explicitly name alternatives such as create_workbook for writing or generation tools for other outputs, so it lacks explicit exclusion routing but provides clear context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full transparency burden and succeeds. It explains cell type inference (formula, boolean, numeric, text), allows variable-length rows, discloses unsupported features, and states the side effect of saving to disk. This gives an agent a clear model of what will happen when the tool is invoked.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, well-structured paragraph with no filler. The main purpose is front-loaded, followed by essential cell-format rules and a clear list of limitations. Every sentence contributes to correct invocation or expectation-setting.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a two-parameter tool with no output schema and no annotations, this description is complete for invocation purposes. It explains what the sheets parameter should contain, how cells are interpreted, the file path expectation, and what is not supported. No critical information for calling the tool correctly is missing.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already documents both parameters at 100% coverage, which sets a baseline of 3. The description adds meaningful semantics beyond the schema by explaining how cell strings are interpreted (leading '=' for formulas, 'true'/'false' for booleans, bare numbers as numeric) and that rows need not be uniform in length. This helps the agent construct correct parameter values.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with a specific verb and resource: creating a new Excel workbook (.xlsx) and saving it to disk. It also clearly scopes the creation mode to 'a simple grid of sheets/rows/cells', which distinguishes it from sibling tools like create_workbook_from_json and create_workbook_from_xml.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description clearly communicates when to use the tool: when you have a simple grid of sheet/row/cell data. It also explicitly lists unsupported features and directs users to the underlying library for those needs. However, it does not name the sibling JSON/XML-based workbook tools as alternatives, so the routing is not fully explicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden and succeeds admirably. It discloses that the schema is not runtime-validated by the core library (unlike Xml.xsd), explains the technical reason (.NET has no built-in JSON Schema equivalent), and clarifies that it is bundled in the MCP tool purely to hand back on request. This gives the agent an accurate mental model of the tool's limitations without opening any code.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Front-loaded with the core purpose in the first sentence, followed by valuable context about the intended audience and a technical caveat. It's somewhat long, but every sentence earns its place; there is no filler or repetition.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a 0-parameter tool with no annotations and no output schema, the description is fully complete. It covers what the tool returns, who it is for, why the schema is bundled in the MCP tool rather than the core library, and hints at the alternative (using generate_json examples). An agent has everything it needs to decide when and why to call this.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has 0 parameters, so the schema itself is trivial (empty properties object). The baseline for 0 params is 4, and the description adds relevant context about what is returned, though it doesn't need to explain any parameter behavior since there are none.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description names a specific verb ('Returns'), a precise resource ('raw JSON Schema (Json.schema.json)'), and explicitly identifies what it conforms to (generate_json's output and create_workbook_from_json's input). It also differentiates from siblings by referencing the alternative (generate_json example) and the Xml.xsd contrast.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    States exactly when to use this tool: for a caller authoring JSON by hand or via a generation script who wants schema validation/autocomplete, rather than reverse-engineering from a generate_json example. This effectively routes the agent to the right tool for the right context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

Kookerella.FsOpenXmlDsl MCP server

Copy to your README.md:

Score Badge

Kookerella.FsOpenXmlDsl MCP server

Copy to your README.md:

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/Kookerella-Ltd/Kookerella.FsOpenXmlDsl'

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