Skip to content

Conversation

@sbroenne
Copy link
Owner

@sbroenne sbroenne commented Oct 19, 2025

  • Fixed MCP Server implementation

… and MCP Server

- Updated README.md to streamline installation steps and clarify configuration for GitHub Copilot and Claude Desktop.
- Removed the GitHub Copilot Integration guide from docs/COPILOT.md and consolidated relevant information into README.md.
- Enhanced server.json management instructions in DEVELOPMENT.md to ensure synchronization with MCP Server changes.
- Revised installation guide in INSTALLATION.md to focus on CLI tool installation and provide clear system requirements.
- Updated NuGet trusted publishing documentation in NUGET_TRUSTED_PUBLISHING.md to reflect repository name changes and added API key method.
- Adjusted versioning in project files for ExcelMcp CLI and Core to 1.0.0.
- Modified MCP Server configuration in server.json to align with new schema and package structure.
- Cleaned up unnecessary sections in MCP Server README.md and improved clarity on command usage.
@github-actions
Copy link

github-actions bot commented Oct 19, 2025

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

License Issues

tests/ExcelMcp.Core.Tests/ExcelMcp.Core.Tests.csproj

PackageVersionLicenseIssue Type
xunit>= 0NullUnknown License
xunit.runner.visualstudio>= 0NullUnknown License
Allowed Licenses: MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, 0BSD

OpenSSF Scorecard

PackageVersionScoreDetails
nuget/Microsoft.CodeAnalysis.NetAnalyzers >= 0 🟢 6.6
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 14 issue activity found in the last 90 days -- score normalized to 10
Packaging⚠️ -1packaging workflow not detected
Code-Review🟢 10all changesets reviewed
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Security-Policy🟢 10security policy file detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Vulnerabilities🟢 100 existing vulnerabilities detected
Branch-Protection🟢 4branch protection is not maximal on development and all release branches
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 6dependency not pinned by hash detected -- score normalized to 6
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
nuget/Microsoft.NET.Test.Sdk >= 0 🟢 5.5
Details
CheckScoreReason
Packaging⚠️ -1packaging workflow not detected
Code-Review🟢 10all changesets reviewed
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 1030 commit(s) and 12 issue activity found in the last 90 days -- score normalized to 10
Security-Policy🟢 10security policy file detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
License🟢 10license file detected
Vulnerabilities🟢 100 existing vulnerabilities detected
Binary-Artifacts⚠️ 0binaries present in source code
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
nuget/xunit >= 0 🟢 4.9
Details
CheckScoreReason
Code-Review⚠️ 1Found 3/30 approved changesets -- score normalized to 1
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 1030 commit(s) and 24 issue activity found in the last 90 days -- score normalized to 10
Packaging⚠️ -1packaging workflow not detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Fuzzing⚠️ 0project is not fuzzed
License🟢 9license file detected
Vulnerabilities🟢 100 existing vulnerabilities detected
Binary-Artifacts🟢 10no binaries found in the repo
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
Security-Policy⚠️ 0security policy file not detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
nuget/xunit.runner.visualstudio >= 0 UnknownUnknown

Scanned Files

  • src/ExcelMcp.Core/ExcelMcp.Core.csproj
  • tests/ExcelMcp.Core.Tests/ExcelMcp.Core.Tests.csproj

