Skip to content

[FEATURE] Support uvx installation by fixing multi-package flat layout for linkedin-mcp-server #36

@cdavernas

Description

@cdavernas

Feature description

Enable linkedin-mcp-server to be installed and executed directly using uvx from GitHub without requiring a local clone.

Currently, running:

uvx --from git+https://github.com/stickerdaniel/linkedin-mcp-server linkedin-mcp-server --no-headless --no-lazy-init
× Failed to build `linkedin-mcp-server @ git+...`
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit code: 1)
error: Multiple top-level packages discovered in a flat-layout: ['assets', 'linkedin_mcp_server'].

This happens because uvx (via pip) attempts to build a wheel, and setuptools aborts when multiple top-level folders exist in a flat layout.

Use Case

Making the project uvx-compatible allows users to:

  • Run the tool with a single command without cloning the repo.
  • Easily integrate into scripts, automation, or CI/CD pipelines.
  • Follow the same installation pattern as other MCP servers that support ephemeral execution.
  • Avoid the complexities of using Docker in restrictive environments (e.g., Docker-in-Docker, Kubernetes, or serverless CI/CD pipelines), where containerized execution can be cumbersome or impractical.

Suggested implementation

  1. Update pyproject.toml to explicitly configure packages discovery to exclude non-Python folders like assets/. For example:
[tool.setuptools.packages.find]
include = ["linkedin_mcp_server*"]
exclude = ["assets*"]
  1. (Optional) Move Python sources to a src/ layout to avoid accidental inclusion of non-package directories.

This will allow uvx and pip to successfully build and install the project from GitHub.

Additional context

Current failure occurs during setuptools auto-discovery because the repository has a flat layout with multiple top-level directories.

Once this change is made, the following command will work seamlessly:

uvx --from git+https://github.com/stickerdaniel/linkedin-mcp-server linkedin-mcp-server --no-headless --no-lazy-init

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions