Skip to content

[General]: mcpm ls is broken by default for Goose Default configuration #181

@rzhade3

Description

@rzhade3

Issue Type

Bug Report

Description

Running mcpm ls on Goose's default configuration leads to a Pydantic error due to the way that the default built-in extensions for Goose are configured. MCPM expects a STDIOServerConfig.command or RemoteServerConfig.url, but Goose CLI does not use either of these keys.

Steps to Reproduce

  1. Run mcpm ls using Goose-CLI provider
  2. Observe pydantic error

Additional Information

Error:

~ mcpm ls
Working on Active Client: goose-cli

MCP servers installed in goose-cli:

Active Servers:
  --------------------------------------------------
Traceback (most recent call last):
  File "/opt/homebrew/bin/mcpm", line 8, in <module>
    sys.exit(main())
             ~~~~^^
  File "/opt/homebrew/Cellar/mcpm/1.13.5/libexec/lib/python3.13/site-packages/click/core.py", line 1442, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/mcpm/1.13.5/libexec/lib/python3.13/site-packages/click/core.py", line 1363, in main
    rv = self.invoke(ctx)
  File "/opt/homebrew/Cellar/mcpm/1.13.5/libexec/lib/python3.13/site-packages/click/core.py", line 1830, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/opt/homebrew/Cellar/mcpm/1.13.5/libexec/lib/python3.13/site-packages/click/core.py", line 1226, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/mcpm/1.13.5/libexec/lib/python3.13/site-packages/click/core.py", line 794, in invoke
    return callback(*args, **kwargs)
  File "/opt/homebrew/Cellar/mcpm/1.13.5/libexec/lib/python3.13/site-packages/mcpm/commands/list.py", line 64, in list
    print_server_config(client_manager.from_client_format(server_name, server_info))
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/mcpm/1.13.5/libexec/lib/python3.13/site-packages/mcpm/clients/managers/goose.py", line 203, in from_client_format
    return TypeAdapter(ServerConfig).validate_python(server_data)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/mcpm/1.13.5/libexec/lib/python3.13/site-packages/pydantic/type_adapter.py", line 421, in validate_python
    return self.validator.validate_python(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        object,
        ^^^^^^^
    ...<5 lines>...
        by_name=by_name,
        ^^^^^^^^^^^^^^^^
    )
    ^
pydantic_core._pydantic_core.ValidationError: 2 validation errors for union[STDIOServerConfig,RemoteServerConfig]
STDIOServerConfig.command
  Field required [type=missing, input_value={'name': 'computercontrol... 300, 'type': 'builtin'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.11/v/missing
RemoteServerConfig.url
  Field required [type=missing, input_value={'name': 'computercontrol... 300, 'type': 'builtin'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.11/v/missing

The key that mcpm is failing on:

  computercontroller:
    bundled: true
    display_name: Computer Controller
    enabled: false
    name: computercontroller
    timeout: 300
    type: builtin

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions