get-faceting
Retrieve the faceting configuration for a specific index on the Meilisearch MCP Server to manage and optimize search filtering and categorization settings.
Instructions
Get the faceting setting
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| indexUid | Yes | Unique identifier of the index |
Implementation Reference
- src/tools/settings-tools.ts:155-163 (handler)Shared handler function executed by the get-faceting tool. It makes an API GET request to `/indexes/${indexUid}/settings/faceting` (where endpoint="faceting" from config) and returns the JSON response or error.async ({ indexUid }) => { try { const response = await apiClient.get(`/indexes/${indexUid}/settings/${endpoint}`); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }], }; } catch (error) { return createErrorResponse(error); }
- src/tools/settings-tools.ts:153-154 (schema)Input schema for the get-faceting tool, requiring a single parameter 'indexUid' of type string.indexUid: z.string().describe("Unique identifier of the index"), },
- src/tools/settings-tools.ts:135-139 (registration)Configuration object in the specificSettingsTools array that specifies the name 'get-faceting', its API endpoint 'faceting', and description. This is used in the subsequent forEach loop to register the tool.{ name: "get-faceting", endpoint: "faceting", description: "Get the faceting setting", },
- src/tools/settings-tools.ts:147-166 (registration)The forEach loop that iterates over specificSettingsTools (including get-faceting config) and registers each tool on the MCP server using server.tool, providing the shared schema and handler.// Create a tool for each specific setting specificSettingsTools.forEach(({ name, endpoint, description }) => { server.tool( name, description, { indexUid: z.string().describe("Unique identifier of the index"), }, async ({ indexUid }) => { try { const response = await apiClient.get(`/indexes/${indexUid}/settings/${endpoint}`); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }], }; } catch (error) { return createErrorResponse(error); } } ); });