Skip to main content
Glama

hybridSearch

Combine keyword and semantic searches with configurable weights to retrieve results balancing exact matches and contextually relevant content, enhancing search precision and relevancy.

Instructions

Performs a combined keyword and semantic search, balancing between exact matches and semantic similarity. Requires hybridConfig with weights for both search types.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filterNo
hybridConfigYes
namespaceIdNo
queryYes
scoreThresholdNo
searchTypeNo
tenantIdNo
topKNo

Implementation Reference

  • Core handler function implementing the hybridSearch logic in the SourceSyncApiClient class. Makes a POST request to the '/v1/search/hybrid' API endpoint with the provided parameters.
    /** * Perform a hybrid search */ public async hybridSearch({ query, topK, scoreThreshold, filter, hybridConfig, searchType, }: Omit< SourceSyncHybridSearchRequest, 'namespaceId' >): Promise<SourceSyncSearchResponse> { return this.client .url('/v1/search/hybrid') .json({ query, namespaceId: this.namespaceId, topK, scoreThreshold, filter, hybridConfig, searchType, } satisfies SourceSyncHybridSearchRequest) .post() .json<SourceSyncSearchResponse>() }
  • Zod schema defining the input validation for the hybridSearch tool, including required query and hybridConfig, optional topK, scoreThreshold, filter, etc.
    export const HybridSearchSchema = z.object({ namespaceId: namespaceIdSchema.optional(), query: z.string(), topK: z.number().optional(), scoreThreshold: z.number().optional(), filter: z .object({ metadata: z.record(z.union([z.string(), z.array(z.string())])).optional(), }) .optional(), hybridConfig: z.object({ semanticWeight: z.number(), keywordWeight: z.number(), }), tenantId: tenantIdSchema, searchType: SearchTypeEnum.optional(), })
  • src/index.ts:602-633 (registration)
    MCP server registration of the 'hybridSearch' tool, including description, input schema from HybridSearchSchema, and handler that creates SourceSync client and calls its hybridSearch method.
    server.tool( 'hybridSearch', 'Performs a combined keyword and semantic search, balancing between exact matches and semantic similarity. Requires hybridConfig with weights for both search types.', HybridSearchSchema.shape, async (params: any) => { return safeApiCall(async () => { const { namespaceId, query, topK, scoreThreshold, filter, hybridConfig, tenantId, searchType, } = params // Create a client with the provided parameters const client = createClient({ namespaceId, tenantId }) // Call the hybridSearch method with the searchType (default to HYBRID if not provided) return await client.hybridSearch({ query, topK, scoreThreshold, filter, hybridConfig, searchType: searchType || SourceSyncSearchType.HYBRID, }) }) }, )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pbteja1998/sourcesyncai-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server