trackmcp
Back to directory
meilisearch

meilisearch-mcp

View on GitHub

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

152 stars PythonAI & Machine Learning Updated Oct 26, 2025
agentmcpmeilisearchmodelcontextprotocolragsearchsearch-api

Documentation

Meilisearch MCP Server

|

|

|

โšก Connect any LLM to Meilisearch and supercharge your AI with lightning-fast search capabilities! ๐Ÿ”

๐Ÿค” What is this?

The Meilisearch MCP Server is a Model Context Protocol server that enables any MCP-compatible client (including Claude, OpenAI agents, and other LLMs) to interact with Meilisearch. This stdio-based server allows AI assistants to manage search indices, perform searches, and handle your data through natural conversation.

Why use this?

  • ๐Ÿค– Universal Compatibility - Works with any MCP client, not just Claude
  • ๐Ÿ—ฃ๏ธ Natural Language Control - Manage Meilisearch through conversation with any LLM
  • ๐Ÿš€ Zero Learning Curve - No need to learn Meilisearch's API
  • ๐Ÿ”ง Full Feature Access - All Meilisearch capabilities at your fingertips
  • ๐Ÿ”„ Dynamic Connections - Switch between Meilisearch instances on the fly
  • ๐Ÿ“ก stdio Transport - Currently uses stdio; native Meilisearch MCP support coming soon!

โœจ Key Features

  • ๐Ÿ“Š Index & Document Management - Create, update, and manage search indices
  • ๐Ÿ” Smart Search - Search across single or multiple indices with advanced filtering
  • โš™๏ธ Settings Configuration - Fine-tune search relevancy and performance
  • ๐Ÿ“ˆ Task Monitoring - Track indexing progress and system operations
  • ๐Ÿ” API Key Management - Secure access control
  • ๐Ÿฅ Health Monitoring - Keep tabs on your Meilisearch instance
  • ๐Ÿงฑ Structured Tool Output - Every data-returning tool provides `structuredContent` alongside text, per the latest MCP specification
  • ๐Ÿ”€ Modern MCP Stack - Built on the official MCP Python SDK v2 (spec 2026-07-28), backwards compatible with older MCP clients
  • ๐Ÿ Python Implementation - TypeScript version also available

๐Ÿš€ Quick Start

Get up and running in just 3 steps!

1๏ธโƒฃ Install the package

bash
# Using pip
pip install meilisearch-mcp

# Or using uvx (recommended)
uvx -n meilisearch-mcp

2๏ธโƒฃ Configure Claude Desktop

Add this to your `claude_desktop_config.json`:

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

3๏ธโƒฃ Start Meilisearch

bash
# Using Docker (recommended)
docker run -d -p 7700:7700 getmeili/meilisearch:v1.28

# Or using Homebrew
brew install meilisearch
meilisearch

That's it! Now you can ask your AI assistant to search and manage your Meilisearch data! ๐ŸŽ‰

๐Ÿ“š Examples

๐Ÿ’ฌ Talk to your AI assistant naturally:

code
You: "Create a new index called 'products' with 'id' as the primary key"
AI: I'll create that index for you... โœ“ Index 'products' created successfully!

You: "Add some products to the index"
AI: I'll add those products... โœ“ Added 5 documents to 'products' index

You: "Search for products under $50 with 'electronics' in the category"
AI: I'll search for those products... Found 12 matching products!

๐Ÿ” Advanced Search Example:

code
You: "Search across all my indices for 'machine learning' and sort by date"
AI: Searching across all indices... Found 47 results from 3 indices:
- 'blog_posts': 23 articles about ML
- 'documentation': 15 technical guides
- 'tutorials': 9 hands-on tutorials

๐Ÿ”ง Installation

Prerequisites

  • Python โ‰ฅ 3.10
  • Running Meilisearch instance
  • MCP-compatible client (Claude Desktop, OpenAI agents, etc.)

From PyPI

bash
pip install meilisearch-mcp

From Source (for development)

bash
# Clone repository
git clone https://github.com/meilisearch/meilisearch-mcp.git
cd meilisearch-mcp

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

Using Docker

Perfect for containerized environments like n8n workflows!

