Get started
One config file.One command to stay current.
Published on PyPI. Python 3.11+. MIT licensed. No index server, no embedding model, no tuning pass — and nothing leaves the machine.
Install
Four commands to a governed estate.
- 01
shelfmark initWrite a starter config.toml — and when the default root misses, init sweeps for the folders that do hold documents. One keypress fixes the config.
- 02
shelfmark refreshBuild + rights + prune + assertions, incrementally — a couple of seconds over a ~30k-file tree.
- 03
claude mcp add shelfmark -s user -- shelfmark-mcpConnect it. Any client that speaks local MCP can point at the shelfmark-mcp command.
- 04
shelfmark review --applyOptional, worth five minutes: a few questions about your own folders, and rights stop being UNKNOWN.
Wire it in
Any MCP-capable agent.
One command with Claude Code —
claude mcp add shelfmark -s user -- shelfmark-mcp
— or add shelfmark-mcp to any
client that speaks the protocol.
{
"mcpServers": {
"shelfmark": {
"command": "shelfmark-mcp"
}
}
} The surface
Five tools. Nothing to tune.
No chunk sizes, no embedding model to pick, no query language to learn. The sophistication lives in the engine; the surface stays small.
corpus_stats() The census: counts, sizes, roots — and it volunteers its own freshness.
browse_folder() Answers “what do I have here” without handing back a query builder.
search_docs() Full-text search over the catalogue, built to survive hyphenated identifiers.
search_emails() The same governed discovery over ingested mail archives.
get_file() One document’s record, fetched when the agent decides it is worth opening.