…mplete with Comprehensive Test Coverage (#5)

* Checkpoint from VS Code for coding agent session

* Initial commit: Add XML documentation and update to .NET 9.0

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Refactor Core FileCommands to return Result objects, remove Spectre.Console dependency

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Create Core.Tests project and reorganize tests by layer (Core vs CLI)

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Add comprehensive refactoring summary documentation

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Final summary: FileCommands refactoring complete with proof of concept

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Refactor SetupCommands: Core returns VbaTrustResult, CLI formats output

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Refactor CellCommands: Core returns CellValueResult/OperationResult, CLI formats

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Refactor ParameterCommands: Core returns ParameterListResult/ParameterValueResult, CLI formats

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Add refactoring status documentation - 67% complete (4/6 commands done)

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Refactor SheetCommands Core: returns WorksheetListResult/WorksheetDataResult/OperationResult

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Complete SheetCommands: CLI wrapper and test updates - builds successfully

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Update IScriptCommands interface and add final status documentation - 83% complete

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Refactor ScriptCommands Core: returns ScriptListResult/OperationResult, zero Spectre.Console

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Refactor PowerQueryCommands Core: returns Result objects, zero Spectre.Console - 100% Core complete!

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Create CLI wrappers for ScriptCommands and PowerQueryCommands - formatting Core results

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Complete refactoring: Update MCP Server, remove Spectre.Console from Core - 100% Done!

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Add comprehensive test coverage documentation and status analysis

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Add 15 unit tests for Result types - all passing without Excel

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Add 14 unit tests for MCP Server JSON serialization - 46 total unit tests passing

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Move integration tests to Core.Tests - proper layer organization (48 Core, 8 CLI, 30 MCP)

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

* Add missing Core integration tests: PowerQuery, Sheet, Script, IntegrationWorkflows (30+ tests)

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

---------

Co-authored-by: Stefan Broenner <stefan.broenner@microsoft.comm>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>
Copy link
Contributor

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

Stefan Broenner and others added 10 commits October 20, 2025 10:01
- Implemented ExcelTools class for comprehensive Excel file operations including creation, validation, and existence checks.
- Introduced ExcelPowerQuery for managing Power Query M code and data connections.
- Developed ExcelWorksheet for CRUD operations on worksheets and cell ranges.
- Created ExcelParameter for managing named ranges as parameters.
- Added ExcelCell for individual cell operations including getting and setting values and formulas.
- Implemented ExcelVba for managing and executing VBA scripts in macro-enabled Excel files.
- Established ExcelToolsBase as a common base class for shared functionality across all Excel tools.
- Enhanced error handling and standardized JSON responses across all tools.
…tionality

- Implemented integration tests for Excel file and worksheet operations in ExcelMcpServerTests.
- Added round trip tests for Power Query and VBA workflows in McpServerRoundTripTests.
- Created unit tests for JSON serialization of result objects in ResultSerializationTests.
- Ensured comprehensive coverage of success and error scenarios across all tests.
- Included cleanup logic to manage temporary files created during tests.
- Updated ExcelVbaTool and ExcelWorksheetTool to include data annotations for parameter validation, ensuring required fields and valid file extensions.
- Refactored action handling in both tools to improve clarity and maintainability.
- Added comprehensive unit tests for various CLI commands, focusing on argument validation and error exit codes.
- Introduced integration tests for ParameterCommands, CellCommands, PowerQueryCommands, ScriptCommands, and SheetCommands to verify CLI-specific behavior and error handling.
- Ensured all tests validate expected exit codes for missing or invalid arguments, enhancing overall robustness of the CLI.
…ency, add detailed error message tests, and enhance directory handling in Excel file operations

- Changed parameter names from `filePath` to `excelPath` in multiple test cases for clarity.
- Introduced `DetailedErrorMessageTests` to verify enhanced error messages for various Excel operations.
- Added `ExcelFileDirectoryTests` to ensure file creation in non-existent directories works as expected.
- Created `ExcelFileMcpErrorReproTests` to reproduce specific MCP error scenarios.
- Implemented `ExcelFileToolErrorTests` to diagnose issues with the excel_file tool.
- Added `McpParameterBindingTests` to test parameter binding in the MCP framework.
- Developed `PowerQueryComErrorTests` to diagnose COM errors in Power Query operations.
- Standardized test class naming conventions by adding layer prefixes (Cli, Core, Mcp) to avoid duplicate names across projects.
- Implemented a new trait standardization for all tests, ensuring complete trait coverage for better filtering and organization.
- Added a new method to disable VBA project access trust in SetupCommands.
- Introduced WithVbaTrustManagement method in ScriptCommands to manage VBA trust automatically during operations.
- Updated existing tests to reflect new naming conventions and added missing traits for MCP Server tests.
- Removed obsolete ScriptCommandsTests class to streamline test suite.
- Revised documentation to reflect changes in test organization and filtering best practices.
- Directly use the built executable for faster startup instead of `dotnet run`.
- Implement fallback to DLL execution if the executable is not found.
- Enhance JSON response handling for various calls to ensure robustness against non-JSON responses.
- Update data verification steps to focus on protocol correctness rather than exact content.
- Improve logging for better clarity on test steps and outcomes.
- Clean up file handling to ensure proper resource management.
…ows (#6)

* Initial plan

* Fix build actions: Update .NET version from 10 to 9 across all workflows and global.json

Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sbroenne <3026464+sbroenne@users.noreply.github.com>
@sbroenne sbroenne changed the title Refactor installation and configuration instructions for ExcelMcp CLI and MCP Server Fixed MCP Server implementation Oct 20, 2025
@sbroenne sbroenne merged commit 9bc2420 into main Oct 20, 2025
4 of 5 checks passed
@sbroenne sbroenne deleted the feature/nuget branch October 20, 2025 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants