Agent skill · Audited from source
excel-mcp
skill · sbroenne/mcp-server-excelMIT licenceAudited 21 Oct 2026 · source 5b587e8d41f6
Is it safe? No — BLOCK, grade D (69/100). We read this skill's source at commit 5b587e8d41f6 and observed filesystem, network and shell access and a hard-coded secret (see the findings). The audit raised 25 findings, 1 critical or high. What it does: Apply optional presentation conventions when the user requests Excel report formatting or a new reader-facing report through excelcli. Use for readable headers, meaningful number formats, financial-model colours, and…
Cite
Cite this page
ModelsAtlas. “excel-mcp (sbroenne/mcp-server-excel)”. Retrieved 21 Oct 2026. https://modelsatlas.com/skills/sbroenne/excel-mcp
Blocked. The page stays public so you can check this skill if someone recommended it to you. The audit found 1 critical or high finding, starting with “Network egress” in infrastructure/azure/setup-excel-desktop.ps1:36. Do not install it without reading them.
Trust audit
Audit 0.4.1 · source read 21 Oct 2026
BLOCK means the audit found something that could harm you or your machine. Grade D is shared by 642 of 14,816 audited skills.
What the source does
- FilesystemDeclared1 observation
- NetworkDeclared7 observations
- ShellDeclared2 observations
- DependenciesNot pinnedSome versions float
- SecretsFoundSee the findings; values are never shown
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | WARN | 6 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | FAIL | 16 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 3 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (25)
HIGHNetwork egressnet.metadata_ip · infrastructure/azure/setup-excel-desktop.ps1:36
$tokenUri = 'http://169.254.169.254/metadata/identity/oauth2/token' +
- Why
- cloud metadata endpoint: the classic SSRF credential grab
- Fix
- —
MEDIUMInventory / provenanceinv.binary · videos/agentic-world-bank-briefing/assets/voice/01a.wav
01a.wav
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
MEDIUMNetwork egressnet.raw_ip · infrastructure/azure/setup-excel-desktop.ps1:36
$tokenUri = 'http://169.254.169.254/metadata/identity/oauth2/token' +
- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMHard-coded secretssecret.generic · tests/ExcelMcp.Service.Tests/PersistentServiceConnectionTests.Lifecycle.cs:70
const string secret = "…";
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWInventory / provenanceinv.binary · samples/world-bank-briefing/WDI_Briefing_2000-2024.pptx
WDI_Briefing_2000-2024.pptx
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
LOWInventory / provenanceinv.binary · samples/world-bank-briefing/WDI_Development_2000-2024.xlsx
WDI_Development_2000-2024.xlsx
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
LOWInventory / provenanceinv.binary · samples/world-bank-dashboard/world-in-motion.xlsx
world-in-motion.xlsx
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
LOWInventory / provenanceinv.binary · tests/ExcelMcp.ComInterop.Tests/Integration/Session/TestFiles/batch-test-static.xlsx
batch-test-static.xlsx
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
LOWFilesystem / pathfs.traversal · .github/workflows/publish-mcp-registry.yml:82
../../../../mcp-publisher.exe publish --verbose
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · gh-pages/mkdocs.yml:45
# Many pulled-in source READMEs contain repo-relative links (e.g. ../../FEATURES.md)
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · gh-pages/tests/test_sitegen.py:36
self.rewrite("../../src/ExcelMcp.Core/Foo.cs"),- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · gh-pages/tests/test_sitegen.py:41
self.assertEqual(self.rewrite("../../scripts/"), f"[x]({REPO_URL}/tree/main/scripts)")- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · gh-pages/tests/test_sitegen.py:54
for link in ("https://example.com", "#here", "/faq/", "mailto:[email protected]", "../../../x.md"):- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · docs/DEVELOPMENT.md:601
npx -y @microsoft/aspire-cli dashboard run --frontend-url http://127.0.0.1:18888 --otlp-grpc-url http://127.0.0.1:4317 --otlp-http-url http://127.0.0.1:4318
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · tests/ExcelMcp.Core.Tests/Helpers/LocalMSourceCancellationProbe.cs:20
Url = $"http://127.0.0.1:{((IPEndPoint)_listener.LocalEndpoint).Port}/evaluation.csv";- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · tests/Shared/LocalOtlpReceiver.cs:26
Endpoint = $"http://127.0.0.1:{((IPEndPoint)_listener.LocalEndpoint).Port}";- Why
- No further detail recorded for this rule.
- Fix
- —
LOWSupply chainsupply.unpinned · npm-packages/excelcli/package.json
foreground-child
- Why
- 1 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
LOWSupply chainsupply.unpinned · npm-packages/mcp-server-excel/package.json
foreground-child
- Why
- 1 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
LOWSupply chainsupply.unpinned · npm-packages/shared/package.json
foreground-child
- Why
- 1 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
LOWSupply chainsupply.unpinned · package.json
@changesets/changelog-github, @changesets/cli
- Why
- 2 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
LOWSupply chainsupply.unpinned · vscode-extension/package.json
@types/node, @types/vscode, @vscode/vsce, oxlint, typescript, vitest
- Why
- 6 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
LOWPrompt injectionprompt.transfer_instruction · CHANGELOG.md:52
- [#1190](https://github.com/sbroenne/mcp-server-excel/pull/1190) [`582354b`](https://github.com/sbroenne/mcp-server-excel/commit/582354b07536d7e2ea061834777f4f3116da3a01) Thanks [@sbroenne](https://g
- Why
- an instruction to move sensitive data to an outside destination
- Fix
- remove; a skill never needs the user's secrets off the machine
LOWPrompt injectionprompt.transfer_instruction · CHANGELOG.md:56
- [#1161](https://github.com/sbroenne/mcp-server-excel/pull/1161) [`75b1fe2`](https://github.com/sbroenne/mcp-server-excel/commit/75b1fe29c8c8544b866606199ed6d00d3dbab507) Thanks [@sbroenne](https://g
- Why
- an instruction to move sensitive data to an outside destination
- Fix
- remove; a skill never needs the user's secrets off the machine
LOWPrompt injectionprompt.transfer_instruction · CHANGELOG.md:62
- [#1188](https://github.com/sbroenne/mcp-server-excel/pull/1188) [`2f584fc`](https://github.com/sbroenne/mcp-server-excel/commit/2f584fcb126c01eb037b9ac7aa1490cecdd8c971) Thanks [@sbroenne](https://g
- Why
- an instruction to move sensitive data to an outside destination
- Fix
- remove; a skill never needs the user's secrets off the machine
Audit 0.4.1 · source sha 5b587e8d41f6 · 21 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publishersbroenne GitHub userOwner of the repository this skill is read from
- Source foldersbroenne/mcp-server-excelThe exact folder we audited
- LicenceMITAs the repository states it
- Commit pinned for this verdict5b587e8d41f6A new audit runs when the source changes
- Repository statusNot archivedPushed today
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Apply optional presentation conventions when the user requests Excel report formatting or a new reader-facing report through excelcli. Use for readable headers, meaningful number formats, financial-model colours, and…
--- name: excel-cli-report-formatting description: >- Apply optional presentation conventions when the user requests Excel report formatting or a new reader-facing report through excelcli. Use for readable headers, meaningful number formats, financial-model colours, and report layout. Do not load for ordinary reads, raw exports, targeted data updates, Power Query or Data Model work, or failure recovery without a report-formatting request. compatibility: Windows with desktop Excel and excelcli. --- # Report formatting with excelcli Use the user's requested style first, the existing template second, and the optional conventions in the [formatting guide](references/report-formatting.md) only when neither specifies a style. Read that guide for the requested report, not unrelated workbook work. Discover exact actions and flags with `excelcli <command> --help`. Preserve values, formulas, units, identifiers, existing layouts, and unrelated sheets. Formatting is not permission to refresh data or rebuild workbook objects. Use Table styles for Tables and the owning chart/PivotTable controls for those objects; plain-cell formatting is not interchangeable with their style systems. Inspect the affected formats and calculated outputs before saving the authorized result. Financial-model colours and dashboard visuals are optional, not a requirement for every report. Screenshots are optional and need a desktop. General workflow and recovery documentation is available on the [website](https://excelmcpserver.dev/reference/); it is not another required skill.
Excerpt, first 1,580 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 5b587e8
claude plugin install excel-cli@mcp-server-excel-plugins claude plugin install excel-mcp@mcp-server-excel-plugins
git clone https://github.com/sbroenne/mcp-server-excel git -C mcp-server-excel checkout 5b587e8d41f6
Commands as the repository documents them: shown, never run by us. Our verdict covers commit 5b587e8d41f6 only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Code | Mentioned in its text, not tested | Skills for Claude Code · About Claude Code |
| Claude Desktop | Mentioned in its text, not tested | Skills for Claude Desktop · About Claude Desktop |
| Codex | Mentioned in its text, not tested | Skills for Codex · About Codex |
| GitHub Copilot | Mentioned in its text, not tested | Skills for GitHub Copilot · About GitHub Copilot |
| Cursor | Mentioned in its text, not tested | Skills for Cursor · About Cursor |
| Gemini CLI | Mentioned in its text, not tested | Skills for Gemini CLI · About Gemini CLI |
| Windsurf | Mentioned in its text, not tested | Skills for Windsurf · About Windsurf |
Audit history
Every audit, every source change
- ✕BLOCK D 69 / 100
first audit · source
5b587e8d41f6
Similar skills
All automation skills →sbroenne/mcp-server-excel
Discover and launch the Excel CLI for ordinary Excel workbook requests on Windows, including reads, writes, formulas, data refreshes, and workbook automation. Use the installed excel-cli plugin's npx launcher and native…
alirezarezvani/claude-skills
Default entry point for any research request — a hybrid router that classifies the question deterministically and either delegates to a specialist research skill (pulse for trends/sentiment, grants for NIH funding,…
alirezarezvani/claude-skills
/cs:soc2-audit-prep <scope> — SOC 2 Type II readiness 6-question forcing interrogation. Observation-period focused. Use before Type II observation begins, mid-period checkpoint, or pre-field-test month-10 readiness.
alirezarezvani/claude-skills
/cs:fda-qsr-audit-prep <scope> — FDA 21 CFR 820 (QSR / QMSR) audit 6-question forcing interrogation. Post-Feb 2026 substantially harmonized with ISO 13485. Use before annual internal QSR audit, pre-FDA-inspection…
alirezarezvani/claude-skills
/cs:gdpr-audit-prep <scope> — GDPR audit 6-question Article-cited forcing interrogation. Use before annual internal GDPR review, post-breach internal audit, DPA investigation readiness, or acquisition due diligence.
alirezarezvani/claude-skills
/cs:iso13485-audit-prep <scope> — ISO 13485 QMS audit 6-question forcing interrogation. Design controls + CAPA + post-market focused. Use before Clause 8.2.4 internal audit, MDR / FDA QSR alignment review, or…
Questions about excel-mcp
What does the excel-mcp skill do?
Is excel-mcp safe to install?
What can excel-mcp access on my machine?
Which assistants does excel-mcp work with?
How current is this page?
Sources
- github.com/sbroenne/mcp-server-excel — the audited source at commit 5b587e8d41f6 and every finding aboveObserved · 21 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the excel-mcp skill do?
- Is excel-mcp safe to install?
- What can excel-mcp access on my machine?