-
Notifications
You must be signed in to change notification settings - Fork 150
feat: add experimental UV runtime support in manifest v0.4 #158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
domdomegg
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, although I worry this means that mcpb is no longer self-contained i.e. it depends on other UV dependencies which may not be available to install etc. which breaks one of the guarantees that I think makes mcpb quite good.
| Four server types are supported: | ||
|
|
||
| - **`node`**: Node.js server with bundled dependencies | ||
| - **`python`**: Python server with bundled dependencies |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we have wording that raw python support may be removed and steer people to uv?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For now, I'm going to mark uv as experimental in case this ends up being the wrong call (for whatever reason, e.g. mcp sdk no longer requires built dependencies?) and we want to backtrack to a bundled approach. Will update if/when we formalize!
@domdomegg the main issue we're running into is that python MCPBs include pydantic - which is a dependency of the MCP python sdk - and this requires the exact python version to exist on the user's machine that the mcpb was built with. There's essentially no good path for fully self-contained python MCPBs with that dependency in place Long shot but: is there any chance this package is an unnecessary dependency or might suitable replacements exist? It sounds like pydantic v1 had a pure-python mode but that version no longer seems to be supported |
3163e3b to
342ad0f
Compare
Add UV as a new server type for Python extensions that use UV runtime
for dependency management instead of bundling dependencies.
Schema changes (v0.4):
- Add "uv" to server.type enum
- Make mcp_config optional (not needed for UV type)
- UV extensions rely on pyproject.toml for dependencies
Documentation:
- Add UV runtime section to MANIFEST.md explaining benefits and usage
- Update README.md to recommend UV runtime for Python
- Add complete hello-world-uv example
Benefits of UV runtime:
- Cross-platform support (Windows/macOS/Linux, Intel/ARM)
- Small bundle size (~100 KB vs 5-10 MB)
- Handles compiled dependencies portably
- No user Python installation required
Example manifest:
{
"manifest_version": "0.4",
"server": {
"type": "uv",
"entry_point": "src/server.py"
}
}
Co-authored-by: Joan <joan@anthropic.com>
342ad0f to
d90365e
Compare
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add UV as a new server type for Python extensions that use UV runtime for dependency management instead of bundling dependencies.
Schema changes (v0.4):
Motivation and Context
How Has This Been Tested?
Breaking Changes
Types of changes
Checklist
Additional context