Repository navigation
chore: release notes for 0.2.0, and what the rename to kaitencloud-mcp needs - #6
Closed
Alex (Alexkuva) wants to merge 4 commits into
Closed
Alex (Alexkuva) wants to merge 4 commits into
Alex (Alexkuva) wants to merge 4 commits into
Conversation
The build job failed on main with permission_denied: read_package: it pushed
ghcr.io/kaitencloud/mcp, an older private package linked to kaiten-internal
that this repository's token cannot write, and which only the package's
settings can open to it. The image now goes to ghcr.io/kaitencloud/kaiten-mcp,
created by this repository's first publish and linked to it by the image's
source label, so it takes the repository's visibility.
The build cache moves from the GitHub Actions cache to a tag of the image's
own package: the gha cache is read-only on a re-run of an old pull request
("failed to reserve cache"). Only pushes write it; pull requests log in to
read it.
A v* tag now also publishes the Python package. kaiten-mcp is taken on PyPI by
an unrelated project, so the project is renamed kaitencloud-mcp; the
console script and the module keep their names. The publish job runs after
lint, test and build, checks the tag against pyproject.toml's version, and
publishes with trusted publishing (no stored token, id-token: write, the pypi
environment). uv.lock stays at revision 3, which the pinned uv 0.9.1 reads.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tom Ribuot <tom.ribuot@kaiten.sh>
…p needs On top of the move to kaitencloud-mcp, three things the package needs: - /health read its version from the distribution kaiten-mcp, which no longer exists under that name: an installed server reported 0.0.0. It reads kaitencloud-mcp. - uvx runs the command named after the package, and the package only had kaiten-mcp: `uvx kaitencloud-mcp` found nothing to run. kaitencloud-mcp is now the same entry point; kaiten-mcp stays. - The project URLs gain the docs page and the changelog. The README and MCP.md install from PyPI and from ghcr.io/kaitencloud/kaiten-mcp:0.2 instead of the repository, building from a checkout stays as the third way, and CHANGELOG.md starts at 0.2.0. Signed-off-by: Alexandre Bergere <alexandre.bergere@kaiten.sh> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The server forwards a request's credential without checking it, so a bad token does not make /mcp answer 401: the endpoint answers, lists the tools, and each call returns Kaiten's own error, `Kaiten API error (401 Unauthorized) [ValidateToken.Invalid]`. A call with no credential at all answers `No Kaiten credential`. A missing scope reads `Kaiten API error (403 Forbidden) [Auth.MissingScope]`, with the scope named. Each was run against a local Kaiten, over stdio and over Streamable HTTP. The console's page is Service Accounts, and its action Generate Token. Signed-off-by: Alexandre Bergere <alexandre.bergere@kaiten.sh> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
backtrack5r3 (tomflenner)
approved these changes
Oct 22, 2026
Contributor
Author
|
Replaced by #7: the same two commits, taken again on top of main. After #3's squash merge, updating this branch from main left two |
7 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR change?
It completes #3 for the 0.2.0 release. #3 moves the package to
kaitencloud-mcpand publishes it on av*tag; this PR is stacked on it (basefix/ci-publish) and adds what the rename needs, plus the release notes./healthreports the right version. The server reads its version from the distributionkaiten-mcp, which no longer exists under that name. With ci: publish the image to its own package and the Python package to PyPI #3 alone, an installed server reports0.0.0. It now readskaitencloud-mcp.uvx kaitencloud-mcpruns the server. uvx runs the command named after the package, and with ci: publish the image to its own package and the Python package to PyPI #3 alone the package only provideskaiten-mcp.kaitencloud-mcpis now the same entry point, andkaiten-mcpstays.[project.urls]gains the docs page and the changelog, next to ci: publish the image to its own package and the Python package to PyPI #3's homepage, repository and issues.The README and
MCP.mdinstall from PyPI (uvx kaitencloud-mcp stdio) and fromghcr.io/kaitencloud/kaiten-mcp:0.2, a tag ci: publish the image to its own package and the Python package to PyPI #3's rules produce, instead of the repository. Building from a checkout stays as the third way.CHANGELOG.mdstarts at 0.2.0.MCP.md's troubleshooting says what a client actually receives:401 [ValidateToken.Invalid]from each tool call, not a401from/mcp: the server forwards the credential without checking it;Kaiten API error (403 Forbidden) [Auth.MissingScope], with the scope named.The console labels are Service Accounts and Generate Token.
It replaces #5, which duplicated #3's rename, lockfile and publishing.
Why?
Without the first two changes, the release #3 publishes would report a wrong version and would not start with the command its own package name suggests.
Testing
0.0.0, and the package provides nokaitencloud-mcpcommand.uvx --from ./dist/kaitencloud_mcp-0.2.0-py3-none-any.whl kaitencloud-mcp --helpand the same withkaiten-mcpboth answer;0.2.0.uvx uv@0.9.1 lock --checkpasses: the lockfile ci: publish the image to its own package and the Python package to PyPI #3 relocked stays valid, since a console script is not part of it.uv run ruff check .,uv run ruff format --check .,uv run pytest: 56 passed.task quickstartof kaiten main, through an MCP client:uv run pytest -m e2e: 5 passed;read:*token gets403 [Auth.MissingScope]from a write tool, and an invalid token gets401 [ValidateToken.Invalid];kaiten_deletepreviews untilconfirm=true;Checklist
CONTRIBUTING.md.Signed-off-byline.🤖 Generated with Claude Code · ✅ Tested and approved by Alex (@Alexkuva), maintainer