Running Locally
Running Locally
By the end of this guide, you will have Indexed running from source and be able to run the CLI, tests, and the MCP server using a local development install.
Prerequisites
- Python 3.10 or later
uv— install withpip install uvorcurl -LsSf https://astral.sh/uv/install.sh | sh- Git
Clone and Install
git clone https://github.com/LennardZuendorf/indexed.git
cd indexed
uv syncuv sync installs all dependencies into a local virtual environment. This takes a minute on the first run while it downloads the embedding model.
If you want the released CLI (not source) for local use, install the published package instead:
uv tool install indexed-shRun the CLI
Use uv run to execute the CLI from the source install:
uv run indexed --helpUsage: indexed [OPTIONS] COMMAND [ARGS]...
Indexed — local-first indexing engine for AI agents.
Options:
--help Show this message and exit.
Commands:
config Manage Indexed configuration.
index Create, search, inspect, update, and delete collections.
mcp Start the MCP server.All normal indexed commands work the same way — prefix them with uv run:
uv run indexed config init
uv run indexed index create files -c test-docs -p ./docs
uv run indexed index search "hello world"Run Tests
uv run pytestTo run a specific test file or module:
uv run pytest tests/test_indexing.py
uv run pytest tests/ -k "search"MCP Client Config for Source Installs
When running from source, the MCP command changes — instead of "command": "indexed", use uv run with --directory pointing at the repository (same pattern as MCP Setup):
{
"mcpServers": {
"indexed": {
"command": "uv",
"args": ["run", "--directory", "/path/to/indexed", "indexed", "mcp", "run"]
}
}
}Replace /path/to/indexed with the absolute path to your cloned repository. This launches the same subprocess as typing uv run --directory /path/to/indexed indexed mcp run in a shell.
Workspace Structure
The repository is organized as a set of packages:
| Package | Description |
|---|---|
indexed-core | Core indexing pipeline: parsing, chunking, embedding, FAISS storage |
indexed-connectors | Files, Jira, and Confluence connector implementations |
indexed-mcp | MCP server implementation (tools, transports, server lifecycle) |
indexed-cli | CLI entrypoint and command definitions |
Each package has its own pyproject.toml. uv sync at the repository root installs all of them into the same virtual environment, linked as editable installs.