Meilisearch MCP Server
oficialInteraja e consulte com Meilisearch (API de busca de texto completo e semântica)
Documentação
Servidor MCP Meilisearch
Meilisearch | Meilisearch Cloud | Documentação | Discord
⚡ Conecte qualquer LLM ao Meilisearch e potencialize sua IA com capacidades de busca ultrarrápidas! 🔍
🤔 O que é isso?
O Servidor MCP Meilisearch é um servidor Model Context Protocol que permite que qualquer cliente compatível com MCP (incluindo Claude, agentes OpenAI e outros LLMs) interaja com o Meilisearch. Este servidor baseado em stdio permite que assistentes de IA gerenciem índices de busca, realizem pesquisas e manipulem seus dados através de conversas naturais.
Por que usar isso?
- 🤖 Compatibilidade Universal - Funciona com qualquer cliente MCP, não apenas o Claude
- 🗣️ Controle por Linguagem Natural - Gerencie o Meilisearch através de conversas com qualquer LLM
- 🚀 Curva de Aprendizado Zero - Não precisa aprender a API do Meilisearch
- 🔧 Acesso Completo a Recursos - Todas as capacidades do Meilisearch ao seu alcance
- 🔄 Conexões Dinâmicas - Alterne entre instâncias do Meilisearch rapidamente
- 📡 Transporte stdio - Atualmente usa stdio; suporte nativo ao MCP do Meilisearch em breve!
✨ Principais Funcionalidades
- 📊 Gerenciamento de Índices e Documentos - Crie, atualize e gerencie índices de busca
- 🔍 Busca Inteligente - Pesquise em um ou vários índices com filtragem avançada
- ⚙️ Configuração de Ajustes - Ajuste a relevância e o desempenho da busca
- 📈 Monitoramento de Tarefas - Acompanhe o progresso da indexação e operações do sistema
- 🔐 Gerenciamento de Chaves de API - Controle de acesso seguro
- 🏥 Monitoramento de Saúde - Fique de olho na sua instância Meilisearch
- 🐍 Implementação em Python - Versão TypeScript também disponível
🚀 Início Rápido
Comece a usar em apenas 3 passos!
1️⃣ Instale o pacote
# Using pip
pip install meilisearch-mcp
# Or using uvx (recommended)
uvx -n meilisearch-mcp
2️⃣ Configure o Claude Desktop
Adicione isto ao seu claude_desktop_config.json:
{
"mcpServers": {
"meilisearch": {
"command": "uvx",
"args": ["-n", "meilisearch-mcp"]
}
}
}
3️⃣ Inicie o Meilisearch
# Using Docker (recommended)
docker run -d -p 7700:7700 getmeili/meilisearch:v1.28
# Or using Homebrew
brew install meilisearch
meilisearch
É isso! Agora você pode pedir ao seu assistente de IA para pesquisar e gerenciar seus dados do Meilisearch! 🎉
📚 Exemplos
💬 Converse com seu assistente de IA naturalmente:
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!
🔍 Exemplo de Busca Avançada:
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
🔧 Instalação
Pré-requisitos
- Python ≥ 3.9
- Instância do Meilisearch em execução
- Cliente compatível com MCP (Claude Desktop, agentes OpenAI, etc.)
Do PyPI
pip install meilisearch-mcp
Do Fonte (para desenvolvimento)
# 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 .
Usando Docker
Perfeito para ambientes conteinerizados como fluxos de trabalho do n8n!
Do Docker Hub
# 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
Compilar do Fonte
# 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
Integração com n8n
Para fluxos de trabalho do n8n, você pode usar a imagem Docker diretamente na sua configuração:
meilisearch-mcp:
image: getmeili/meilisearch-mcp:latest
environment:
- MEILI_HTTP_ADDR=http://meilisearch:7700
- MEILI_MASTER_KEY=masterKey
🛠️ O Que Você Pode Fazer?
🔗 Gerenciamento de Conexão
- Ver configurações de conexão atuais
- Alternar entre instâncias do Meilisearch dinamicamente
- Atualizar chaves de API rapidamente
📁 Operações com Índices
- Criar novos índices com chaves primárias personalizadas
- Listar todos os índices com estatísticas
- Excluir índices e seus dados
- Obter métricas detalhadas do índice
📄 Gerenciamento de Documentos
- Adicionar ou atualizar documentos
- Recuperar documentos com paginação
- Importar dados em massa
🔍 Capacidades de Busca
- Pesquisar com filtros, ordenação e facetas
- Busca multi-índice
- Busca semântica com vetores
- Busca híbrida (palavra-chave + semântica)
⚙️ Ajustes e Configuração
- Configurar regras de ranqueamento
- Definir facetamento e filtragem
- Gerenciar atributos pesquisáveis
- Personalizar tolerância a erros de digitação
🔐 Segurança
- Criar e gerenciar chaves de API
- Definir permissões granulares
- Monitorar uso de chaves
⚠️ Nota: Embora você possa adicionar e atualizar hosts e chaves de API diretamente no chat por conveniência, essa abordagem é projetada principalmente para casos de uso de desenvolvimento (como conectar-se a várias instâncias rapidamente). Ela não segue as melhores práticas de segurança do MCP e não deve ser usada em ambientes de produção sem as devidas salvaguardas.
📊 Monitoramento e Saúde
- Verificações de saúde
- Estatísticas do sistema
- Monitoramento de tarefas
- Informações de versão
🌍 Variáveis de Ambiente
Configure as definições de conexão padrão:
MEILI_HTTP_ADDR=http://localhost:7700 # Default Meilisearch URL
MEILI_MASTER_KEY=your_master_key # Optional: Default API key
💻 Desenvolvimento
Configurando o Ambiente de Desenvolvimento
-
Inicie o Meilisearch:
docker run -d -p 7700:7700 getmeili/meilisearch:v1.28 -
Instale Dependências de Desenvolvimento:
uv pip install -r requirements-dev.txt -
Execute Testes:
python -m pytest tests/ -v -
Formate o Código:
black src/ tests/
Testando com o MCP Inspector
npx @modelcontextprotocol/inspector python -m src.meilisearch_mcp
🤝 Comunidade e Suporte
Adoraríamos ouvir você! Veja como obter ajuda e se conectar:
- 💬 Junte-se ao nosso Discord - Converse com a comunidade
- 🐛 Reportar Problemas - Encontrou um bug? Avise-nos!
- 💡 Solicitações de Funcionalidades - Tem uma ideia? Estamos ouvindo!
- 📖 Documentação do Meilisearch - Saiba mais sobre o Meilisearch
🤗 Contribuindo
Contribuições são bem-vindas! Veja como começar:
- Faça um fork do repositório
- Crie seu branch de funcionalidade (
git checkout -b feature/amazing-feature) - Escreva testes para suas alterações
- Faça suas alterações e execute os testes
- Formate seu código com
black - Faça commit das suas alterações (
git commit -m 'Add amazing feature') - Envie para o seu branch (
git push origin feature/amazing-feature) - Abra um Pull Request
Veja nossas Diretrizes de Contribuição para mais detalhes.
📦 Processo de Lançamento
Este projeto usa versionamento e publicação automatizados. Quando a versão em pyproject.toml muda no branch main, o pacote é automaticamente publicado no PyPI.
Veja a seção Processo de Lançamento para instruções detalhadas.
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Meilisearch é um mecanismo de busca de código aberto que oferece uma experiência de busca agradável.
Saiba mais sobre o Meilisearch em meilisearch.com
📖 Documentação Completa
Ferramentas Disponíveis
Gerenciamento de Conexão
get-connection-settings: Ver a URL de conexão atual do Meilisearch e o status da chave de APIupdate-connection-settings: Atualizar URL e/ou chave de API para conectar a uma instância diferente
Gerenciamento de Índices
create-index: Criar um novo índice com chave primária opcionallist-indexes: Listar todos os índices disponíveisdelete-index: Excluir um índice existente e todos os seus documentosget-index-metrics: Obter métricas detalhadas para um índice específico
Operações com Documentos
get-documents: Recuperar documentos de um índice com paginaçãoadd-documents: Adicionar ou atualizar documentos em um índice
Busca
search: Busca flexível em um ou vários índices com opções de filtragem e ordenação
Gerenciamento de Ajustes
get-settings: Ver os ajustes atuais de um índiceupdate-settings: Atualizar ajustes do índice (ranqueamento, facetamento, etc.)
Gerenciamento de Chaves de API
get-keys: Listar todas as chaves de APIcreate-key: Criar nova chave de API com permissões específicasdelete-key: Excluir uma chave de API existente
Gerenciamento de Tarefas
get-task: Obter informações sobre uma tarefa específicaget-tasks: Listar tarefas com filtros opcionaiscancel-tasks: Cancelar tarefas pendentes ou enfileiradasdelete-tasks: Excluir tarefas concluídas
Monitoramento do Sistema
health-check: Verificação básica de saúdeget-health-status: Status de saúde abrangenteget-version: Obter informações da versão do Meilisearchget-stats: Obter estatísticas do banco de dadosget-system-info: Obter informações em nível de sistema
Configuração de Desenvolvimento
Pré-requisitos
-
Inicie o servidor Meilisearch:
# 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 -
Instale ferramentas de desenvolvimento:
# 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
Executando Testes
Este projeto inclui testes de integração abrangentes que verificam a funcionalidade das ferramentas MCP:
# 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/
Importante: Os testes exigem uma instância do Meilisearch em execução em http://localhost:7700.
Qualidade do Código
# 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/
Diretrizes de Contribuição
- Faça fork e clone o repositório
- Configure o ambiente de desenvolvimento seguindo a seção Configuração de Desenvolvimento acima
- Crie um branch de funcionalidade a partir de
main - Escreva testes primeiro se estiver adicionando nova funcionalidade (Desenvolvimento Orientado a Testes)
- Execute testes localmente para garantir que todos passem antes de fazer commit
- Formate o código com Black e garanta a qualidade do código
- Faça commit das alterações com mensagens de commit descritivas
- Envie para o seu fork e crie um pull request
Fluxo de Trabalho de Desenvolvimento
# 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
Diretrizes de Teste
- Todas as novas funcionalidades devem incluir testes
- Os testes devem passar antes de enviar PRs
- Use nomes de teste descritivos e asserções claras
- Teste tanto casos de sucesso quanto de erro
- Certifique-se de que o Meilisearch esteja em execução antes de rodar os testes
Processo de Lançamento
Este projeto usa versionamento e publicação automatizados no PyPI. O processo de lançamento é projetado para ser simples e automatizado.
Como os Lançamentos Funcionam
-
Publicação Automatizada: Quando o número da versão em
pyproject.tomlmuda no branchmain, uma GitHub Action automaticamente:- Constrói o pacote Python
- Publica-o no PyPI usando publicação confiável
- Cria um novo lançamento no GitHub
-
Detecção de Versão: O fluxo de trabalho compara a versão atual em
pyproject.tomlcom o commit anterior para detectar mudanças -
Publicação no PyPI: Usa a ação oficial de publicação do PyPA com publicação confiável (sem necessidade de chaves de API manuais)
Criando um Novo Lançamento
Para criar um novo lançamento, siga estes passos:
1. Determine o Número da Versão
Siga o Versionamento Semântico (MAJOR.MINOR.PATCH):
- PATCH (ex.: 0.4.0 → 0.4.1): Correções de bugs, atualizações de documentação, pequenas melhorias
- MINOR (ex.: 0.4.0 → 0.5.0): Novas funcionalidades, novas ferramentas MCP, melhorias significativas
- MAJOR (ex.: 0.5.0 → 1.0.0): Mudanças que quebram compatibilidade, grandes mudanças na API
2. Atualize a Versão e Crie um 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. Faça Merge para a Main
Assim que o PR for aprovado e mesclado em main, a GitHub Action irá automaticamente:
- Detectar a mudança de versão
- Construir o pacote
- Publicar no PyPI em https://pypi.org/p/meilisearch-mcp
- Disponibilizar a nova versão via
pip install meilisearch-mcp
4. Verifique o Lançamento
Após o merge, verifique o lançamento:
# 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
Arquivo de Fluxo de Trabalho de Lançamento
O lançamento automatizado é gerenciado por .github/workflows/publish.yml, que:
- É acionado em pushes para o branch
main - Verifica se a versão em
pyproject.tomlmudou - Usa Python 3.10 e ferramentas oficiais de build
- Publica usando publicação confiável (sem necessidade de chaves de API)
- Fornece saída detalhada para depuração
Solução de Problemas de Lançamentos
O lançamento não foi acionado: Verifique se a versão em pyproject.toml realmente mudou entre os commits
A build falhou: Verifique os logs do GitHub Actions para erros de build do pacote Python
A publicação no PyPI falhou: Verifique o nome do pacote e se a publicação confiável está configurada corretamente Conflitos de versão: Certifique-se de que o novo número de versão não tenha sido usado antes no PyPI
Versões de Desenvolvimento vs Produção
- Desenvolvimento: Instale a partir do código-fonte usando
pip install -e . - Produção: Instale a partir do PyPI usando
pip install meilisearch-mcp - Versão específica: Instale usando
pip install meilisearch-mcp==0.5.0