MCP Now
Meilisearch

Meilisearch

by meilisearch
GitHub

Interact & query with Meilisearch (Full-text & semantic search API)

index
search
task
key
meilisearch

Meilisearch MCP Server

A Model Context Protocol (MCP) server for interacting with Meilisearch through LLM interfaces like Claude.

Meilisearch Server MCP server

Features

Installation

1# Clone repository 2git clone <repository_url> 3cd meilisearch-mcp 4 5# Create virtual environment and install 6uv venv 7source .venv/bin/activate # On Windows: .venv\Scripts\activate 8uv pip install -e .

Requirements

  • Python ≥ 3.9
  • Running Meilisearch instance
  • Node.js (for testing with MCP Inspector)

Usage

Environment Variables

1MEILI_HTTP_ADDR=http://localhost:7700 # Default Meilisearch URL 2MEILI_MASTER_KEY=your_master_key # Optional: Default Meilisearch API key

Dynamic Connection Configuration

The server provides tools to view and update connection settings at runtime:

  • get-connection-settings: View current connection URL and API key status
  • update-connection-settings: Update URL and/or API key to connect to a different Meilisearch instance

Example usage through MCP:

1// Get current settings 2{ 3 "name": "get-connection-settings" 4} 5 6// Update connection settings 7{ 8 "name": "update-connection-settings", 9 "arguments": { 10 "url": "http://new-host:7700", 11 "api_key": "new-api-key" 12 } 13}

Search Functionality

The server provides a flexible search tool that can search across one or all indices:

  • search: Search through Meilisearch indices with optional parameters

Example usage through MCP:

1// Search in a specific index 2{ 3 "name": "search", 4 "arguments": { 5 "query": "search term", 6 "indexUid": "movies", 7 "limit": 10 8 } 9} 10 11// Search across all indices 12{ 13 "name": "search", 14 "arguments": { 15 "query": "search term", 16 "limit": 5, 17 "sort": ["releaseDate:desc"] 18 } 19}

Available search parameters:

  • query: The search query (required)
  • indexUid: Specific index to search in (optional)
  • limit: Maximum number of results per index (optional, default: 20)
  • offset: Number of results to skip (optional, default: 0)
  • filter: Filter expression (optional)
  • sort: Sorting rules (optional)

Running the Server

1python -m src.meilisearch_mcp

Usage with Claude Desktop

To use this with Claude Desktop, add the following to your claude_desktop_config.json:

1{ 2 "mcpServers": { 3 "meilisearch": { 4 "command": "uvx", 5 "args": ["-n", "meilisearch-mcp"] 6 } 7 } 8}

Testing with MCP Inspector

1npx @modelcontextprotocol/inspector python -m src.meilisearch_mcp

Available Tools

Connection Management

  • get-connection-settings: View current Meilisearch connection URL and API key status
  • update-connection-settings: Update URL and/or API key to connect to a different instance

Index Management

  • create-index: Create a new index with optional primary key
  • list-indexes: List all available indexes
  • get-index-metrics: Get detailed metrics for a specific index

Document Operations

  • get-documents: Retrieve documents from an index with pagination
  • add-documents: Add or update documents in an index
  • search: Flexible search across single or multiple indices with filtering and sorting options

Settings Management

  • get-settings: View current settings for an index
  • update-settings: Update index settings (ranking, faceting, etc.)

API Key Management

  • get-keys: List all API keys
  • create-key: Create new API key with specific permissions
  • delete-key: Delete an existing API key

Task Management

  • get-task: Get information about a specific task
  • get-tasks: List tasks with optional filters:
    • limit: Maximum number of tasks to return
    • from: Number of tasks to skip
    • reverse: Sort order of tasks
    • batchUids: Filter by batch UIDs
    • uids: Filter by task UIDs
    • canceledBy: Filter by cancellation source
    • types: Filter by task types
    • statuses: Filter by task statuses
    • indexUids: Filter by index UIDs
    • afterEnqueuedAt/beforeEnqueuedAt: Filter by enqueue time
    • afterStartedAt/beforeStartedAt: Filter by start time
    • afterFinishedAt/beforeFinishedAt: Filter by finish time
  • cancel-tasks: Cancel pending or enqueued tasks
  • delete-tasks: Delete completed tasks

System Monitoring

  • health-check: Basic health check
  • get-health-status: Comprehensive health status
  • get-version: Get Meilisearch version information
  • get-stats: Get database statistics
  • get-system-info: Get system-level information

Contributing

  1. Fork repository
  2. Create feature branch
  3. Commit changes
  4. Create pull request

License

MIT