This server provides a Model Context Protocol (MCP) interface for Meilisearch, enabling seamless integration with LLM tools like Claude. You can:
Manage Connections: View and update Meilisearch URL/API key settings
Search Functionality: Perform flexible searches across indices with filtering, sorting, limiting, and offset
Index Management: Create, list, and retrieve metrics for indices
Document Operations: Add, retrieve, and manage documents
Settings Management: View and update index settings like ranking and faceting
API Key Management: Create, list, and delete API keys with specific permissions
Task Management: Monitor, cancel, and delete tasks with detailed filtering options
System Monitoring: Check health, view version information, and get database statistics
Provides a Model Context Protocol (MCP) server for interacting with Meilisearch through LLM interfaces, supporting index and document management, settings configuration, task monitoring, API key management, and search capabilities across single or multiple indices.
🤔 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!
Related MCP server: Documentation MCP Server
✨ 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
🐍 Python Implementation - TypeScript version also available
🚀 Quick Start
Get up and running in just 3 steps!
1️⃣ Install the package
2️⃣ Configure Claude Desktop
Add this to your claude_desktop_config.json:
3️⃣ Start 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:
🔍 Advanced Search Example:
🔧 Installation
Prerequisites
Python ≥ 3.9
Running Meilisearch instance
MCP-compatible client (Claude Desktop, OpenAI agents, etc.)
From PyPI
From Source (for development)
Using Docker
Perfect for containerized environments like n8n workflows!
From Docker Hub
Build from Source
Integration with n8n
For n8n workflows, you can use the Docker image directly in your setup:
🛠️ What Can You Do?
View current connection settings
Switch between Meilisearch instances dynamically
Update API keys on the fly
Create new indices with custom primary keys
List all indices with stats
Delete indices and their data
Get detailed index metrics
Add or update documents
Retrieve documents with pagination
Bulk import data
Search with filters, sorting, and facets
Multi-index search
Semantic search with vectors
Hybrid search (keyword + semantic)
Configure ranking rules
Set up faceting and filtering
Manage searchable attributes
Customize typo tolerance
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.
Health checks
System statistics
Task monitoring
Version information
🌍 Environment Variables
Configure default connection settings:
💻 Development
Setting Up Development Environment
Start Meilisearch:
docker run -d -p 7700:7700 getmeili/meilisearch:v1.6Install Development Dependencies:
uv pip install -r requirements-dev.txtRun Tests:
python -m pytest tests/ -vFormat Code:
black src/ tests/
Testing with MCP Inspector
🤝 Community & Support
We'd love to hear from you! Here's how to get help and connect:
💬 Join our Discord - Chat with the community
🐛 Report Issues - Found a bug? Let us know!
💡 Feature Requests - Have an idea? We're listening!
📖 Meilisearch Docs - Learn more about Meilisearch
🤗 Contributing
We welcome contributions! Here's how to get started:
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Write tests for your changes
Make your changes and run tests
Format your code with
blackCommit your changes (
git commit -m 'Add amazing feature')Push to your branch (
git push origin feature/amazing-feature)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.
Available Tools
Connection Management
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 instance
Index Management
create-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 index
Document Operations
get-documents: Retrieve documents from an index with paginationadd-documents: Add or update documents in an index
Search
search: Flexible search across single or multiple indices with filtering and sorting options
Settings Management
get-settings: View current settings for an indexupdate-settings: Update index settings (ranking, faceting, etc.)
API Key Management
get-keys: List all API keyscreate-key: Create new API key with specific permissionsdelete-key: Delete an existing API key
Task Management
get-task: Get information about a specific taskget-tasks: List tasks with optional filterscancel-tasks: Cancel pending or enqueued tasksdelete-tasks: Delete completed tasks
System Monitoring
health-check: Basic health checkget-health-status: Comprehensive health statusget-version: Get Meilisearch version informationget-stats: Get database statisticsget-system-info: Get system-level information
Development Setup
Prerequisites
Start 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/releasesInstall 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
Running Tests
This project includes comprehensive integration tests that verify MCP tool functionality:
Important: Tests require a running Meilisearch instance on http://localhost:7700.
Code Quality
Contributing Guidelines
Fork and clone the repository
Set up development environment following the Development Setup section above
Create a feature branch from
mainWrite tests first if adding new functionality (Test-Driven Development)
Run tests locally to ensure all tests pass before committing
Format code with Black and ensure code quality
Commit changes with descriptive commit messages
Push to your fork and create a pull request
Development Workflow
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
Automated Publishing: When the version number in
pyproject.tomlchanges on themainbranch, a GitHub Action automatically:Builds the Python package
Publishes it to PyPI using trusted publishing
Creates a new release on GitHub
Version Detection: The workflow compares the current version in
pyproject.tomlwith the previous commit to detect changesPyPI 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
3. Merge to Main
Once the PR is approved and merged to main, the GitHub Action will automatically:
Detect the version change
Build the package
Publish to PyPI at https://pypi.org/p/meilisearch-mcp
Make the new version available via
pip install meilisearch-mcp
4. Verify Release
After merging, verify the release:
Release Workflow File
The automated release is handled by .github/workflows/publish.yml, which:
Triggers on pushes to
mainbranchChecks if
pyproject.tomlversion changedUses 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-mcpSpecific version: Install using
pip install meilisearch-mcp==0.5.0