Skip to main content
Glama
devlimelabs

Meilisearch MCP Server

by devlimelabs

delete-documents

Remove multiple documents by their IDs from a Meilisearch index to manage data and maintain search relevance.

Instructions

Delete multiple documents by their IDs from a Meilisearch index

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
indexUidYesUnique identifier of the index
documentIdsYesJSON array of document IDs to delete

Implementation Reference

  • Handler function that parses the JSON string of document IDs, validates it's an array, and sends a POST request to Meilisearch's delete-batch endpoint.
    async ({ indexUid, documentIds }: DeleteDocumentsParams) => {
      try {
        // Parse the document IDs string to ensure it's valid JSON
        const parsedDocumentIds = JSON.parse(documentIds);
        
        // Ensure document IDs is an array
        if (!Array.isArray(parsedDocumentIds)) {
          return {
            isError: true,
            content: [{ type: 'text', text: 'Document IDs must be a JSON array' }],
          };
        }
        
        const response = await apiClient.post(`/indexes/${indexUid}/documents/delete-batch`, parsedDocumentIds);
        return {
          content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }],
        };
      } catch (error) {
        return createErrorResponse(error);
      }
    }
  • Zod input schema defining parameters: indexUid (string) and documentIds (string representing JSON array).
    {
      indexUid: z.string().describe('Unique identifier of the index'),
      documentIds: z.string().describe('JSON array of document IDs to delete'),
    },
  • MCP server.tool registration for 'delete-documents', including name, description, input schema, and inline handler function.
    server.tool(
      'delete-documents',
      'Delete multiple documents by their IDs from a Meilisearch index',
      {
        indexUid: z.string().describe('Unique identifier of the index'),
        documentIds: z.string().describe('JSON array of document IDs to delete'),
      },
      async ({ indexUid, documentIds }: DeleteDocumentsParams) => {
        try {
          // Parse the document IDs string to ensure it's valid JSON
          const parsedDocumentIds = JSON.parse(documentIds);
          
          // Ensure document IDs is an array
          if (!Array.isArray(parsedDocumentIds)) {
            return {
              isError: true,
              content: [{ type: 'text', text: 'Document IDs must be a JSON array' }],
            };
          }
          
          const response = await apiClient.post(`/indexes/${indexUid}/documents/delete-batch`, parsedDocumentIds);
          return {
            content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }],
          };
        } catch (error) {
          return createErrorResponse(error);
        }
      }
    );
  • TypeScript interface defining parameters for the delete-documents tool handler.
    interface DeleteDocumentsParams {
      indexUid: string;
      documentIds: string;
    }
  • src/index.ts:65-65 (registration)
    Invocation of registerDocumentTools which registers the delete-documents tool among others.
    registerDocumentTools(server);

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/devlimelabs/meilisearch-ts-mcp'

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