Skip to content

Install and run

passageway runs as a small server on your machine. You give it connectors, it indexes what they report, and an MCP client such as Claude Code asks it for passages.

1. Install

uv tool install \
  --with 'passageway-connector-wikipedia @ git+https://github.com/Marceltov/passageway#subdirectory=connectors/wikipedia' \
  git+https://github.com/Marceltov/passageway

This installs passageway and the Wikipedia connector into one environment. A connector is a separate package, so add --with for every bundled connector you want to run.

2. The embedding model

passageway embeds text with the multilingual e5-small model in ONNX form. Put model.onnx and sentencepiece.bpe.model in the model directory (<data dir>/models/e5-small by default, or PASSAGEWAY_MODEL_DIR). Until the embedder work adds an automatic download, take both files from trilium-recall's scripts/fetch-model.sh.

3. Say what to index

Create ~/.config/passageway/passageway.toml with one [[connector]] per source. This one indexes a small corner of English Wikipedia:

[[connector]]
name = "lighthouses"
command = ["/path/to/python", "-m", "passageway_connector_wikipedia"]
env = { LANGUAGE = "en", CATEGORIES = "Lighthouses in Germany", CATEGORY_DEPTH = "0" }

A connector runs with an empty environment, so python on your PATH is usually not the interpreter that has passageway installed. Use the tool's own interpreter, $(uv tool dir)/passageway/bin/python, which is the environment from step 1. See Configuration for every setting and the Wikipedia connector for its options.

4. Start it

PASSAGEWAY_LOGIN_PASSWORD=choose-one passageway

The first start indexes every source, which can take a few minutes. Watch it with:

curl http://127.0.0.1:8082/health

"status": "ok" means every source is built, "starting" means one still is, and "degraded" means a source is failing. Add -H 'Authorization: Bearer choose-one' to the request to see why; a missing connector package, a wrong command path and an unreachable service all show up there.

5. Connect a client

Point an MCP client at http://127.0.0.1:8082/mcp and authenticate with Authorization: Bearer choose-one. The server offers one tool, recall: ask it a question and it returns up to three short passages with links, or says that nothing relevant is indexed.

For remote access with a login page instead of a static token, set PASSAGEWAY_BASE_URL; see How it works.