ChunkSilo MCP Server
ChunkSilo is like a local Google for your documents. It uses semantic search — matching by meaning rather than exact keywords — so your LLM can find relevant information across all your files even when the wording differs from your query. Point it at your PDFs, Word docs, Markdown, and text files, and it builds a fully searchable index locally on your machine.
- Runs entirely on your machine — no servers, no infrastructure
- Semantic search + keyword filename matching across PDF, DOCX, DOC, Markdown, and TXT
- Incremental indexing — only reprocesses new or changed files, and never writes inside an indexed directory
- Revision-aware indexing — files that are revisions of one document (
Spec_v2.pdf,.../Rev B/Spec.docx) are grouped and only the newest is indexed; review-comment copies are skipped - Heading-aware results with source links back to the original file, spread across documents instead of one document's every chunk
- Date filtering and recency boosting
- Files indexed from a mounted network share can be presented at the share's own location (an
smb://URI plus the Windows UNC path) - Serves MCP over stdio to a local client, or over streamable-http behind a reverse proxy of your own (oauth2-proxy + KeyCloak walkthrough included)
- Optional Confluence and Jira integrations (supports Cloud and Server/Data Center)
Installation
Option A: Install from PyPI (Recommended)
Requires Python 3.11 or later. Models are downloaded automatically on first run (~250MB). The first run may appear to pause while models download — this is normal.
pip install chunksilo
Confluence and Jira support is included by default — just provide a config file
to enable them. (pip install chunksilo[confluence,jira] still works as an alias
for backward compatibility.)
Then:
- Create a config file at
~/.config/chunksilo/config.yaml(see Configuration) - Build the index:
chunksilo --build-index - Configure your MCP client (see docs/mcp-clients.md)
Option B: Offline Bundle
A self-contained package with pre-downloaded models, ideal for air-gapped environments or systems without Python installed.
Download from the Releases page:
- Download the
chunksilo-vX.Y.Z-manylinux_2_34_x86_64.tar.gzfile - Extract and install:
tar -xzf chunksilo-vX.Y.Z-manylinux_2_34_x86_64.tar.gz
cd chunksilo
./setup.sh
- Edit
config.yamlto set your document directories - Build the index:
./venv/bin/chunksilo --build-index - Configure your MCP client (see docs/mcp-clients.md)
Configuration
ChunkSilo reads one file, config.yaml, taken from --config, else the
CHUNKSILO_CONFIG environment variable, else ./config.yaml, else
~/.config/chunksilo/config.yaml. Every setting is optional and
chunksilo --dump-defaults prints them all with their defaults.
indexing:
directories:
- "./data"
- "/mnt/docs"
retrieval:
rerank_top_k: 5
storage:
storage_dir: "./storage"
model_cache_dir: "./models"
The full reference — per-directory filters, revision handling, retrieval tuning, Confluence and Jira, share locations, the HTTP transport, and what changed for users upgrading from 2.x — is in docs/configuration.md.
The search_docs tool
search_docs answers with the files whose names matched and the individual
chunks that carry the answer, each located by a URI, the page or line it came
from, and its heading path:
{
"matched_files": [
{ "uri": "file:///docs/database-configuration.docx", "unc": null, "score": 0.8432 }
],
"num_matched_files": 1,
"chunks": [
{
"text": "To configure the database connection, set the DATABASE_URL environment variable...",
"score": 0.912,
"location": {
"uri": "file:///docs/setup-guide.pdf",
"unc": null,
"page": 12,
"line": null,
"heading_path": ["Getting Started", "Configuration", "Database"]
}
}
],
"num_chunks": 1,
"query": "how to configure the database",
"retrieval_time": "0.42s"
}
See docs/tools.md for every field, including how files on a mounted network share are presented.
Documentation
- docs/configuration.md — the config file, where it is discovered, and a reference for every setting.
- docs/cli.md —
chunksiloandchunksilo-mcpoptions, including--check-filesfor explaining why a file is or is not indexed. - docs/tools.md — the
search_docsresult shape. - docs/mcp-clients.md — client setup for Claude Code, Claude Desktop, Cline, Roo Code and opencode, over stdio or HTTP.
- docs/reverse-proxy.md — sharing an instance behind an authenticating reverse proxy, with oauth2-proxy and KeyCloak group-based access.
- docs/troubleshooting.md — indexing surprises, network mounts, offline mode and more.
License
Metadata
Release files for chunksilo 3.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| chunksilo-3.0.0.tar.gz | 149.0 kB | With provenance | Details for chunksilo-3.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| chunksilo-3.0.0-py3-none-any.whl | Python 3 | none | any | Details for chunksilo-3.0.0-py3-none-any.whl |
Total release size: 233.9 kB
Release files / chunksilo-3.0.0.tar.gz
| Download URL | chunksilo-3.0.0.tar.gz |
|---|---|
| Size | 149.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8239799691239662d4d0f43eec938dc8b600c1b7376619bf5180e92ad1c555f2
|
|
BLAKE2b-256 checksum How to use checksums |
07726241fa37d156dc36d0f7e1b631990beefaf3ea4391a43a300069ad1ab362
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / chunksilo-3.0.0-py3-none-any.whl
| Download URL | chunksilo-3.0.0-py3-none-any.whl |
|---|---|
| Size | 84.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7214d925db0f73b120fe767fb6bcd49a1d65e7f6a83c3aa39421adc60b279893
|
|
BLAKE2b-256 checksum How to use checksums |
2b71226e70752b23f87f2fb384236f622216a3852223a7a4229a2d32f6e2f538
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logSecurity for chunksilo 3.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for chunksilo-3.0.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.