Skip to main content
Glama
OrionPotter

Meilisearch MCP Server

by OrionPotter

get-documents

Retrieve documents from a Meilisearch index using filters, pagination, and field selection to access specific data.

Instructions

Get documents from a Meilisearch index

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
indexUidYesUnique identifier of the index
limitNoMaximum number of documents to return (default: 20)
offsetNoNumber of documents to skip (default: 0)
fieldsNoFields to return in the documents
filterNoFilter query to apply

Implementation Reference

  • Handler function that performs a GET request to retrieve documents from a Meilisearch index using the apiClient, with support for pagination (limit/offset), field selection, and filtering. Returns the response as formatted JSON or an error.
    async ({ indexUid, limit, offset, fields, filter }: GetDocumentsParams) => { try { const response = await apiClient.get(`/indexes/${indexUid}/documents`, { params: { limit, offset, fields: fields?.join(','), filter, }, }); return { content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }], }; } catch (error) { return createErrorResponse(error); } }
  • Zod schema defining the input parameters for the get-documents tool, including required indexUid and optional pagination, fields, and filter parameters.
    { indexUid: z.string().describe('Unique identifier of the index'), limit: z.number().min(1).max(1000).optional().describe('Maximum number of documents to return (default: 20)'), offset: z.number().min(0).optional().describe('Number of documents to skip (default: 0)'), fields: z.array(z.string()).optional().describe('Fields to return in the documents'), filter: z.string().optional().describe('Filter query to apply'), },
  • Direct registration of the 'get-documents' tool on the MCP server, specifying name, description, input schema, and handler function.
    'get-documents', 'Get documents from a Meilisearch index', { indexUid: z.string().describe('Unique identifier of the index'), limit: z.number().min(1).max(1000).optional().describe('Maximum number of documents to return (default: 20)'), offset: z.number().min(0).optional().describe('Number of documents to skip (default: 0)'), fields: z.array(z.string()).optional().describe('Fields to return in the documents'), filter: z.string().optional().describe('Filter query to apply'), }, async ({ indexUid, limit, offset, fields, filter }: GetDocumentsParams) => { try { const response = await apiClient.get(`/indexes/${indexUid}/documents`, { params: { limit, offset, fields: fields?.join(','), filter, }, }); return { content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }], }; } catch (error) { return createErrorResponse(error); } } );
  • src/index.ts:65-65 (registration)
    Invocation of registerDocumentTools during MCP server initialization, which registers the get-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/OrionPotter/iflow-mcp_meilisearch-ts-mcp'

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