Skip to content

Expand GitHub Copilot MCP tool surface to cover App Manager and Container operations #318

@RuggeroPaolo-Basile-EOS

Description

Summary

Gordon VS Code currently exposes only 2 tools to GitHub Copilot via MCP: gordon_convertTranslationsFrom and gordon_convertTranslationsTo. Gordon already has a rich feature set (App Manager, Docker/Container management, Service management, Package Feeds) that is fully accessible via the UI and PowerShell — but none of it is reachable from Copilot Chat agents.

Exposing these capabilities as MCP tools would make Gordon a true AI-ready DevOps companion for AL developers, enabling a full publish → install → test loop without ever leaving the chat.

Expected Behavior

GitHub Copilot (or any MCP-compatible agent) should be able to invoke Gordon operations directly. The minimum useful set would be:

Proposed Tool Description
gordon_listApps List apps installed/published on a given service or Docker container
gordon_publishApp Publish a .app file to a BC service
gordon_installApp Install a published app on a BC service
gordon_uninstallApp Uninstall an app from a BC service
gordon_unpublishApp Unpublish an app from a BC service
gordon_syncApp Sync (or ForceSync) an app on a BC service
gordon_getAppStatus Get the current status (version, installed, published) of a specific app
gordon_startContainer Start a Docker BC container
gordon_stopContainer Stop a Docker BC container
gordon_restartService Restart the BC service on a container/server
gordon_getLatestVersion Query a feed for the latest available version of a package

Possible Solution

Gordon already exposes these operations via the PowerShell module and the internal service API used by the desktop app. Wrapping these as MCP tools in the VS Code extension (the same way the XLF conversion tools are exposed today) should be feasible without a full rewrite.

A minimal but immediately impactful starting point would be: gordon_publishApp + gordon_installApp + gordon_syncApp + gordon_listApps — these four alone would allow Copilot to drive the full AL publish-and-test loop autonomously.

Examples

User → Copilot: "Build and publish PZZ CORE to BC26, then install it"

Copilot:
  1. [al_build] → builds the .app
  2. [gordon_publishApp] container=BC26, appPath=".../PZZ CORE.app"
  3. [gordon_installApp] container=BC26, appId="...", version="26.0.0.15"
  → Done. PZZ CORE 26.0.0.15 installed on BC26.
User → Copilot: "What version of PZZ CORE is installed on BC26?"

Copilot: [gordon_listApps] container=BC26, filter="PZZ CORE"
→ Returns: Published 26.0.0.14, Available 26.0.0.15

Product

  • Gordon VSCode (Version: 4.0.15)
  • Gordon (Version: 4.0.15)

Metadata

Metadata

Labels

Gordon VSCodeRelated to Gordon for VSCodeenhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions