MCP HubMCP Hub
meilisearch

meilisearch-mcp

by: meilisearch

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

72created 23/12/2024
Visit
Meilisearch
LLM

📌Overview

Purpose: To provide a Model Context Protocol (MCP) server that facilitates interaction with Meilisearch using LLM interfaces.

Overview: The Meilisearch MCP Server enables seamless management and search operations for Meilisearch through a Python implementation, allowing users to efficiently manage indices, documents, and API configurations while benefiting from powerful logging and monitoring capabilities.

Key Features:

  • Index and Document Management: Easily create, list, retrieve, and update indices and documents, streamlining data handling operations.

  • Dynamic Connection Configuration: Change connection settings at runtime to connect to different Meilisearch instances, enhancing flexibility in managing multiple environments.

  • Search Functionality: Execute searches across single or multiple indices with customizable parameters such as filtering and sorting, improving the search experience.

  • Monitoring and Logging Tools: Built-in tools for logging and monitoring server performance, facilitating maintenance and troubleshooting.

  • API Key Management: Create, list, and delete API keys with defined permissions, ensuring secure access control to the server.


Meilisearch MCP Server

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

Features

  • Index and document management
  • Settings configuration and management
  • Task monitoring and API key management
  • Built-in logging and monitoring tools
  • Dynamic connection configuration to switch between Meilisearch instances
  • Smart search across single or multiple indices
  • Python implementation (Typescript integration available)

Installation

# Clone repository
git clone <repository_url>
cd meilisearch-mcp

# Create virtual environment and install
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -e .

Requirements

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

Usage

Environment Variables

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

Dynamic Connection Configuration

The server allows viewing and updating connection settings at runtime:

  • get-connection-settings: View current connection URL and API key status
  • update-connection-settings: Update URL and/or API key

Example usage:

// Get current settings
{
  "name": "get-connection-settings"
}

// Update connection settings
{
  "name": "update-connection-settings",
  "arguments": {
    "url": "http://new-host:7700",
    "api_key": "new-api-key"
  }
}

Search Functionality

Search across one or all indices:

  • search: Search through Meilisearch indices with optional parameters

Example usage:

// Search in a specific index
{
  "name": "search",
  "arguments": {
    "query": "search term",
    "indexUid": "movies",
    "limit": 10
  }
}

// Search across all indices
{
  "name": "search",
  "arguments": {
    "query": "search term",
    "limit": 5,
    "sort": ["releaseDate:desc"]
  }
}

Available search parameters:

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

Running the Server

python -m src.meilisearch_mcp

Usage with Claude Desktop

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

{
  "mcpServers": {
    "meilisearch": {
      "command": "uvx",
      "args": ["-n", "meilisearch-mcp"]
    }
  }
}

Testing with MCP Inspector

npx @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 the connection settings.

Index Management

  • create-index: Create a new index.
  • list-indexes: List all available indexes.
  • get-index-metrics: Get metrics for a specific index.

Document Operations

  • get-documents: Retrieve documents from an index.
  • add-documents: Add or update documents in an index.

Search

  • search: Search across single or multiple indices.

Settings Management

  • get-settings: View current settings for an index.
  • update-settings: Update index settings.

API Key Management

  • get-keys: List all API keys.
  • create-key: Create new API key.
  • delete-key: Delete an API key.

Task Management

  • get-task: Get information about a specific task.
  • get-tasks: List tasks with optional filters.
  • 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 the repository
  2. Create a feature branch
  3. Commit changes
  4. Create a pull request

License

MIT