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