by meilisearch
Provides a Model Context Protocol server that lets LLMs manage Meilisearch indices, add or retrieve documents, and execute fast, natural‑language searches.
Enables any MCP‑compatible client (Claude, OpenAI agents, etc.) to control a Meilisearch instance through conversational commands. The server runs as a stdio process, translating natural‑language intents into Meilisearch API calls.
pip install meilisearch-mcp # or uvx -n meilisearch-mcp (recommended)
{
"mcpServers": {
"meilisearch": {
"command": "uvx",
"args": ["-n", "meilisearch-mcp"]
}
}
}
docker run -d -p 7700:7700 getmeili/meilisearch:v1.6
uvx -n meilisearch-mcp automatically).docker pull getmeili/meilisearch-mcp:latest
docker run -it -e MEILI_HTTP_ADDR=http://your-meilisearch:7700 \
-e MEILI_MASTER_KEY=your-master-key getmeili/meilisearch-mcp:latest
Q: Which Python version is required? A: Python 3.9 or newer.
Q: Can I run the server without Docker? A: Yes, install the package via pip/uvx and launch it directly; Docker is only a convenience for isolated environments.
Q: How does authentication work?
A: Set MEILI_MASTER_KEY (or a scoped key) as an environment variable, or update the connection settings via MCP commands.
Q: Is there support for vector (semantic) search?
A: Yes, the server exposes a search tool that can include vector queries when the underlying Meilisearch instance is configured for hybrid search.
Q: What transport does the server use? A: Currently stdio; future native Meilisearch MCP support is planned.
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?
Get up and running in just 3 steps!
# Using pip
pip install meilisearch-mcp
# Or using uvx (recommended)
uvx -n meilisearch-mcp
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"meilisearch": {
"command": "uvx",
"args": ["-n", "meilisearch-mcp"]
}
}
}
# Using Docker (recommended)
docker run -d -p 7700:7700 getmeili/meilisearch:v1.6
# Or using Homebrew
brew install meilisearch
meilisearch
That's it! Now you can ask your AI assistant to search and manage your Meilisearch data! 🎉
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!
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
pip install meilisearch-mcp
# 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 .
Perfect for containerized environments like n8n workflows!
# 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 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
For n8n workflows, you can use the Docker image directly in your setup:
meilisearch-mcp:
image: getmeili/meilisearch-mcp:latest
environment:
- MEILI_HTTP_ADDR=http://meilisearch:7700
- MEILI_MASTER_KEY=masterKey
Configure default connection settings:
MEILI_HTTP_ADDR=http://localhost:7700 # Default Meilisearch URL
MEILI_MASTER_KEY=your_master_key # Optional: Default API key
Start Meilisearch:
docker run -d -p 7700:7700 getmeili/meilisearch:v1.6
Install Development Dependencies:
uv pip install -r requirements-dev.txt
Run Tests:
python -m pytest tests/ -v
Format Code:
black src/ tests/
npx @modelcontextprotocol/inspector python -m src.meilisearch_mcp
We'd love to hear from you! Here's how to get help and connect:
We welcome contributions! Here's how to get started:
git checkout -b feature/amazing-feature)blackgit commit -m 'Add amazing feature')git push origin feature/amazing-feature)See our Contributing Guidelines for more details.
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.
This project is licensed under the MIT License - see the LICENSE file for details.
get-connection-settings: View current Meilisearch connection URL and API key statusupdate-connection-settings: Update URL and/or API key to connect to a different instancecreate-index: Create a new index with optional primary keylist-indexes: List all available indexesdelete-index: Delete an existing index and all its documentsget-index-metrics: Get detailed metrics for a specific indexget-documents: Retrieve documents from an index with paginationadd-documents: Add or update documents in an indexsearch: Flexible search across single or multiple indices with filtering and sorting optionsget-settings: View current settings for an indexupdate-settings: Update index settings (ranking, faceting, etc.)get-keys: List all API keyscreate-key: Create new API key with specific permissionsdelete-key: Delete an existing API keyget-task: Get information about a specific taskget-tasks: List tasks with optional filterscancel-tasks: Cancel pending or enqueued tasksdelete-tasks: Delete completed taskshealth-check: Basic health checkget-health-status: Comprehensive health statusget-version: Get Meilisearch version informationget-stats: Get database statisticsget-system-info: Get system-level informationStart Meilisearch server:
# Using Docker (recommended for development)
docker run -d -p 7700:7700 getmeili/meilisearch:v1.6
# Or using brew (macOS)
brew install meilisearch
meilisearch
# Or download from https://github.com/meilisearch/meilisearch/releases
Install development tools:
# 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
This project includes comprehensive integration tests that verify MCP tool functionality:
# 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.
# 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/
main# 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
This project uses automated versioning and publishing to PyPI. The release process is designed to be simple and automated.
Automated Publishing: When the version number in pyproject.toml changes on the main branch, a GitHub Action automatically:
Version Detection: The workflow compares the current version in pyproject.toml with the previous commit to detect changes
PyPI Publishing: Uses PyPA's official publish action with trusted publishing (no manual API keys needed)
To create a new release, follow these steps:
1. Determine Version Number
Follow Semantic Versioning (MAJOR.MINOR.PATCH):
2. Update Version and Create PR
# 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:
pip install meilisearch-mcp4. Verify Release
After merging, verify the release:
# 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
The automated release is handled by .github/workflows/publish.yml, which:
main branchpyproject.toml version changedRelease 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
pip install -e .pip install meilisearch-mcppip install meilisearch-mcp==0.5.0Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by exa-labs
Provides real-time web search capabilities to AI assistants via a Model Context Protocol server, enabling safe and controlled access to the Exa AI Search API.
by perplexityai
Enables Claude and other MCP‑compatible applications to perform real‑time web searches through the Perplexity (Sonar) API without leaving the MCP ecosystem.
by MicrosoftDocs
Provides semantic search and fetch capabilities for Microsoft official documentation, returning content in markdown format via a lightweight streamable HTTP transport for AI agents and development tools.
by elastic
Enables natural‑language interaction with Elasticsearch indices via the Model Context Protocol, exposing tools for listing indices, fetching mappings, performing searches, running ES|QL queries, and retrieving shard information.
by graphlit
Enables integration between MCP clients and the Graphlit platform, providing ingestion, extraction, retrieval, and RAG capabilities across a wide range of data sources and connectors.
by mamertofabian
Fast cross‑platform file searching leveraging the Everything SDK on Windows, Spotlight on macOS, and locate/plocate on Linux.
by cr7258
Provides Elasticsearch and OpenSearch interaction via Model Context Protocol, enabling document search, index management, cluster monitoring, and alias operations.
by kagisearch
Provides web search and video summarization capabilities through the Model Context Protocol, enabling AI assistants like Claude to perform queries and summarizations.
by liuyoshio
Provides natural‑language search and recommendation for Model Context Protocol servers, delivering rich metadata and real‑time updates.