Skip to content

refactor(python): rename to keeperhub-mcp and align packaging with npm#6

Merged
eskp merged 3 commits into
mainfrom
refactor/python-keeperhub-mcp
Jun 9, 2026
Merged

refactor(python): rename to keeperhub-mcp and align packaging with npm#6
eskp merged 3 commits into
mainfrom
refactor/python-keeperhub-mcp

Conversation

@Bleyle823

Copy link
Copy Markdown
Contributor

Summary

  • Rename PyPI package from keeperhub-mcp-client to keeperhub-mcp and import module from keeperhub_mcp_client to keeperhub_mcp, mirroring the npm package @keeperhub/mcp.
  • Add py.typed marker for PEP 561 typed-package support.
  • Bundle repo root LICENSE into wheel and sdist via Hatch force-include / include.
  • Port MCP session re-init retry cap from @keeperhub/mcp: at most one re-init on persistent 401 or session-related 404, then raise.
  • Update root README, Python README, and PyPI release workflow comments for the new name/repo.

Breaking change

Integrators must update imports:

# before
from keeperhub_mcp_client import get_client

# after
from keeperhub_mcp import get_client

PyPI install becomes pip install keeperhub-mcp.

Test plan

  • python -m pytest tests/ -q (6 passed)
  • Built wheel contains LICENSE and keeperhub_mcp/py.typed

PyPI note

If keeperhub-mcp-client was never published, register the pending publisher for keeperhub-mcp on PyPI before the first py-v* tag.

Bleyle823 and others added 2 commits June 9, 2026 02:12
…lient.

Aligns keeperhub-mcp-client packaging with npm 0.1.1 follow-ups while keeping version at 0.1.0.

Co-authored-by: Cursor <cursoragent@cursor.com>
PyPI name and import module are now keeperhub-mcp / keeperhub_mcp, aligned with the npm scoped package naming.

Co-authored-by: Cursor <cursoragent@cursor.com>
@Bleyle823 Bleyle823 requested a review from eskp June 8, 2026 23:20
…flow

The previous packaging used a parent-path force-include (../LICENSE) plus an
sdist include override. That override replaced Hatch's default file selection,
so the sdist shipped no package source, and ../LICENSE could not be resolved
when building the wheel from the unpacked sdist -- python -m build (the release
workflow's build step) failed outright.

- Add python/LICENSE (Apache-2.0) inside the package project root.
- Declare it via PEP 639 license-files; drop the broken force-include/sdist
  include blocks. LICENSE now lands in dist-info/licenses and both sdist and
  wheel build cleanly.
- Gate the publish job on a py-v* tag ref so a manual workflow_dispatch cannot
  publish, and verify the tag matches the pyproject version before building.
@eskp eskp merged commit a98db00 into main Jun 9, 2026
3 checks passed
@eskp eskp deleted the refactor/python-keeperhub-mcp branch June 9, 2026 11:16
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