Meilisearch MCP Server
# Meilisearch MCP Server
[](https://smithery.ai/server/@devlimelabs/meilisearch-ts-mcp)
A Model Context Protocol (MCP) server implementation for Meilisearch, enabling AI assistants to interact with Meilisearch through a standardized interface.
## Features
- **Index Management**: Create, update, and delete indexes
- **Document Management**: Add, update, and delete documents
- **Search Capabilities**: Perform searches with various parameters and filters
- **Settings Management**: Configure index settings
- **Task Management**: Monitor and manage asynchronous tasks
- **System Operations**: Health checks, version information, and statistics
- **Vector Search**: Experimental vector search capabilities
## Installation
### Installing via Smithery
To install Meilisearch MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@devlimelabs/meilisearch-ts-mcp):
```bash
npx -y @smithery/cli install @devlimelabs/meilisearch-ts-mcp --client claude
```
### Manual Installation
1. Clone the repository:
```bash
git clone https://github.com/devlimelabs/meilisearch-ts-mcp.git
cd meilisearch-ts-mcp
```
2. Install dependencies:
```bash
npm install
```
3. Create a `.env` file based on the example:
```bash
cp .env.example .env
```
4. Edit the `.env` file to configure your Meilisearch connection.
## Docker Setup
The Meilisearch MCP Server can be run in a Docker container for easier deployment and isolation.
### Using Docker Compose
The easiest way to get started with Docker is to use Docker Compose:
```bash
# Start the Meilisearch MCP Server
docker-compose up -d
# View logs
docker-compose logs -f
# Stop the server
docker-compose down
```
### Building and Running the Docker Image Manually
You can also build and run the Docker image manually:
```bash
# Build the Docker image
docker build -t meilisearch-ts-mcp .
# Run the container
docker run -p 3000:3000 --env-file .env meilisearch-ts-mcp
```
## Development Setup
For developers who want to contribute to the Meilisearch MCP Server, we provide a convenient setup script:
```bash
# Clone the repository
git clone https://github.com/devlimelabs-ts-mcp/meilisearch-ts-mcp.git
cd meilisearch-ts-mcp
# Run the development setup script
./scripts/setup-dev.sh
```
The setup script will:
1. Create a `.env` file from `.env.example` if it doesn't exist
2. Install dependencies
3. Build the project
4. Run tests to ensure everything is working correctly
After running the setup script, you can start the server in development mode:
```bash
npm run dev
```
## Usage
### Building the Project
```bash
npm run build
```
### Running the Server
```bash
npm start
```
### Development Mode
```bash
npm run dev
```
## Claude Desktop Integration
The Meilisearch MCP Server can be integrated with Claude for Desktop, allowing you to interact with your Meilisearch instance directly through Claude.
### Automated Setup
We provide a setup script that automatically configures Claude for Desktop to work with the Meilisearch MCP Server:
```bash
# First build the project
npm run build
# Then run the setup script
node scripts/claude-desktop-setup.js
```
The script will:
1. Detect your operating system and locate the Claude for Desktop configuration file
2. Read your Meilisearch configuration from the `.env` file
3. Generate the necessary configuration for Claude for Desktop
4. Provide instructions for updating your Claude for Desktop configuration
### Manual Setup
If you prefer to manually configure Claude for Desktop:
1. Locate your Claude for Desktop configuration file:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
- **Linux**: `~/.config/Claude/claude_desktop_config.json`
2. Add the following configuration (adjust paths as needed):
```json
{
"mcpServers": {
"meilisearch": {
"command": "node",
"args": ["/path/to/meilisearch-ts-mcp/dist/index.js"],
"env": {
"MEILISEARCH_HOST": "http://localhost:7700",
"MEILISEARCH_API_KEY": "your-api-key"
}
}
}
}
```
3. Restart Claude for Desktop to apply the changes.
4. In Claude, type: "I want to use the Meilisearch MCP server" to activate the integration.
## Cursor Integration
The Meilisearch MCP Server can also be integrated with [Cursor](https://cursor.com), an AI-powered code editor.
### Setting Up MCP in Cursor
1. Install and set up the Meilisearch MCP Server:
```bash
git clone https://github.com/devlimelabs/meilisearch-ts-mcp.git
cd meilisearch-ts-mcp
npm install
npm run build
```
2. Start the MCP server:
```bash
npm start
```
3. In Cursor, open the Command Palette (Cmd/Ctrl+Shift+P) and search for "MCP: Connect to MCP Server".
4. Select "Connect to a local MCP server" and enter the following details:
- **Name**: Meilisearch
- **Command**: node
- **Arguments**: /absolute/path/to/meilisearch-ts-mcp/dist/index.js
- **Environment Variables**:
```
MEILISEARCH_HOST=http://localhost:7700
MEILISEARCH_API_KEY=your-api-key
```
5. Click "Connect" to establish the connection.
6. You can now interact with your Meilisearch instance through Cursor by typing commands like "Search my Meilisearch index for documents about..."
## Available Tools
The Meilisearch MCP Server provides the following tools:
### Index Tools
- `create-index`: Create a new index
- `get-index`: Get information about an index
- `list-indexes`: List all indexes
- `update-index`: Update an index
- `delete-index`: Delete an index
### Document Tools
- `add-documents`: Add documents to an index
- `get-document`: Get a document by ID
- `get-documents`: Get multiple documents
- `update-documents`: Update documents
- `delete-document`: Delete a document by ID
- `delete-documents`: Delete multiple documents
- `delete-all-documents`: Delete all documents in an index
### Search Tools
- `search`: Search for documents
- `multi-search`: Perform multiple searches in a single request
### Settings Tools
- `get-settings`: Get index settings
- `update-settings`: Update index settings
- `reset-settings`: Reset index settings to default
- Various specific settings tools (synonyms, stop words, ranking rules, etc.)
### Task Tools
- `list-tasks`: List tasks with optional filtering
- `get-task`: Get information about a specific task
- `cancel-tasks`: Cancel tasks based on provided filters
- `wait-for-task`: Wait for a specific task to complete
### System Tools
- `health`: Check the health status of the Meilisearch server
- `version`: Get version information
- `info`: Get system information
- `stats`: Get statistics about indexes
### Vector Tools (Experimental)
- `enable-vector-search`: Enable vector search
- `get-experimental-features`: Get experimental features status
- `update-embedders`: Configure embedders
- `get-embedders`: Get embedders configuration
- `reset-embedders`: Reset embedders configuration
- `vector-search`: Perform vector search
## License
MIT
TDQS
Scored across 68 tools
Most tools have distinct purposes targeting specific resources and actions, such as 'add-documents' vs. 'update-documents' or 'get-document' vs. 'delete-document'. However, there is some overlap between 'list-tasks' and 'get-tasks', which could cause confusion as they both retrieve task information with filtering, though descriptions help clarify their differences.
Tool names follow a highly consistent verb-noun pattern throughout, using kebab-case (e.g., 'create-index', 'get-settings', 'reset-ranking-rules'). This predictability makes it easy for agents to understand and select tools based on their naming conventions without ambiguity.
With 68 tools, the count is excessive for the Meilisearch domain, making the surface heavy and potentially overwhelming. While Meilisearch has many features, this high number suggests over-fragmentation, such as separate tools for each setting reset (e.g., 'reset-displayed-attributes', 'reset-searchable-attributes'), which could be consolidated.
The tool set provides comprehensive coverage of Meilisearch's core functionalities, including CRUD operations for documents and indexes, task management, search capabilities (standard, facet, vector, multi-search), settings management (get, update, reset for all attributes), and system operations (health, info, version). No obvious gaps are present for the domain.