Skip to main content

SimBrain

简体中文 | English

SimBrain incrementally ingests local documents into Elasticsearch and provides MCP tools and CLIs for ingestion, project inspection, progress monitoring, and retrieval.

Quick start

SimBrain defaults to local Ollama at http://localhost:11434 with the bge-m3 model. Start Ollama and install the model first:

ollama pull bge-m3

Every usage mode requires Elasticsearch. At minimum, configure its endpoint and authentication:

ES_URL=https://your-es-host:9200
ES_API_KEY=your_es_api_key

See .env.example for all fields and defaults. When running from source, copy it to .env:

cp .env.example .env

MINERU_API_TOKEN is optional. When configured, MinerU is preferred for PDF parsing; otherwise SimBrain falls back to pypdf.

Supported document formats: PDF, DOCX, TXT, TEXT, Markdown, CSV, and XLSX.

Use with MCP

SimBrain exposes an MCP server over standard input/output (stdio). Once published on PyPI, start it with:

uvx --from simbrain simbrain-mcp

The server exposes these tools:

Tool Arguments Purpose
simbrain-ingest input_dir, output_dir, project Incremental ingestion
simbrain-status output_dir List all projects
simbrain-status-realtime output_dir, project Monitor ingestion progress
simbrain-search question, project, top_k Hybrid vector and keyword retrieval

Codex configuration

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

[mcp_servers.simbrain]
command = "uvx"
args = ["--from", "simbrain", "simbrain-mcp"]

[mcp_servers.simbrain.env]
ES_URL = "https://your-es-host:9200"
ES_API_KEY = "your_es_api_key"
MINERU_API_TOKEN = "your_mineru_token"

Or register it from the command line:

codex mcp add simbrain \
  --env ES_URL=https://your-es-host:9200 \
  --env ES_API_KEY=your_es_api_key \
  --env MINERU_API_TOKEN=your_mineru_token \
  -- uvx --from simbrain simbrain-mcp

Claude Desktop configuration

Add this entry under mcpServers in claude_desktop_config.json:

{
  "simbrain": {
    "command": "uvx",
    "args": ["--from", "simbrain", "simbrain-mcp"],
    "env": {
      "ES_URL": "https://your-es-host:9200",
      "ES_API_KEY": "your_es_api_key",
      "MINERU_API_TOKEN": "your_mineru_token"
    }
  }
}

Remove MINERU_API_TOKEN if MinerU is not needed. All remaining settings use the defaults from .env.example. To use an OpenAI-compatible embedding service, set EMBEDDING_PROVIDER, EMBEDDING_URL, EMBEDDING_API_KEY, and EMBEDDING_MODEL together.

Use with the CLI

The examples below use the PyPI package. When developing this repository, replace uvx --from simbrain with uv run.

Incremental ingestion

uvx --from simbrain simbrain-ingest \
  --input-dir ./docs \
  --output-dir ./output \
  --project my-knowledge-base

Files with the same name are updated, unchanged files are skipped, and historical files omitted from the current input are retained.

List all projects

uvx --from simbrain simbrain-status --output-dir ./output

Monitor ingestion progress

uvx --from simbrain simbrain-status \
  --output-dir ./output \
  --project my-knowledge-base

Search a project

uvx --from simbrain simbrain-search \
  --question "How do I configure access permissions?" \
  --project my-knowledge-base \
  --top-k 10

top-k must be between 1 and 100. Results contain source chunks and metadata; SimBrain does not generate an LLM answer.

Output and tests

Successful CLI calls return JSON. The progress command emits JSON Lines when its state changes.

Run tests:

uv run pytest -q

To include the Elasticsearch integration test:

SIMBRAIN_TEST_ES_URL=http://localhost:9200 uv run pytest -q -m integration

Metadata

Release files for simbrain 0.1.1

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

Source distribution (sdist)

Source distribution for simbrain 0.1.1
File Size Uploaded
simbrain-0.1.1.tar.gz 155.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simbrain 0.1.1
File Interpreter ABI Platform
simbrain-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 193.2 kB

Release files / simbrain-0.1.1.tar.gz

Download URL simbrain-0.1.1.tar.gz
Size 155.7 kB
Tags Source
SHA-256 checksum
How to use checksums
839e2ffa254a01182740598ee05021b71b4f35105694e728494a9da90a67fd60
BLAKE2b-256 checksum
How to use checksums
f44e91e0e76289f7f69dfbe594daa1eb7db89bb6ae12d3413bf19e02ee829f55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","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 / simbrain-0.1.1-py3-none-any.whl

Download URL simbrain-0.1.1-py3-none-any.whl
Size 37.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
89172da0d29a3e1e118acfb8968154e5b5e391bac7ca1eb07226545088c77966
BLAKE2b-256 checksum
How to use checksums
127e3eff8c16152a852183bba7e151a893cd51c7fa12665607926398ab0439e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","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.1.1 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