Skip to main content
Glama
scmdr

SourceSync.ai MCP Server

by scmdr

hybridSearch

Combine keyword and semantic search to find relevant information by balancing exact matches with contextual understanding. Configure weights to prioritize search types based on your needs.

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
namespaceIdNo
queryYes
topKNo
scoreThresholdNo
filterNo
hybridConfigYes
tenantIdNo
searchTypeNo

Implementation Reference

  • The `hybridSearch` method in the `SourceSyncApiClient` class executes the core tool logic by making a POST request to the `/v1/search/hybrid` endpoint with the provided search parameters, injecting the namespaceId from the client instance.
    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 parameters for the hybridSearch tool, including required query and hybridConfig (with semantic and keyword weights), 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 tool registration for 'hybridSearch', providing description, input schema from HybridSearchSchema, and a wrapper handler that creates a SourceSync client and delegates to 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/scmdr/sourcesyncai-mcp'

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