Summary
The README documents installing and running the server with uv and uvx, but pyproject.toml still uses the legacy Poetry tables ([tool.poetry]) with no PEP 621 [project] section. uv reads dependencies from [project], so the native uv workflows do not work:
uv sync resolves nothing (no [project.dependencies]), leaving an empty environment.
uv run <script> re-syncs to that empty state and fails (works only with --no-sync after a manual uv pip install).
uvx ros2-medkit-mcp-stdio by package name is not possible.
Current uv usage therefore goes through uv pip install -e . and uvx --from git+..., which work but are not the standard uv entry points.
Proposed solution
Move the project metadata to PEP 621 [project] while keeping the Poetry build backend (Poetry 2.x reads [project]):
[tool.poetry.dependencies] -> [project.dependencies], with requires-python.
[tool.poetry.group.dev.dependencies] -> a dev [project.optional-dependencies] extra (or [dependency-groups]).
[tool.poetry.scripts] -> [project.scripts] (ros2-medkit-mcp-stdio, ros2-medkit-mcp-http).
- Keep
build-backend = "poetry.core.masonry.api".
The GitHub-release client wheel needs the PEP 621 direct-reference form, e.g.
ros2-medkit-client @ https://github.com/selfpatch/ros2_medkit_clients/releases/download/py-v0.5.0/ros2_medkit_client-0.5.0-py3-none-any.whl.
After this, uv sync, uv run, and uvx --from git+... <script> all work natively, and the README can drop the uv pip install / --no-sync caveats.
Additional context
- Must keep
poetry install / poetry run working (CI uses Poetry). Poetry 2.x supports [project], so verify on the CI Poetry version and regenerate poetry.lock.
- Verify the client URL dependency still resolves under both uv and Poetry.
- Follow-up to the README uv/uvx documentation.
Summary
The README documents installing and running the server with
uvanduvx, butpyproject.tomlstill uses the legacy Poetry tables ([tool.poetry]) with no PEP 621[project]section. uv reads dependencies from[project], so the native uv workflows do not work:uv syncresolves nothing (no[project.dependencies]), leaving an empty environment.uv run <script>re-syncs to that empty state and fails (works only with--no-syncafter a manualuv pip install).uvx ros2-medkit-mcp-stdioby package name is not possible.Current uv usage therefore goes through
uv pip install -e .anduvx --from git+..., which work but are not the standard uv entry points.Proposed solution
Move the project metadata to PEP 621
[project]while keeping the Poetry build backend (Poetry 2.x reads[project]):[tool.poetry.dependencies]->[project.dependencies], withrequires-python.[tool.poetry.group.dev.dependencies]-> adev[project.optional-dependencies]extra (or[dependency-groups]).[tool.poetry.scripts]->[project.scripts](ros2-medkit-mcp-stdio,ros2-medkit-mcp-http).build-backend = "poetry.core.masonry.api".The GitHub-release client wheel needs the PEP 621 direct-reference form, e.g.
ros2-medkit-client @ https://github.com/selfpatch/ros2_medkit_clients/releases/download/py-v0.5.0/ros2_medkit_client-0.5.0-py3-none-any.whl.After this,
uv sync,uv run, anduvx --from git+... <script>all work natively, and the README can drop theuv pip install/--no-synccaveats.Additional context
poetry install/poetry runworking (CI uses Poetry). Poetry 2.x supports[project], so verify on the CI Poetry version and regeneratepoetry.lock.