From Docker Hub

bash
# Pull the latest image
docker pull getmeili/meilisearch-mcp:latest

# Or a specific version
docker pull getmeili/meilisearch-mcp:0.5.0

# Run the container
docker run -it \
  -e MEILI_HTTP_ADDR=http://your-meilisearch:7700 \
  -e MEILI_MASTER_KEY=your-master-key \
  getmeili/meilisearch-mcp:latest

Build from Source

bash
# Build your own image
docker build -t meilisearch-mcp .
docker run -it \
  -e MEILI_HTTP_ADDR=http://your-meilisearch:7700 \
  -e MEILI_MASTER_KEY=your-master-key \
  meilisearch-mcp

Integration with n8n

For n8n workflows, you can use the Docker image directly in your setup:

yaml
meilisearch-mcp:
  image: getmeili/meilisearch-mcp:latest
  environment:
    - MEILI_HTTP_ADDR=http://meilisearch:7700
    - MEILI_MASTER_KEY=masterKey

๐Ÿ› ๏ธ What Can You Do?

๐Ÿ”— Connection Management

  • View current connection settings
  • Switch between Meilisearch instances dynamically
  • Update API keys on the fly

๐Ÿ“ Index Operations

  • Create new indices with custom primary keys
  • List all indices with stats
  • Delete indices and their data
  • Get detailed index metrics

๐Ÿ“„ Document Management

  • Add or update documents
  • Retrieve documents with pagination
  • Bulk import data

๐Ÿ” Search Capabilities

  • Search with filters, sorting, and facets
  • Multi-index search
  • Semantic search with vectors
  • Hybrid search (keyword + semantic)

โš™๏ธ Settings & Configuration

  • Configure ranking rules
  • Set up faceting and filtering
  • Manage searchable attributes
  • Customize typo tolerance

๐Ÿ” Security

  • Create and manage API keys
  • Set granular permissions
  • Monitor key usage

โš ๏ธ Note: While you can add and update hosts and API keys directly in chat for convenience, this approach is primarily designed for development use cases (like connecting to multiple instances on the fly). It does not follow best MCP security practices and should not be used in production environments without proper safeguards.

๐Ÿ“Š Monitoring & Health

  • Health checks
  • System statistics
  • Task monitoring
  • Version information

๐ŸŒ Environment Variables

Configure default connection settings:

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

๐Ÿ’ป Development

Setting Up Development Environment

1. Start Meilisearch:

bash
docker run -d -p 7700:7700 getmeili/meilisearch:v1.28

2. Install Development Dependencies:

bash
uv pip install -r requirements-dev.txt

3. Run Tests:

bash
python -m pytest tests/ -v

4. Format Code:

bash
black src/ tests/

Testing with MCP Inspector

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

๐Ÿค Community & Support

We'd love to hear from you! Here's how to get help and connect:

๐Ÿค— Contributing

We welcome contributions! Here's how to get started:

1. Fork the repository

2. Create your feature branch (`git checkout -b feature/amazing-feature`)

3. Write tests for your changes

4. Make your changes and run tests

5. Format your code with `black`

6. Commit your changes (`git commit -m 'Add amazing feature'`)

7. Push to your branch (`git push origin feature/amazing-feature`)

8. Open a Pull Request

See our Contributing Guidelines for more details.

๐Ÿ“ฆ Release Process

This project uses automated versioning and publishing. When the version in `pyproject.toml` changes on the `main` branch, the package is automatically published to PyPI.

See the Release Process section for detailed instructions.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Meilisearch is an open-source search engine that offers a delightful search experience.

Learn more about Meilisearch at


