Skip to main content

bibliome-mcp

an MCP (Model Context Protocol) server that lets any MCP client (claude code, claude desktop, codex) search and ask questions over your local Bibliome PDF library. it imports Bibliome's own on-device search/RAG engine straight out of your installed Bibliome.app, so whatever you indexed in the Mac app is exactly what this exposes.

requirements (read this first)

this connector doesn't vendor a search engine and doesn't index anything. it reads what's already there.

you must already have:

  1. Bibliome.app installed on this mac (Mac App Store, bundle id com.langberg.mypdflibrarian). it must live in /Applications/Bibliome.app (or ~/Applications/Bibliome.app).
  2. at least one library already indexed in Bibliome. the app builds embeddings.db itself; this connector only reads from it. if you've never opened Bibliome and indexed PDFs, there's nothing for it to search.

if both are true, search_library and library_status work with no extra configuration. ask_library needs one more thing (see below).

install

pip install bibliome-mcp

this pulls in fastembed + numpy (the same lightweight, no-torch embedding stack Bibliome's own engine uses). they run search/rerank in this process, not inside the app. no Apple Silicon requirement for search.

for ask_library (RAG answers), also install one answer provider:

# on-device via Apple MLX (Apple Silicon only, matches Bibliome's own default)
pip install "bibliome-mcp[ask-mlx]"

# or: a local Ollama daemon instead (works on Intel too)
pip install "bibliome-mcp[ask-ollama]"
export PDF_ASK_PROVIDER=ollama   # must also be set at runtime, not just installed

without either, ask_library still returns a graceful "couldn't start the local model" message with supporting citations instead of erroring. search_library is unaffected either way.

then bibliome-mcp is on your PATH and ready to be wired into a client.

setup

(a) claude code

claude mcp add bibliome-library -s user -- bibliome-mcp

(b) claude desktop

add this to claude_desktop_config.json (under the mcpServers block):

{
  "mcpServers": {
    "bibliome-library": {
      "command": "bibliome-mcp"
    }
  }
}

(c) codex

add this to ~/.codex/config.toml:

[mcp_servers.bibliome-library]
command = "bibliome-mcp"

tools

  • search_library(q, k=20, folder=None): semantic search over your local PDF library; returns up to k matching passages.

  • ask_library(q, k=5, folder=None): ask a question, get an on-device RAG answer grounded in your PDFs (needs ask-mlx or ask-ollama, see Install).

    folder (optional, an absolute path inside your library) scopes either tool to the documents under that folder only. it is there for a library that holds notes as well as sources, so a client can ask "what have I written down about X" separately from "what do the documents say about X". without it the whole library is searched; there is no exclude (Bibliome's engine only has an allow-list). a missing or empty folder is an error, never a silent fall-back to searching everything.

  • library_status(): reports whether Bibliome.app and an embeddings.db were found, plus a live engine health check. run this first when something looks wrong.

troubleshooting

"Bibliome not found" / bibliome_found: false

Bibliome.app must be at /Applications/Bibliome.app or ~/Applications/Bibliome.app. if it's elsewhere, point at it explicitly:

export BIBLIOME_APP_DIR="/Volumes/External/Bibliome.app"

no results / db_found: false

open Bibliome.app and index at least one PDF library. the app builds embeddings.db itself. if your embeddings.db is in a non-default location, point at it:

export BIBLIOME_DB_PATH="/path/to/embeddings.db"

how it works

this connector does not reimplement search and does not vendor any of Bibliome's proprietary code. it imports it directly from your installed copy, in-process, on the first tool call: it adds Bibliome.app/Contents/Resources/pdf_organizer (plain Python source, shipped inside every install) to sys.path and calls the engine's own Index/dispatch directly, pointed at your embeddings.db.

this is deliberately not a subprocess bridge to Bibliome's bundled interpreter. that binary carries the macOS sandbox entitlement com.apple.security.inherit, meaning it will only run as a child of the Bibliome.app process itself; any external launcher (including this one) gets killed by the sandbox before it starts. running the plain-source engine in-process, with fastembed/numpy installed in this environment, sidesteps that entirely.

because it's literally Bibliome's own engine code answering, search and RAG results always match what the app itself would produce.

privacy

everything stays local. no network calls, no telemetry, no data leaving your machine. search and ask both run fully on-device.

Metadata

Release files for bibliome-mcp 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bibliome-mcp 0.3.0
File Size Uploaded
bibliome_mcp-0.3.0.tar.gz 14.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bibliome-mcp 0.3.0
File Interpreter ABI Platform
bibliome_mcp-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.6 kB

Release files / bibliome_mcp-0.3.0.tar.gz

Download URL bibliome_mcp-0.3.0.tar.gz
Size 14.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c51127c0808ce28aea592d9d6cea081100385fd0556d088b0752c769ad5aedfa
BLAKE2b-256 checksum
How to use checksums
a05a5bd43d75abe904bbf25c1672119fdea28f0b4174aa31e5d253ee1fe4c6ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / bibliome_mcp-0.3.0-py3-none-any.whl

Download URL bibliome_mcp-0.3.0-py3-none-any.whl
Size 9.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f0d20a414be2bec8685df8c06960414eae186ce14caa48c3f1fb344567e1757
BLAKE2b-256 checksum
How to use checksums
6aa654bd232424b4c04714d19371b2c1e49643435d06bdcddfcf3fb4a3220b2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page