docs_search, docs_ask, docs_get_example, code_generate) retrieve chunks from a ChromaDB vector index before calling OpenAI. By default HashPilot queries the index it hosts at https://chroma.hash-pilot.app, so you do not need any of this page to use the tools: set OPENAI_API_KEY and you are done.
Self-host when you want the index on your own infrastructure, need to work offline from the hosted instance, or want to add sources of your own.
What you need
Indexing several thousand pages costs OpenAI embedding tokens. Do it once, then re-run when you want fresher content.
1. Run ChromaDB
Start the ChromaDB server with a persistent volume, pinned to a 1.5.x image:/data inside the container. Check that it answers:
docker/chromadb/docker-compose.yml for a local instance, and docker/deploy/ (compose file, Dockerfile.indexer, deploy.sh) for a production host behind Traefik with the indexer running as a container. Put a reverse proxy with authentication in front of any instance that is reachable from the internet, and pass the token to HashPilot with CHROMA_AUTH_TOKEN.
2. Configure the MCP server
Point HashPilot at your instance through theenv block of your MCP configuration:
services.chromadb entry shows the URL in use and whether the heartbeat succeeded.
Optional tuning variables read by the same config: RAG_TOP_K (results per query, default 5), RAG_MIN_SCORE (similarity threshold, default 0.7), RAG_CHUNK_SIZE and RAG_CHUNK_OVERLAP (tokens, used when indexing).
3. Build the index
Clone the repository, install dependencies and create a.env file (the scripts load it with dotenv):
hedera-docs-all collection.
If you do not have Firecrawl, skip
index-all and run the individual scripts; index-docs-repo gives the same documentation coverage without a crawler. Each script prints its chunk count when it finishes.
Check the result with a query through your editor, or run the coverage script:
Keeping it fresh
Re-run the indexers when Hedera releases new documentation.index-network is the cheapest and most time-sensitive (fees and exchange rates); the others change slowly. On a shared host, run them from cron or the deploy.sh helper in docker/deploy/.
Going back to the hosted index
RemoveCHROMA_URL and CHROMA_AUTH_TOKEN from your MCP configuration and restart the editor.