๐Ÿ“– Full Documentation

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
  • `delete-index`: Delete an existing index and all its documents
  • `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
  • `cancel-tasks`: Cancel pending or enqueued 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

Development Setup

Prerequisites

1. Start Meilisearch server:

bash
# Using Docker (recommended for development)
   docker run -d -p 7700:7700 getmeili/meilisearch:v1.28

   # Or using brew (macOS)
   brew install meilisearch
   meilisearch

   # Or download from https://github.com/meilisearch/meilisearch/releases

2. Install development tools:

bash
# Install uv for Python package management
   pip install uv

   # Install Node.js for MCP Inspector testing
   # Visit https://nodejs.org/ or use your package manager

Running Tests

This project includes comprehensive integration tests that verify MCP tool functionality:

bash
# Run all tests
python -m pytest tests/ -v

# Run specific test file
python -m pytest tests/test_mcp_client.py -v

# Run tests with coverage report
python -m pytest --cov=src tests/

# Run tests in watch mode (requires pytest-watch)
pytest-watch tests/

Important: Tests require a running Meilisearch instance on `http://localhost:7700`.

Code Quality

bash
# Format code with Black
black src/ tests/

# Run type checking (if mypy is configured)
mypy src/

# Lint code (if flake8 is configured)
flake8 src/ tests/

Contributing Guidelines

1. Fork and clone the repository

2. Set up development environment following the Development Setup section above

3. Create a feature branch from `main`

4. Write tests first if adding new functionality (Test-Driven Development)

5. Run tests locally to ensure all tests pass before committing

6. Format code with Black and ensure code quality

7. Commit changes with descriptive commit messages

8. Push to your fork and create a pull request

Development Workflow

bash
# Create feature branch
git checkout -b feature/your-feature-name

# Make your changes, write tests first
# Edit files...

# Run tests to ensure everything works
python -m pytest tests/ -v

# Format code
black src/ tests/

# Commit and push
git add .
git commit -m "Add feature description"
git push origin feature/your-feature-name

Testing Guidelines

  • All new features should include tests
  • Tests should pass before submitting PRs
  • Use descriptive test names and clear assertions
  • Test both success and error cases
  • Ensure Meilisearch is running before running tests

Release Process

This project uses automated versioning and publishing to PyPI. The release process is designed to be simple and automated.

How Releases Work

