Open Index

Tools & Infrastructure 💻 Python ⚖️ MIT 🟢 Actively maintained
106 stars

Open Index is a tool for building domain-specific, structured data as a searchable context graph that agents can operate on. It solves the problem of keeping domain knowledge accurate and current for specialized AI agents. It is for developers building agents for domains like support, sales, infrastructure, or any custom domain.

✨ Key features

  • Define custom doc_types with schemas and relationships.
  • Store entities with graph edges via related_to.
  • Search with syntactic and semantic fields, per-field boosts.
  • Import entities from JSON, JSONL, CSV with validation.
  • MCP server for agent context with read/write tools.
  • Explorer UI with Map, Analytics, and Jobs tabs.

🎯 Use cases

  • Build a support brain mapping products to issues.
  • Model a sales pipeline with customers and orders.
  • Create an infrastructure brain with services and runbooks.
  • Provide a continuously updated context layer for domain agents.
  • Run connectors to ingest entities from MCP servers.

📦 Installation

🧰 Requirements: Python environment with pip; optional Docker for deployment; no external services required for SQLite backend.

pip install -e '.[all]'          # core + explorer UI + MCP server

For production without Docker:

pip install 'open-index[serve]'                  # add ,opensearch for that backend

🚀 Usage

Try the bundled example (support brain: products, issues, segments, comments)
open-index index --brain examples/support-brain
open-index ui    --brain examples/support-brain      # open the Map tab, pick an anchor
Or start your own brain from scratch
open-index init my-brain
open-index add-doc-type customer --brain my-brain
...add entities under my-brain/entities/**/*.json...
open-index index --brain my-brain
open-index ui    --brain my-brain

❓ FAQ

How do I define a new concept (doc_type) in Open Index?

You can run open-index add-doc-type <name> to scaffold a stub, or manually create a YAML file in doc_types/ with fields and relationships.

What is the difference between storage: file and storage: index?

storage: file means entities are stored as JSON files in git and are the source of truth; storage: index (default) means entities are owned by the search database and not written to files, suitable for high-volume or connector-pulled data.

How can I make Open Index available to a remote agent?

Use open-index serve to expose the MCP context layer over HTTP with bearer-token auth, and get connection details via open-index mcp-config.

Can I import existing data in bulk?

Yes, use open-index import <file> with JSON, JSONL, or CSV; it validates and imports entities, skipping bad rows.

📊 Repository

Stars★ 106
Forks🍴 5
Open issues🐛 0
Last commit🕒 Aug 12, 2026
Created📅 Aug 2026
Language💻 Python
License⚖️ MIT

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.