Skip to content

[BUG] Plugin .lsp.json with lspServers wrapper key is silently skipped during install #1683

@kkadete

Description

@kkadete

Describe the bug

When a marketplace plugin has a .lsp.json file using the standard { "lspServers": { ... } } format (as used by Claude Code and Copilot CLI), apm install silently skips all LSP servers from that plugin with a misleading error. The plugin's skill files install fine, but the LSP server never makes it into .github/lsp.json.

To Reproduce

  1. Create a plugin with a .lsp.json in the standard format:
{
  "lspServers": {
    "my-lsp-server": {
      "command": "my-lsp",
      "args": ["--stdio"],
      "extensionToLanguage": {
        ".ext": "mylang"
      }
    }
  }
}
  1. Add the plugin as a dependency in apm.yml
  2. Run apm install

Expected behavior

my-lsp-server is registered and written to lsp.json.

Actual behavior

Skipping invalid LSP server 'lspServers' from plugin 'my-plugin': LSP dependency 'lspServers' requires 'command'

The LSP server is not written anywhere. No other error or indication that something went wrong.

Logs

[+] my-plugin (local)
[!] Skipping invalid LSP server 'lspServers' from plugin 'my-plugin': LSP dependency 'lspServers' requires 'command'
  |-- Skill integrated -> .agents/skills/
  |-- 1 skill(s) integrated -> .agents/skills/

Environment

OS: Windows
APM Version: 0.18.0
Python Version: 3.x

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/cliCLI command surface, flags, help text (cross-cutting).good first issueGood for newcomerspriority/highShips in current or next milestonestatus/acceptedDirection approved, safe to start work.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).theme/portabilityOne manifest, every target. Multi-target deploy, marketplace, packaging, install.type/bugSomething does not work as documented.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions