Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

KitchenSink4XL

PYPI · KITCHENSINK4XL

Excel (.xlsx) MCP server: calculated/cached/missing labels on every value, formulas, verified writes

Available components

−15 this week 62 Trust /100

Last scanned (2 hours ago)

Scores higher than 59% of PyPI servers

Category Data and Analytics

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security49
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 3 of 20 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to KitchenSink4AI/KitchenSink4XL). View diagnostics → Pass
  • Clear OSI-approved license (AGPL-3.0-only).Pass
  • Actively maintained (last published 12 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability51
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4341 tokens (~620/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability check failed: the tool surface changed between 1.2.5 and 2.0.0: 40 tool removals, 0 breaking changes, 7 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
  • 31 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 30 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 28 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 27 Oct 26 +1
    • Security disclosure: unverified → pass ▲ functional
  • 26 Oct 26 −1
    • Security disclosure: pass → unverified ▼ functional
  • 24 Oct 26 −13
    • Stability: pass → fail ▼ security
    • Install scripts: No install/post-install scripts declared. security
    • The code this package runs automatically changed: its declared build backend security
    • Schema quality: 225 → 620 ▼ functional
    • Tool coverage: 9% → 100% ▲ functional
    • Schema quality: excellent → good functional
    • Destructive annotations: 100 → pass functional
    • Package version: 1.2.6 → 2.0.0 functional
  • 20 Oct 26 0
    • Stability: 0.97 → pass security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/kitchensink4xl@2.0.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo KitchenSink4AI/KitchenSink4XL
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/KitchenSink4AI/KitchenSink4XL/.github/workflows/publish.yml@refs/tags/v2.0.0
Rekor log index 3435717983
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:9e8278503cad9443d6024967a9e480be24a6045c232db9aededb669d914d0867

Background: How many MCP packages publish verified provenance →

Dependencies 20 packages
Packages resolved 20
Stale 3
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 7 exposed · ~3,885 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
xl_app ~642

Needs Microsoft Excel on Windows: full recalculation, real pivot tables, PDF export, sheet render to PNG, format conversion, password encryption, exact autofit, goal seek, sparklines and the opens-clean check. Reads go through xl_read, and cell, format and structure edits through xl_edit, xl_format and xl_structure. Ops that change the workbook back it up first. These ops run in a private hidden Excel that this server starts and closes. They never attach to or change the user's own Excel, and a workbook the user has open in Excel is refused, not edited. Ops, one per line, as name(required; opt optional): what it does. path, backup and verify_com are not repeated; xl_help shows them: - recalculate(opt engine timeout_seconds allow_network): Recalculate every formula in a hidden Excel and save the results; a circular reference is named. - com_manage_pivot(action; opt name source_sheet source_range dest_sheet dest_cell rows columns filters values timeout_seconds allow_network): Create, refresh, delete or list real pivot tables through Excel. - com_export_pdf(output; opt scope sheet range_a1 overwrite timeout_seconds allow_network): Export to PDF via Excel's real renderer. - com_render_sheet(output; opt sheet range_a1 overwrite timeout_seconds allow_network): Render a sheet or range to a PNG exactly as Excel shows it; the workbook is not changed. - com_convert_format(output; opt format overwrite timeout_seconds allow_network): Convert the workbook to xlsx, xlsm, xlsb, xls, csv or ods with Excel's own Save As; the source is never overwritten. - com_save_with_password(password; opt current_password timeout_seconds allow_network): Encrypt the workbook with Excel's real password encryption; the password cannot be recovered, so keep the backup. - com_autofit(opt sheet columns rows timeout_seconds allow_network): True column and row autofit using Excel's real text metrics (the file tier can only estimate widths). More ops follow, in the same format, in the op parameter's desc…

NameTypeReqDescription
argsobject–The op's arguments as an object. Include path (the workbook file) unless the op's line names other paths or the op reads no workbook; unknown keys are refused. xl_help lists every argument.
opstringyesThe operation to run: an op listed in this tool's description, or one of these, in the same format: - com_goal_seek(target_cell, target_value, changing_cell; opt sheet save timeout_seconds allow_netw…

No output schema declared.

No examples provided.

xl_edit ~602

Values and formulas: set one or many cells, write, clear, copy or move ranges, the batch editor (apply_edits), find and replace, and CSV, TSV or JSON import. A string starting with '=' is always stored as a formula. Formatting is xl_format; sheets, rows and tables are xl_structure. Every change backs the file up first, saves atomically and verifies after writing. Refuses a workbook open in Excel, and a workbook whose fragile parts a save would drop unless allow_loss is true. Ops, one per line, as name(required; opt optional): what it does. path, backup and verify_com are not repeated; xl_help shows them: - set_cell(location, value; opt sheet allow_loss): Write one cell by location; a string starting with '=' is always stored as a formula. - set_cells(cells; opt sheet echo_cells allow_loss): Write many individually addressed cells as ONE atomic batch, the scatter complement to write_range. - write_range(location, data; opt sheet parse_dates echo_cells allow_loss): Write a rectangular 2D block of values and formulas from the location's top-left cell; ragged rows are refused. - clear_range(location; opt what sheet allow_loss): Clear a cell or range: what='contents' removes values and formulas, 'formats' resets styles to default, 'all' does both. - copy_range(source, dest; opt what adjust_formulas sheet allow_loss): Copy a source rectangle to a destination anchor (location objects, may name different sheets). - move_range(source, dest; opt sheet allow_loss): Move a rectangle on the same sheet, rewriting every reference into it so references follow the cells. - apply_edits(edits; opt echo_cells allow_loss): Apply many addressed edits as ONE atomic batch. - replace_cells(find, replace; opt look_in match match_case sheet location dry_run formulas allow_loss): Find and replace across a workbook, sheet or range (exact, contains or regex); dry_run=true changes nothing. More ops follow, in the same format, in the op parameter's description.

NameTypeReqDescription
argsobject–The op's arguments as an object. Include path (the workbook file) unless the op's line names other paths or the op reads no workbook; unknown keys are refused. xl_help lists every argument.
opstringyesThe operation to run: an op listed in this tool's description, or one of these, in the same format: - set_formula(location, formula; opt sheet echo_cells allow_loss): Write a formula to a cell, or fi…

No output schema declared.

No examples provided.

xl_format ~648

How cells look and what sits on the sheet: number formats, fonts, fills, borders, named styles, the format painter, column widths and row heights, merges, conditional formats, comments, hyperlinks, images, charts and sheet view. Values are xl_edit. Every change backs the file up first; refuses a workbook open in Excel. Ops, one per line, as name(required; opt optional): what it does. path, backup and verify_com are not repeated; xl_help shows them: - format_cells(location; opt number_format font fill border alignment sheet allow_loss): Apply formatting to a range, merging onto the existing style so unspecified attributes are preserved. - apply_style(style; opt location define sheet allow_loss): Apply a NAMED cell style to a range, optionally defining it first. - copy_format(source, dest; opt sheet allow_loss): Copy one cell's complete format onto every cell of a destination range, leaving values untouched. - set_dimensions(opt sheet column_widths row_heights autofit_columns hide_columns hide_rows group_rows group_columns ungroup_rows ungroup_columns outline_summary allow_loss): Set column widths and row heights, hide or group rows and columns; autofit here is an estimate (xl_app com_autofit is exact). - set_merge(action; opt location sheet confirm_data_loss allow_loss): Merge or unmerge cell ranges, or list every merge. - manage_conditional_format(action; opt location cf_type params sheet index allow_loss): Add, list or delete conditional-formatting rules (cell_is, formula, color scales, data bars, icon sets and more). - manage_comment(action; opt location text author sheet allow_loss): Add, edit, delete or list cell notes; list also reads threaded comments. Leave author out to sign with the user's own name, or pass author="assistant" to sign as "AI Assistant via KS4XL". More ops follow, in the same format, in the op parameter's description.

NameTypeReqDescription
argsobject–The op's arguments as an object. Include path (the workbook file) unless the op's line names other paths or the op reads no workbook; unknown keys are refused. xl_help lists every argument.
opstringyesThe operation to run: an op listed in this tool's description, or one of these, in the same format: - manage_hyperlink(action; opt location target display tooltip sheet allow_loss): Add, remove or li…

No output schema declared.

No examples provided.

xl_help ~119

Read-only help. Call it when an op's arguments are unclear or after a BAD_PARAMS refusal. With no arguments it lists every tool and its ops; with op it returns that op's full arguments, an example call and the tool that runs it; topic='location' explains the location object. Reads no file.

NameTypeReqDescription
opstring–An op name, for that op's arguments and an example; leave it out to list every tool and op.
topicstring–'location' explains the location object that positional ops take.

No output schema declared.

No examples provided.

xl_read ~750

Read-only: look at a workbook before changing it (grid view, cells, queries, find, tables, audits, checks). Never changes a file, and works while it is open in Excel. To change anything use xl_edit, xl_format, xl_structure, xl_workbook or xl_app. Ops, one per line, as name(required; opt optional): what it does. path, backup and verify_com are not repeated; xl_help shows them: - get_workbook_metadata(): Read sheets, true used ranges, names, tables and a hazard summary; the call to orient before editing. - get_grid_view(opt location sheet max_rows max_cols values): Show a sheet or range as a compact A1 table with formula and merge markers, plus an anchor token for later edits. - read_range(location; opt values sheet): Read a cell or range by location; values='displayed' gives the text Excel shows, 'both' labels each value. - get_cells(cells; opt values sheet): Read many individually addressed cells in one call, the scatter complement to the rectangular read_range. - query_range(opt location sheet header columns where match order_by aggregate group_by limit offset distinct records values): Filter, sort, page and aggregate a range on the server, so only the rows and columns needed come back. - find_cells(query; opt look_in match match_case sheet location limit offset): Find every cell whose value or formula matches (exact, contains or regex), with its address; pages with limit and offset. - get_table(name; opt columns values records): Read a table's data by its name (case-insensitive). - diagnose_workbook(): Scan for fragile parts (pivots, slicers, shapes, macros, queries) a file save would drop, and recommend the route. - validate(opt checks): Run read-only checks (default structure, references, calc_staleness) and return one report. - audit_formulas(opt location sheet): Audit formulas in a range, sheet or workbook: external references, volatile functions, missing cached values, errors. More ops follow, in the same format, in the op parameter's description.

NameTypeReqDescription
argsobject–The op's arguments as an object. Include path (the workbook file) unless the op's line names other paths or the op reads no workbook; unknown keys are refused. xl_help lists every argument.
opstringyesThe operation to run: an op listed in this tool's description, or one of these, in the same format: - audit_styles(opt top): Count the workbook's cell formats against Excel's 64,000 limit and rate th…

No output schema declared.

No examples provided.

xl_structure ~552

Workbook structure: add, rename, delete or hide sheets, insert or delete rows and columns (references are rewritten), tables, named ranges, sort, filters and data validation. Values are xl_edit. Every change backs the file up first; refuses a workbook open in Excel. Ops, one per line, as name(required; opt optional): what it does. path, backup and verify_com are not repeated; xl_help shows them: - manage_worksheet(action; opt sheet new_name index state allow_loss): Add, delete, rename, copy, reorder, hide or unhide a sheet; rename rewrites references to it and delete turns them into #REF!, as Excel does. - modify_grid_structure(action, at; opt count sheet allow_loss): Insert or delete rows or columns and rewrite every reference on every sheet; references inside a deleted band become #REF!. - create_table(location, name; opt header style row_stripes col_stripes totals_row totals sheet allow_loss): Turn a range into an Excel table (ListObject) named name. - manage_table(name, action; opt values index column new_name new_ref style on totals row_stripes col_stripes sheet allow_loss): Add or delete rows and columns, rename, resize, toggle totals, restyle or unlist the table named name (action). - manage_name(action; opt name refers_to scope new_name allow_loss): Add, delete, rename, update or list defined names; an ambiguous name refuses until scope is given. - sort_range(location, keys; opt has_header sheet allow_loss): Sort a range or table body by one or more keys, writing the rows back reordered. - set_filter(location; opt criteria sheet allow_loss): Apply an autofilter and hide the rows that do not meet all criteria; rows with uncalculated formulas stay visible. - clear_filter(opt location sheet allow_loss): Remove the autofilter from a sheet and unhide the rows it hid, the reverse of set_filter. More ops follow, in the same format, in the op parameter's description.

NameTypeReqDescription
argsobject–The op's arguments as an object. Include path (the workbook file) unless the op's line names other paths or the op reads no workbook; unknown keys are refused. xl_help lists every argument.
opstringyesThe operation to run: an op listed in this tool's description, or one of these, in the same format: - manage_data_validation(action; opt location dv_type values operator formula1 formula2 allow_blank…

No output schema declared.

No examples provided.

xl_workbook ~572

Whole files: create, copy, backups, document properties, protection, page layout, headers and footers, and export of a range or sheets to CSV, TSV or JSON. Exports never overwrite the workbook or its backups. Edits inside a sheet belong to the other tools; manage_backups lists, restores and snapshots the automatic backups. Ops, one per line, as name(required; opt optional): what it does. path, backup and verify_com are not repeated; xl_help shows them: - create_workbook(opt sheets overwrite): Create a new .xlsx workbook at path with the given sheet names (default a single 'Sheet1'). - copy_workbook(src, dst; opt overwrite): Copy a workbook byte for byte from src to dst; an existing dst is replaced only with overwrite=true, after a backup. - manage_backups(action; opt path directory source scope dry_run label dest_dir): List, restore, purge or snapshot the automatic backups (prev and anchor slots, and the copies deletes and clears keep); purge is a dry run unless dry_run=false. - set_workbook_properties(opt title author subject keywords category comments calc_mode full_calc_on_load iterative_calc max_iterations max_change allow_loss): Set document properties and calculation settings (mode, full calc on load, iteration); with none it reports them. - set_protection(action; opt sheet password options unlock_ranges locked structure windows scope allow_loss): Protect or unprotect sheets and workbook structure; advisory only, not encryption (xl_app com_save_with_password encrypts). - set_page_layout(opt sheet orientation paper_size margins scale fit_to_width fit_to_height print_area print_title_rows print_title_cols gridlines headings allow_loss): Set print settings: orientation, paper size, margins, scale or fit, print area and repeated titles; unset values stay. - set_header_footer(opt sheet header footer apply_to raw allow_loss): Write the three-section page headers and footers. More ops follow, in the same format, in the op parameter's description.

NameTypeReqDescription
argsobject–The op's arguments as an object. Include path (the workbook file) unless the op's line names other paths or the op reads no workbook; unknown keys are refused. xl_help lists every argument.
opstringyesThe operation to run: an op listed in this tool's description, or one of these, in the same format: - export_range(opt location sheet fmt header values records out_file overwrite bom): Export a range…

No output schema declared.

No examples provided.

Install

How do I install the KitchenSink4XL MCP server?

KitchenSink4XL runs locally as a PyPI package, launched with uvx kitchensink4xl. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · kitchensink4xl

# add to Claude Code
claude mcp add kitchensink4ai-kitchensink4xl -- uvx kitchensink4xl
Common questions

What is the KitchenSink4XL MCP server?

KitchenSink4XL is an MCP server listed in the public MCP registry as io.github.KitchenSink4AI/kitchensink4xl. Excel (.xlsx) MCP server: calculated/cached/missing labels on every value, formulas, verified writes. This page covers its PyPI package (kitchensink4xl).

Is the KitchenSink4XL MCP server safe to use?

KitchenSink4XL scores 62 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the KitchenSink4XL MCP server expose?

KitchenSink4XL exposes 7 tools: xl_read, xl_edit, xl_format, xl_structure, xl_workbook, and 2 more. Their descriptions and schemas cost roughly 3,885 tokens of context every time the server is loaded.

Is the KitchenSink4XL MCP server still maintained?

KitchenSink4XL is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the KitchenSink4XL MCP server under?

KitchenSink4XL declares the AGPL-3.0-only licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.