Open Index
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
open-index index --brain examples/support-brain
open-index ui --brain examples/support-brain # open the Map tab, pick an anchoropen-index init my-brain
open-index add-doc-type customer --brain my-brainopen-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
🤖 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.