-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Description
Please explain the motivation behind the feature request.
Recent testing indicates there might be more issues with install links for streamable_http extensions -- not just handling the header parameters as originally reported. For example, this link appears to add the extension to the config as expected:
goose://extension?url=https%3A%2F%2Fmcp.neon.tech%2Fmcp&transport=streamable_http&id=neon&name=Neon&description=Manage%20Neon%20Postgres%20databases%2C%20projects%2C%20and%20branches
The transport arg is required to register it as streamable_http but should we also accept type=streamable_http to be consistent with the config type field?
Also, Goose says the Desktop app's deeplink parser fails to properly parse and apply custom headers for streamable_http extensions. While the transport parameter works, header parameters in the install link are ignored, causing extensions that require headers (e.g. for authentication) to fail initialization. This forces users to manually configure these extensions.
Describe the solution you'd like
- Deeplinks with
type=streamable_httpshould register the extension as the http type (currently only works withtransportand defaults tosse, see /ui/desktop/src/components/settings/extensions/deeplink.ts) - Deeplinks for
httptypes withheader=name%3Dvalueparameters should populate the headers object in the extension config (I think populating the specified value is a stretch consideringenvarg behavior) - Extensions should initialize successfully when required headers are provided via deeplink
Describe alternatives you've considered
Desktop users can add custom extension for streamable servers using manual configuration steps.
Additional context
Goose says:
Root Cause Analysis Needed
The deeplink parser in ui/desktop/src/components/settings/extensions/deeplink.ts correctly handles transport but fails to process header parameters. Investigation needed for:
- How multiple header parameters are extracted from the URL
- How header values are URL-decoded (e.g., %3D → =)
- How headers are applied to the streamable_http extension config
- Whether the getStreamableHttpConfig function properly accepts headers
Acceptance Criteria
-
Fix deeplink parsing to extract and apply header=name%3Dvalue parameters
-
Extensions created from deeplinks should have correct headers in config
-
Extensions requiring headers (like GitHub MCP) should initialize successfully
-
Add/improve tests for deeplink parsing with headers
-
I have verified this does not duplicate an existing feature request -- though this is related to issue MCP - SSE/Streamable HTTP - Add support for request headers #2423