Skip to content

[WIP] Fix version separator for uvx MCP server installation#1

Draft
Copilot wants to merge 1 commit intomainfrom
copilot/fix-uvx-version-separator
Draft

[WIP] Fix version separator for uvx MCP server installation#1
Copilot wants to merge 1 commit intomainfrom
copilot/fix-uvx-version-separator

Conversation

Copy link

Copilot AI commented Dec 15, 2025

Thanks for asking me to work on this. I will get started on it and keep this PR's description up to date as I form a plan and make progress.

Original prompt

Problem

When installing a uvx MCP server from the registry, the identifier and version are added to the server args in the mcp.json file using == as the separator (e.g., "pagerduty-mcp==latest").

However, uvx (part of the uv Python package manager) uses @ for version pinning, not ==. The == syntax is for pip, not uvx.

Current incorrect output:

  • uvx pagerduty-mcp==latest

Expected correct output:

  • uvx pagerduty-mcp@latest

Solution

In src/vs/platform/mcp/common/mcpManagementService.ts, change line 132 from:

case RegistryType.PYTHON:
    args.push(serverPackage.version ? `${serverPackage.identifier}==${serverPackage.version}` : serverPackage.identifier);
    break;

to:

case RegistryType.PYTHON:
    args.push(serverPackage.version ? `${serverPackage.identifier}@${serverPackage.version}` : serverPackage.identifier);
    break;

This aligns the Python/uvx case with the correct uvx CLI syntax, which uses @ for version specification (similar to how npm/npx uses @ for versions).

This pull request was created as a result of the following prompt from Copilot chat.

Problem

When installing a uvx MCP server from the registry, the identifier and version are added to the server args in the mcp.json file using == as the separator (e.g., "pagerduty-mcp==latest").

However, uvx (part of the uv Python package manager) uses @ for version pinning, not ==. The == syntax is for pip, not uvx.

Current incorrect output:

  • uvx pagerduty-mcp==latest

Expected correct output:

  • uvx pagerduty-mcp@latest

Solution

In src/vs/platform/mcp/common/mcpManagementService.ts, change line 132 from:

case RegistryType.PYTHON:
    args.push(serverPackage.version ? `${serverPackage.identifier}==${serverPackage.version}` : serverPackage.identifier);
    break;

to:

case RegistryType.PYTHON:
    args.push(serverPackage.version ? `${serverPackage.identifier}@${serverPackage.version}` : serverPackage.identifier);
    break;

This aligns the Python/uvx case with the correct uvx CLI syntax, which uses @ for version specification (similar to how npm/npx uses @ for versions).


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

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