1. Automated Publishing: When the version number in `pyproject.toml` changes on the `main` branch, a GitHub Action automatically:

    2. Version Detection: The workflow compares the current version in `pyproject.toml` with the previous commit to detect changes

    3. PyPI Publishing: Uses PyPA's official publish action with trusted publishing (no manual API keys needed)

    Creating a New Release

    To create a new release, follow these steps:

    1. Determine Version Number

    Follow Semantic Versioning (MAJOR.MINOR.PATCH):

    • PATCH (e.g., 0.4.0 โ†’ 0.4.1): Bug fixes, documentation updates, minor improvements
    • MINOR (e.g., 0.4.0 โ†’ 0.5.0): New features, new MCP tools, significant enhancements
    • MAJOR (e.g., 0.5.0 โ†’ 1.0.0): Breaking changes, major API changes
    2. Update Version and Create PR
    bash
    # 1. Create a branch from latest main
    git checkout main
    git pull origin main
    git checkout -b release/v0.5.0
    
    # 2. Update version in pyproject.toml
    # Edit the version = "0.4.0" line to your new version
    
    # 3. Commit and push
    git add pyproject.toml
    git commit -m "Bump version to 0.5.0"
    git push origin release/v0.5.0
    
    # 4. Create PR and get it reviewed/merged
    gh pr create --title "Release v0.5.0" --body "Bump version for release"
    3. Merge to Main

    Once the PR is approved and merged to `main`, the GitHub Action will automatically:

    1. Detect the version change

    2. Build the package

    3. Publish to PyPI at https://pypi.org/p/meilisearch-mcp

    4. Make the new version available via `pip install meilisearch-mcp`

    4. Verify Release

    After merging, verify the release:

    bash
    # Check GitHub Action status
    gh run list --workflow=publish.yml
    
    # Verify on PyPI (may take a few minutes)
    pip index versions meilisearch-mcp
    
    # Test installation of new version
    pip install --upgrade meilisearch-mcp

    Release Workflow File

    The automated release is handled by `.github/workflows/publish.yml`, which:

    • Triggers on pushes to `main` branch
    • Checks if `pyproject.toml` version changed
    • Uses Python 3.10 and official build tools
    • Publishes using trusted publishing (no API keys required)
    • Provides verbose output for debugging

    Troubleshooting Releases

    Release didn't trigger: Check that the version in `pyproject.toml` actually changed between commits

    Build failed: Check the GitHub Actions logs for Python package build errors

    PyPI publish failed: Verify the package name and that trusted publishing is configured properly

    Version conflicts: Ensure the new version number hasn't been used before on PyPI

    Development vs Production Versions

    • Development: Install from source using `pip install -e .`
    • Production: Install from PyPI using `pip install meilisearch-mcp`
    • Specific version: Install using `pip install meilisearch-mcp==0.5.0`

    Frequently asked questions

    What is meilisearch-mcp?

    meilisearch-mcp is A Model Context Protocol (MCP) server for interacting with Meilisearch through LLM interfaces. Python-based implementation.

    How do I install meilisearch-mcp?

    Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

    Is meilisearch-mcp open source?

    Yes โ€” it is hosted on GitHub at https://github.com/meilisearch/meilisearch-mcp and has 152 stars.

    Related MCP tools

    assafelovicgpt-researcher

    An LLM agent that conducts deep research (local and web) on any given topic and generates a long report with citations. Built for the Model Context Protocol to

    24,026 Python
    agentaiautomation+8
    Upsonicupsonic

    Agent Framework For Fintech for the Model Context Protocol. Enhance AI assistants with powerful integrations. Python-based implementation.

    7,670 Python
    agentagent-frameworkclaude+7
    invariantlabs-aimcp-scan

    Constrain, log and scan your MCP connections for security vulnerabilities. Python-based implementation. Trusted by 1200+ developers.

    1,239 Python
    agentaimcp+2
    zhayujiechatgpt-on-wechat

    ๅŸบไบŽๅคงๆจกๅž‹ๆญๅปบ็š„่Šๅคฉๆœบๅ™จไบบ๏ผŒๅŒๆ—ถๆ”ฏๆŒ ๅพฎไฟกๅ…ฌไผ—ๅทใ€ไผไธšๅพฎไฟกๅบ”็”จใ€้ฃžไนฆใ€้’‰้’‰ ็ญ‰ๆŽฅๅ…ฅ๏ผŒๅฏ้€‰ๆ‹ฉChatGPT/Claude/DeepSeek/ๆ–‡ๅฟƒไธ€่จ€/่ฎฏ้ฃžๆ˜Ÿ็ซ/้€šไน‰ๅƒ้—ฎ/ Gemini/GLM-4/Kimi/LinkAI๏ผŒ่ƒฝๅค„็†ๆ–‡ๆœฌใ€่ฏญ้Ÿณๅ’Œๅ›พ็‰‡๏ผŒ่ฎฟ้—ฎๆ“ไฝœ็ณป็ปŸๅ’Œไบ’่”็ฝ‘๏ผŒๆ”ฏๆŒๅŸบไบŽ่‡ชๆœ‰็Ÿฅ่ฏ†ๅบ“่ฟ›่กŒๅฎšๅˆถไผไธšๆ™บ่ƒฝๅฎขๆœใ€‚

    39,573 Python
    aiai-agentchatgpt+17
    1Panel-devmaxkb

    ๐Ÿ”ฅ MaxKB is an open-source platform for building enterprise-grade agents. MaxKB ๆ˜ฏๅผบๅคงๆ˜“็”จ็š„ๅผ€ๆบไผไธš็บงๆ™บ่ƒฝไฝ“ๅนณๅฐใ€‚ for the Model Context Protocol. Enhance AI assistants with po

    19,062 Python
    agentagentic-aichatbot+11
    RockChinQlangbot

    ๐Ÿคฉ Easy-to-use global IM bot platform designed for LLM era / ็ฎ€ๅ•ๆ˜“็”จ็š„ๅคงๆจกๅž‹ๅณๆ—ถ้€šไฟกๆœบๅ™จไบบๅผ€ๅ‘ๅนณๅฐ โšก๏ธ Bots for QQ / QQ้ข‘้“ / Discord / LINE / WeChat(ๅพฎไฟก, ไผไธšๅพฎไฟก)/ Telegram / ้ฃžไนฆ / ้’‰...

    13,909 Python
    agentaicoze+17

    Run your own MCP server? See who uses it and what to fix.

    Measure it with TrackMCP