facet-search
Search for facet values matching specific criteria in Meilisearch indexes to refine and filter search results.
Instructions
Search for facet values matching specific criteria
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| indexUid | Yes | Unique identifier of the index | |
| facetName | Yes | Name of the facet to search | |
| facetQuery | No | Query to match against facet values | |
| filter | No | Filter to apply to the base search |
Implementation Reference
- src/tools/search-tools.ts:149-175 (registration)Registration of the 'facet-search' MCP tool using server.tool, including description, input schema, and handler function.server.tool( 'facet-search', 'Search for facet values matching specific criteria', { indexUid: z.string().describe('Unique identifier of the index'), facetName: z.string().describe('Name of the facet to search'), facetQuery: z.string().optional().describe('Query to match against facet values'), filter: z.string().optional().describe('Filter to apply to the base search'), }, async ({ indexUid, facetName, facetQuery, filter }) => { try { const params: Record<string, any> = { facetName, }; if (facetQuery !== undefined) params.facetQuery = facetQuery; if (filter) params.filter = filter; const response = await apiClient.post(`/indexes/${indexUid}/facet-search`, params); return { content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }], }; } catch (error) { return createErrorResponse(error); } } );
- src/tools/search-tools.ts:158-174 (handler)Handler function for 'facet-search' tool: constructs parameters and performs POST request to Meilisearch /facet-search endpoint, returns JSON response or error.async ({ indexUid, facetName, facetQuery, filter }) => { try { const params: Record<string, any> = { facetName, }; if (facetQuery !== undefined) params.facetQuery = facetQuery; if (filter) params.filter = filter; const response = await apiClient.post(`/indexes/${indexUid}/facet-search`, params); return { content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }], }; } catch (error) { return createErrorResponse(error); } }
- src/tools/search-tools.ts:152-157 (schema)Zod input schema for 'facet-search' tool parameters: indexUid, facetName, optional facetQuery and filter.{ indexUid: z.string().describe('Unique identifier of the index'), facetName: z.string().describe('Name of the facet to search'), facetQuery: z.string().optional().describe('Query to match against facet values'), filter: z.string().optional().describe('Filter to apply to the base search'), },