enquire-mcp API reference - v3.9.0-rc.4
    Preparing search index...

    Interface SearchHybridResponse

    Envelope returned by searchHybrid.

    signals_used tells the agent which rankers actually fired (BM25 needs --persistent-index; embeddings needs build-embeddings). signal_errors surfaces failed-but-attempted rankers so an empty matches[] can be distinguished from "all rankers crashed".

    interface SearchHybridResponse {
        k: number;
        matches: SearchHybridHit[];
        method: "rrf";
        query: string;
        signal_errors?: {
            bm25?: string;
            embeddings?: string;
            reranker?: string;
            tfidf?: string;
        };
        signals_used: ("embeddings" | "bm25" | "tfidf")[];
        total_candidates: number;
    }
    Index

    Properties

    k: number

    RRF constant k (60 per Cormack 2009; documented for transparency).

    matches: SearchHybridHit[]
    method: "rrf"

    Always "rrf" in v3.x — present as a versioned discriminator.

    query: string

    Echo of the input query.

    signal_errors?: {
        bm25?: string;
        embeddings?: string;
        reranker?: string;
        tfidf?: string;
    }

    v2.0.0-beta.2: per-signal failure reasons. Pre-fix, ranker exceptions were silently swallowed (only stderr-logged). The MCP response just showed signals_used: [] with matches: [] — caller couldn't tell "no hits" from "all rankers crashed". Now any catch'ed exception surfaces here as a string so agents can reason about reliability. v2.9.0 added reranker for cross-encoder failure surfacing.

    signals_used: ("embeddings" | "bm25" | "tfidf")[]

    Which rankers contributed to the fused result.

    total_candidates: number