Skip to content

Claude Desktop MCP extension (tooluniverse 1.0.16) fails to start due to yanked fitz dep — please cut a new extension release once #516 lands #518

Description

@DrGilbert2

Summary

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 (fitzpymupdf), 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.

(From ~/Library/Logs/Claude/mcp-server-ToolUniverse.log.)

Root cause

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:

  1. In the extension's pyproject.toml: "fitz>=0.0.1.dev2""pymupdf>=1.24.0"
  2. 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.

Related: #516

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions