You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Claude Desktop extension bundle (tooluniverse v1.0.16, internal package tooluniverse-mcp-native 1.0.15) no longer starts: its bundled pyproject.toml declares fitz>=0.0.1.dev2, and since that version was yanked from PyPI, uv cannot resolve the environment. The server process exits before completing the MCP handshake, and Claude Desktop reports the extension as disconnected.
PR #516 fixes this in the main repo (fitz → pymupdf), but the Desktop extension ships its own pyproject.toml/uv.lock, so installed extensions remain broken until a new bundle version is published. Filing this so the extension release isn't missed after #516 merges.
Environment
macOS (Apple Silicon), Claude Desktop, ToolUniverse extension v1.0.16
uv 0.11.24, Python 3.12 (as pinned by the extension manifest)
What happens
Claude Desktop launches the server via uv run --directory <ext> --with . --python 3.12 src/run_stdio.py, which fails immediately:
× No solution found when resolving `--with` dependencies:
╰─▶ Because only fitz==0.0.0 is available and
tooluniverse-mcp-native==1.0.15 depends on fitz>=0.0.1.dev2, we can
conclude that tooluniverse-mcp-native==1.0.15 cannot be used.
And because only tooluniverse-mcp-native==1.0.15 is available and you
require tooluniverse-mcp-native, we can conclude that your requirements
are unsatisfiable.
[ToolUniverse] [info] Server transport closed unexpectedly, this is likely
due to the process exiting early.
[ToolUniverse] [error] Server disconnected.
Same as #516: the PyPI package named fitz is an unrelated placeholder, never PyMuPDF; its 0.0.1.dev2 release was yanked, leaving only 0.0.0, which makes the requirement unsatisfiable. The extension bundle's pyproject.toml (line 35) carries the same dependency as the main repo.
Verified fix (tested locally on the installed extension)
Editing the installed bundle confirms the swap works end-to-end:
In the extension's pyproject.toml: "fitz>=0.0.1.dev2" → "pymupdf>=1.24.0"
uv lock (also sheds the stray transitive packages the placeholder fitz pulled in)
After that, the environment builds (PyMuPDF 1.28.2), the server starts and loads 775 tools, exposes the 5 compact-mode discovery tools, and passes an MCP Inspector initialize + tools/list check. PyMuPDF's import fitz compatibility alias satisfies existing imports (with a deprecation warning — the import pymupdf as fitz change from Fix the fitz dependency: CI is blocked repo-wide, and the declared package was never PyMuPDF #516 applies to the bundle source too).
Ask
Publish an updated extension bundle (e.g. 1.0.17) with the corrected dependency once #516 merges, so auto-update repairs installed extensions. Locally patched installs will be overwritten by that update, which is fine — as long as the new bundle carries the fix.
Summary
The Claude Desktop extension bundle (
tooluniversev1.0.16, internal packagetooluniverse-mcp-native1.0.15) no longer starts: its bundledpyproject.tomldeclaresfitz>=0.0.1.dev2, and since that version was yanked from PyPI,uvcannot resolve the environment. The server process exits before completing the MCP handshake, and Claude Desktop reports the extension as disconnected.PR #516 fixes this in the main repo (
fitz→pymupdf), but the Desktop extension ships its ownpyproject.toml/uv.lock, so installed extensions remain broken until a new bundle version is published. Filing this so the extension release isn't missed after #516 merges.Environment
What happens
Claude Desktop launches the server via
uv run --directory <ext> --with . --python 3.12 src/run_stdio.py, which fails immediately:(From
~/Library/Logs/Claude/mcp-server-ToolUniverse.log.)Root cause
Same as #516: the PyPI package named
fitzis an unrelated placeholder, never PyMuPDF; its0.0.1.dev2release was yanked, leaving only0.0.0, which makes the requirement unsatisfiable. The extension bundle'spyproject.toml(line 35) carries the same dependency as the main repo.Verified fix (tested locally on the installed extension)
Editing the installed bundle confirms the swap works end-to-end:
pyproject.toml:"fitz>=0.0.1.dev2"→"pymupdf>=1.24.0"uv lock(also sheds the stray transitive packages the placeholderfitzpulled in)After that, the environment builds (PyMuPDF 1.28.2), the server starts and loads 775 tools, exposes the 5 compact-mode discovery tools, and passes an MCP Inspector
initialize+tools/listcheck. PyMuPDF'simport fitzcompatibility alias satisfies existing imports (with a deprecation warning — theimport pymupdf as fitzchange from Fix the fitz dependency: CI is blocked repo-wide, and the declared package was never PyMuPDF #516 applies to the bundle source too).Ask
Publish an updated extension bundle (e.g. 1.0.17) with the corrected dependency once #516 merges, so auto-update repairs installed extensions. Locally patched installs will be overwritten by that update, which is fine — as long as the new bundle carries the fix.
Related: #516