Configuration

ShrikeDB loads configuration in deterministic layers. Later layers override earlier layers.

Load Order

1. Built-in defaults
2. Explicit full config (--config or SHRIKEDB_CONFIG), otherwise the first default-path config
3. HA-only overlay from SHRIKEDB_HA_CONFIG or the default HA overlay
4. Environment variable overrides

Full configs may be TOML, YAML, or YML. Partial files are allowed; omitted sections use defaults.

Default Full Config Paths

./shrikedb.toml
./shrikedb.yaml
./shrikedb.yml
./config/shrikedb.toml
./config/shrikedb.yaml
./config/shrikedb.yml
~/.shrikedb/config.yaml
~/.shrikedb/config.yml
~/.shrikedb/config.toml
/etc/shrikedb/shrikedb.toml
/etc/shrikedb/shrikedb.yaml
/etc/shrikedb/shrikedb.yml

Legacy fusiondb.toml locations are still accepted for compatibility.

Minimal YAML

server:
  name: local-dev

network:
  grpc_bind: "127.0.0.1:50251"
  http_bind: "127.0.0.1:8182"
  admin_bind: "127.0.0.1:9190"

storage:
  data_dir: "./data/shrikedb"

Semantic Query REST And MCP

The semantic query compiler lets agents work through typed intents rather than raw Cypher or SPARQL. REST and MCP are enabled by default, but production deployments should still make the setting explicit:

semantic_query:
  enabled: true
  rest_enabled: true
  mcp_enabled: true
  max_limit: 1000
  max_plan_ops: 128
  max_ontology_depth: 16
  default_timeout_ms: 5000
  workflows:
    enabled: true
    max_sessions_per_tenant: 256
    default_ttl_seconds: 3600
    max_evidence_items: 256
    max_answers_per_session: 128
    max_intent_candidates: 8
    max_stages_per_session: 64
    max_join_inputs: 8
    max_stage_payload_bytes: 262144

ShrikeDB does not call an external LLM provider from the server. External MCP clients request XML prompt workflows and submit schema-valid SemanticQueryIntent JSON. The workflow manager is in-process and tenant-scoped. It stores bounded Q&A/probe state, stage history, branches, and joined conversation state for concurrent agentic sessions, but it does not execute data access or bypass the semantic compiler. Conversation state is in-memory TTL state in v1 and is not durable across restart.

Verify the endpoint using the tools/list request in Connect an MCP agent. That read-only call shows the tools and argument schemas exposed by the running server.

HA Overlay Paths

./ha.yaml
./ha.yml
./ha.toml
./config/ha.yaml
./config/ha.yml
./config/ha.toml
~/.shrikedb/ha.yaml
~/.shrikedb/ha.yml
~/.shrikedb/ha.toml
/etc/shrikedb/ha.yaml
/etc/shrikedb/ha.yml
/etc/shrikedb/ha.toml

Use SHRIKEDB_HA_CONFIG=/path/to/ha.yaml to apply an HA overlay even when a full config is supplied.

Important Environment Variables

Variable Purpose

SHRIKEDB_CONFIG

Explicit full config path.

SHRIKEDB_HA_CONFIG

Explicit HA overlay path.

SHRIKEDB_CONFIG_HOME

Alternate config home.

SHRIKEDB_NO_STARTUP_UI

Force quiet startup UI behavior.

SHRIKEDB_CLUSTER_ENABLED

Enable HA mode.

SHRIKEDB_CLUSTER_NODE_ID

Unique node ID.

SHRIKEDB_CLUSTER_NODE_TOKEN

Shared node token for cluster traffic.

SHRIKEDB_CLUSTER_PEERS

Peer list in node=grpc|http|admin;…​ form.

SHRIKEDB_GRAPH_COMPACT_PROPERTY_GRAPH_INDEX

Use compact property-graph index mode for large Cypher/LSQB runs.

SHRIKEDB_SEMANTIC_QUERY_ENABLED

Enable or disable semantic query REST/MCP as a whole.

SHRIKEDB_SEMANTIC_QUERY_REST_ENABLED

Enable or disable /api/v1/semantic/* routes.

SHRIKEDB_SEMANTIC_QUERY_MCP_ENABLED

Enable or disable /api/v1/mcp.

For the full HA environment list, see Configuration And Environment.