io.github.Xvvln/pdf-reader-mcp
PDF Reader
Is the PDF Reader MCP server down? No. Installed with mcp<2, it started and listed its tools on 2026-11-03.
MCP server for extracting text, images, tables, links, annotations, and metadata from PDF files.
needs mcp<2 probed 2026-11-14 · unchanged since 2026-11-03
A plain install of the package stops at the import below. These tool definitions are from a second install with mcp<2, started in a container with the network off, on 2026-11-03.
MCP error -32000: Connection closed ModuleNotFoundError: No module named 'mcp.server.fastmcp'. This is mcp 2.x, where FastMCP was renamed to MCPServer (from mcp
- Run it
- uvx --with 'mcp<2' pdf-insight-mcp@0.2.1 (stdio, probed in a container with the network off)
- Host
- pypi.org
- Reports itself as
- PDF Reader 1.30.0
- Capabilities
- experimental, prompts, resources, tools
- Repository
- https://github.com/Xvvln/pdf-reader-mcp
- Registry
- active, updated 2026-06-11 · registry entry
- Changes
- 2 recorded, reachable in 0 of them. A row is added when the result, the tool count or the cost changes.
Most expensive tools
Estimates with the o200k_base tokenizer.
| Tool | o200k estimate | Share of this server |
|---|---|---|
| read_pdf_as_images | 506 | 16 % |
| read_pdf_as_text | 410 | 13 % |
| extract_pdf_images | 285 | 9 % |
| get_pdf_text_stats | 272 | 9 % |
| search_pdf_text | 256 | 8 % |
Compare this server with others.
More servers
Other registry entries on pypi.org, the ones next to this name; all of them.
- lean-memory io.github.Wuesteon/lean-memory · needs args
- Longhand io.github.Wynelson94/longhand · alive
- SageMath io.github.XBP-Europe/sagemath-mcp · needs args
- protect-context io.github.XJTLUmedia/protect-context · alive
- mcp-for-maya io.github.Xxx91n/mcp-for-maya · alive
- io.github.Yacine-ai-tech/agentkit · crashed on start
- gitpro io.github.Yantrakar/gitpro · crashed on start
- io.github.Yarmoluk/ckg-mcp · needs mcp<2
Servers that mention reader.
- Bureau public reader agency.thebureauoflostcontext/bureau-public · alive
- LatticeNet ai.latticenet/latticenet · needs auth
- ai.smithery/kwp-lab-rss-reader-mcp · needs auth
- void.bible bible.void/reader · alive
- Speed Reader com.archerionlabs/speedread · alive
- com.auto-reader/ocr · alive
- MCPFax Feed Reader com.mcpscores/feed-reader · alive
- dev.charliemorrison/agent-web-reader · alive
History
We add a row when the result changes. A server with no change keeps its last row.
| Probed | Result | Init | Tools | Claude | o200k |
|---|---|---|---|---|---|
| 2026-11-03 08:47 | needs mcp<2 | 1.8 s | 12 | 5.0k | 3.1k |
| 2026-10-20 06:46 | crashed on start |
Badge for the README
The result of the latest probe, the tool count and the token cost. The feed has an entry for every probe that changed them.
A mail when this server changes
Stops answering, comes back, tool set or cost changes. One confirmation mail first, a stop link in every mail.
For the publisher
- The package imports FastMCP from mcp.server.fastmcp. mcp 2.0, the Python SDK of 28 July 2026, renamed FastMCP to MCPServer, and the package asks for mcp with no upper bound, so a plain install (uvx, pip) gets mcp 2.x and the server stops at the import. Installed with mcp<2, it starts and lists its tools. The fix for the publisher: pin mcp<2 in the dependencies, for example mcp>=1.2,<2, and publish a new version, or move to MCPServer as the SDK's migration guide says. Until then, run it with uvx --with 'mcp<2'.
The cause and the fix, with the code before and after: ModuleNotFoundError: No module named 'mcp.server.fastmcp'