Files
Stefan Broenner 0eb11c04e9 Remove redundant QueryTable and ListExcelSources features (#197)
* Update README to streamline API safety section and enhance clarity

* Update robots.txt to enhance sitemap visibility and prioritize crawling for Googlebot and Bingbot

* Remove obsolete PowerQuery integration tests for LoadTo and timeout scenarios

* Refactor using directives across multiple command files for consistency

* Remove redundant ListExcelSources and Unload methods (#133)

Removed ListExcelSources method from PowerQuery commands as it duplicates
functionality already available via separate excel_table(list) and
excel_namedrange(list) tool calls. LLMs can easily chain these operations.

Also removed Unload method as the interface signature was removed during
earlier refactoring but enum/tool routing remained.

**Changes:**
- Removed IPowerQueryCommands.ListExcelSources() interface method
- Removed PowerQueryCommands.ListExcelSources() implementation (~95 lines)
- Removed PowerQueryAction.ListExcelSources enum value
- Removed action mapping for 'list-excel-sources' from ActionExtensions
- Removed MCP Server tool routing for ListExcelSources (~15 lines)
- Removed PowerQueryAction.Unload enum value
- Removed action mapping for 'unload' from ActionExtensions
- Removed MCP Server tool routing for Unload (~20 lines)
- Converted 10 PowerQuery tests to inline M code (removed .pq file dependencies)

**Total cleanup:** ~140 lines removed

**Related to #133:** Code cleanup discovered both bugs already fixed:
- Bug #1 (Column Preservation): Tests pass - Update handles column changes
- Bug #2 (ListObject Accumulation): Delete() removes ListObjects properly
- All regression tests passing (2/2)

* Remove redundant QueryTable functionality

QueryTable functionality duplicates existing Power Query + Table + Connection
tool capabilities. LLMs can compose workflows from existing tools without
needing a separate QueryTable abstraction.

**Redundancy Analysis:**
- CreateFromQuery → excel_powerquery(action: 'create', loadDestination: 'worksheet')
- CreateFromConnection → excel_connection(action: 'loadto')
- List → excel_table(list) + excel_powerquery(list)
- Refresh → excel_powerquery(refresh) or excel_connection(refresh)
- Delete → excel_powerquery(delete) or excel_table(delete)
- UpdateProperties → Rarely needed, can be set during creation

**Files Deleted:**
- src/ExcelMcp.Core/Commands/QueryTable/ directory (IQueryTableCommands.cs, QueryTableCommands.cs, QueryTableCommands.Lifecycle.cs)
- src/ExcelMcp.Core/Models/QueryTableTypes.cs
- src/ExcelMcp.CLI/Commands/QueryTable/ directory
- src/ExcelMcp.McpServer/Tools/ExcelQueryTableTool.cs
- tests/ExcelMcp.Core.Tests/Integration/Commands/QueryTable/ directory (4 test files)
- src/ExcelMcp.McpServer/Prompts/Content/excel_querytable.md
- specs/QUERYTABLE-SUPPORT-SPECIFICATION.md

**Code Changes:**
- Removed QueryTableAction enum from ToolActions.cs
- Removed ToActionString mapping from ActionExtensions.cs
- Removed CLI command registrations from Program.cs
- Updated tool count: 12 → 11 in all README files
- Updated action count: 163 → 155 in all README files

**Total cleanup:** ~800 lines removed (Core: ~400, CLI: ~150, MCP: ~100, Tests: ~150)

**Same rationale as ListExcelSources removal:** LLMs don't need convenience
wrappers - they can chain operations from focused, single-purpose tools.

* Update documentation to remove QueryTable references

- GitHub Pages: Update tool count (12→11) and action count (163→155)
- Copilot instructions: Remove QueryTable from architecture patterns
- MCP prompts: Remove QueryTable guidance from tool selection, user patterns, server quirks
- MCP prompts: Update excel_connection and excel_powerquery to remove QueryTable references
- Specs: Remove QueryTableTool from session redesign tracking
- ComInterop: Remove unused FindQueryTable() helper (~70 lines)
- Delete ExcelQueryTablePrompts.cs (no longer needed)
- VS Code extension: Update dev dependencies (TypeScript types, eslint)
2025-11-18 17:58:43 +00:00

92 lines
2.3 KiB
JSON

{
"name": "excel-mcp",
"displayName": "Excel MCP Server",
"description": "Excel automation for AI assistants - manage Sheets, Power Query, DAX, VBA, Tables, Ranges, Formatting, Validation & more - requires Excel to be installed",
"version": "1.1.3",
"publisher": "sbroenne",
"icon": "icon.png",
"repository": {
"type": "git",
"url": "https://github.com/sbroenne/mcp-server-excel"
},
"bugs": {
"url": "https://github.com/sbroenne/mcp-server-excel/issues"
},
"homepage": "https://github.com/sbroenne/mcp-server-excel#readme",
"license": "MIT",
"engines": {
"vscode": "^1.105.0"
},
"os": [
"win32"
],
"categories": [
"AI",
"Chat",
"Data Science"
],
"keywords": [
"mcp",
"model context protocol",
"excel",
"microsoft",
"office",
"spreadsheet",
"automation",
"power query",
"m language",
"dax",
"data model",
"power pivot",
"vba",
"macro",
"table",
"copilot",
"ai",
"github copilot",
"data analysis"
],
"activationEvents": [
"onStartupFinished"
],
"extensionDependencies": [
"ms-dotnettools.vscode-dotnet-runtime"
],
"main": "./out/extension.js",
"files": [
"out/**",
"bin/**",
"README.md",
"CHANGELOG.md",
"LICENSE",
"icon.png"
],
"contributes": {
"mcpServerDefinitionProviders": [
{
"id": "excel-mcp",
"label": "Excel MCP"
}
]
},
"scripts": {
"clean": "cd .. && dotnet clean src/ExcelMcp.McpServer/ExcelMcp.McpServer.csproj -c Release",
"build:mcp-server": "npm run clean && cd .. && dotnet publish src/ExcelMcp.McpServer/ExcelMcp.McpServer.csproj -c Release -r win-x64 --self-contained -o vscode-extension/bin --verbosity minimal",
"vscode:prepublish": "npm run build:mcp-server && npm run compile",
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./",
"package": "npm run build:mcp-server && vsce package",
"lint": "eslint src --ext ts"
},
"devDependencies": {
"@types/node": "^22.19.1",
"@types/vscode": "^1.106.1",
"@typescript-eslint/eslint-plugin": "^8.46.2",
"@typescript-eslint/parser": "^8.46.2",
"@vscode/vsce": "^3.7.0",
"eslint": "^9.39.1",
"typescript": "^5.9.3",
"typescript-eslint": "^8.47.0"
}
}