Meilisearch MCP Server

公式

Meilisearchと対話・クエリを実行(全文検索&セマンティック検索API)

ドキュメント

Meilisearch

Meilisearch MCP Server

Meilisearch | Meilisearch Cloud | ドキュメント | Discord

PyPI version Python Versions Tests License Downloads

⚡ あらゆるLLMをMeilisearchに接続し、超高速検索機能でAIを強化しましょう! 🔍

🤔 これは何ですか?

Meilisearch MCP Serverは、MCP互換クライアント(Claude、OpenAIエージェント、その他のLLMを含む)がMeilisearchと対話できるようにするModel Context Protocolサーバーです。このstdioベースのサーバーにより、AIアシスタントは自然な会話を通じて検索インデックスの管理、検索の実行、データの処理を行うことができます。

なぜこれを使うのか?

  • 🤖 ユニバーサル互換性 - Claudeだけでなく、あらゆるMCPクライアントで動作
  • 🗣️ 自然言語コントロール - あらゆるLLMとの会話でMeilisearchを管理
  • 🚀 学習コストゼロ - MeilisearchのAPIを学ぶ必要なし
  • 🔧 全機能へのアクセス - Meilisearchの全機能をすぐに利用可能
  • 🔄 動的接続 - Meilisearchインスタンスをその場で切り替え
  • 📡 stdioトランスポート - 現在はstdioを使用。ネイティブMeilisearch MCPサポートも近日公開!

✨ 主な機能

  • 📊 インデックスとドキュメント管理 - 検索インデックスの作成、更新、管理
  • 🔍 スマート検索 - 高度なフィルタリングで単一または複数のインデックスを検索
  • ⚙️ 設定構成 - 検索の関連性とパフォーマンスを微調整
  • 📈 タスク監視 - インデックス作成の進捗とシステム操作を追跡
  • 🔐 APIキー管理 - 安全なアクセス制御
  • 🏥 ヘルスモニタリング - Meilisearchインスタンスの状態を監視
  • 🐍 Python実装 - TypeScript版も利用可能

🚀 クイックスタート

たった3ステップで使い始められます!

1️⃣ パッケージのインストール

# Using pip
pip install meilisearch-mcp

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

2️⃣ Claude Desktopの設定

claude_desktop_config.json に以下を追加します:

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

3️⃣ Meilisearchの起動

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

# Or using Homebrew
brew install meilisearch
meilisearch

以上です!これでAIアシスタントにMeilisearchデータの検索と管理を依頼できます! 🎉

📚 例

💬 AIアシスタントと自然に会話:

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

🔧 インストール

前提条件

  • Python ≥ 3.9
  • 稼働中のMeilisearchインスタンス
  • MCP互換クライアント(Claude Desktop、OpenAIエージェントなど)

PyPIから

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 .

Dockerの使用

n8nワークフローのようなコンテナ環境に最適です!

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

ソースからビルド

# 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

n8nとの統合

n8nワークフローでは、セットアップでDockerイメージを直接使用できます:

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

🛠️ できること

🔗 接続管理
  • 現在の接続設定の表示
  • Meilisearchインスタンスの動的切り替え
  • APIキーのその場での更新
📁 インデックス操作
  • カスタムプライマリキーを持つ新しいインデックスの作成
  • 統計情報付きの全インデックス一覧表示
  • インデックスとそのデータの削除
  • 詳細なインデックスメトリクスの取得
📄 ドキュメント管理
  • ドキュメントの追加または更新
  • ページネーション付きのドキュメント取得
  • データの一括インポート
🔍 検索機能
  • フィルター、ソート、ファセットを使った検索
  • マルチインデックス検索
  • ベクトルによるセマンティック検索
  • ハイブリッド検索(キーワード + セマンティック)
⚙️ 設定と構成
  • ランキングルールの設定
  • ファセットとフィルタリングの設定
  • 検索可能属性の管理
  • タイポトレランスのカスタマイズ
🔐 セキュリティ
  • APIキーの作成と管理
  • きめ細かな権限の設定
  • キー使用状況の監視

⚠️ 注意:チャットで直接ホストやAPIキーを追加・更新できるのは便利ですが、このアプローチは主に開発用途(複数インスタンスへのその場での接続など)向けに設計されています。MCPのセキュリティベストプラクティスに従っておらず、適切な保護なしに本番環境で使用すべきではありません。

📊 監視とヘルス
  • ヘルスチェック
  • システム統計
  • タスク監視
  • バージョン情報

🌍 環境変数

デフォルトの接続設定を構成します:

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

💻 開発

開発環境のセットアップ

  1. Meilisearchの起動

    docker run -d -p 7700:7700 getmeili/meilisearch:v1.28
    
  2. 開発依存関係のインストール

    uv pip install -r requirements-dev.txt
    
  3. テストの実行

    python -m pytest tests/ -v
    
  4. コードのフォーマット

    black src/ tests/
    

MCP Inspectorでのテスト

npx @modelcontextprotocol/inspector python -m src.meilisearch_mcp

🤝 コミュニティとサポート

ご意見をお待ちしています!ヘルプや交流の方法はこちらです:

🤗 コントリビューション

コントリビューションを歓迎します!始め方はこちらです:

  1. リポジトリをフォーク
  2. フィーチャーブランチを作成(git checkout -b feature/amazing-feature
  3. 変更に対するテストを作成
  4. 変更を加えてテストを実行
  5. black でコードをフォーマット
  6. 変更をコミット(git commit -m 'Add amazing feature'
  7. ブランチにプッシュ(git push origin feature/amazing-feature
  8. プルリクエストを作成

詳細は コントリビューションガイドライン をご覧ください。

📦 リリースプロセス

このプロジェクトは自動バージョニングと公開を使用しています。pyproject.toml のバージョンが main ブランチで変更されると、パッケージは自動的にPyPIに公開されます。

詳細な手順については リリースプロセス セクションをご覧ください。

📄 ライセンス

このプロジェクトはMITライセンスの下でライセンスされています - 詳細は LICENSE ファイルをご覧ください。


Meilisearch は、快適な検索体験を提供するオープンソースの検索エンジンです。
Meilisearchの詳細は meilisearch.com でご覧いただけます。


📖 完全なドキュメント

利用可能なツール

接続管理

  • get-connection-settings: 現在のMeilisearch接続URLとAPIキーの状態を表示
  • update-connection-settings: URLやAPIキーを更新して別のインスタンスに接続

インデックス管理

  • create-index: オプションのプライマリキーで新しいインデックスを作成
  • list-indexes: 利用可能なすべてのインデックスを一覧表示
  • delete-index: 既存のインデックスとそのすべてのドキュメントを削除
  • get-index-metrics: 特定のインデックスの詳細なメトリクスを取得

ドキュメント操作

  • get-documents: ページネーション付きでインデックスからドキュメントを取得
  • add-documents: インデックスにドキュメントを追加または更新

検索

  • search: フィルタリングとソートオプションを使用した、単一または複数のインデックスにわたる柔軟な検索

設定管理

  • get-settings: インデックスの現在の設定を表示
  • update-settings: インデックス設定を更新(ランキング、ファセットなど)

APIキー管理

  • get-keys: すべてのAPIキーを一覧表示
  • create-key: 特定の権限を持つ新しいAPIキーを作成
  • delete-key: 既存のAPIキーを削除

タスク管理

  • get-task: 特定のタスクに関する情報を取得
  • get-tasks: オプションのフィルターでタスクを一覧表示
  • cancel-tasks: 保留中またはキューに入っているタスクをキャンセル
  • delete-tasks: 完了したタスクを削除

システム監視

  • health-check: 基本的なヘルスチェック
  • get-health-status: 包括的なヘルスステータス
  • get-version: Meilisearchのバージョン情報を取得
  • get-stats: データベース統計を取得
  • get-system-info: システムレベルの情報を取得

開発セットアップ

前提条件

  1. 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
    
  2. 開発ツールのインストール

    # 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
    

テストの実行

このプロジェクトには、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/

重要:テストには http://localhost:7700 で稼働中のMeilisearchインスタンスが必要です。

コード品質

# 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/

コントリビューションガイドライン

  1. リポジトリをフォークしてクローン
  2. 上記の開発セットアップセクションに従って開発環境をセットアップ
  3. main からフィーチャーブランチを作成
  4. 新しい機能を追加する場合は、最初にテストを作成(テスト駆動開発)
  5. コミット前にローカルでテストを実行し、すべてのテストがパスすることを確認
  6. Blackでコードをフォーマットし、コード品質を確保
  7. 説明的なコミットメッセージで変更をコミット
  8. フォークにプッシュしてプルリクエストを作成

開発ワークフロー

# 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

テストガイドライン

  • すべての新機能にはテストを含める必要があります
  • PRを提出する前にテストがパスする必要があります
  • 説明的なテスト名と明確なアサーションを使用してください
  • 成功ケースとエラーケースの両方をテストしてください
  • テストを実行する前にMeilisearchが稼働していることを確認してください

リリースプロセス

このプロジェクトは、PyPIへの自動バージョニングと公開を使用しています。リリースプロセスはシンプルで自動化されるように設計されています。

リリースの仕組み

  1. 自動公開: pyproject.toml のバージョン番号が main ブランチで変更されると、GitHub Actionが自動的に:

    • Pythonパッケージをビルド
    • 信頼できる公開を使用してPyPIに公開
    • GitHubで新しいリリースを作成
  2. バージョン検出: ワークフローは、pyproject.toml の現在のバージョンを前のコミットと比較して変更を検出します

  3. PyPI公開: PyPAの公式公開アクションを信頼できる公開で使用(手動のAPIキーは不要)

新しいリリースの作成

新しいリリースを作成するには、以下の手順に従ってください:

1. バージョン番号の決定

セマンティックバージョニング(MAJOR.MINOR.PATCH)に従います:

  • PATCH(例:0.4.0 → 0.4.1):バグ修正、ドキュメント更新、軽微な改善
  • MINOR(例:0.4.0 → 0.5.0):新機能、新しいMCPツール、重要な機能強化
  • MAJOR(例:0.5.0 → 1.0.0):破壊的変更、メジャーなAPI変更
2. バージョンを更新して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. メインにマージ

PRが承認され main にマージされると、GitHub Actionが自動的に:

  1. バージョン変更を検出
  2. パッケージをビルド
  3. https://pypi.org/p/meilisearch-mcp のPyPIに公開
  4. pip install meilisearch-mcp 経由で新しいバージョンを利用可能にします
4. リリースの確認

マージ後、リリースを確認します:

# 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

リリースワークフローファイル

自動リリースは .github/workflows/publish.yml によって処理され、以下を行います:

  • main ブランチへのプッシュでトリガー
  • pyproject.toml のバージョンが変更されたかどうかを確認
  • Python 3.10と公式ビルドツールを使用
  • 信頼できる公開を使用して公開(APIキー不要)
  • デバッグ用の詳細出力を提供

リリースのトラブルシューティング

リリースがトリガーされなかった: pyproject.toml のバージョンがコミット間で実際に変更されたか確認してください

ビルドが失敗した: GitHub ActionsのログでPythonパッケージビルドエラーを確認してください

PyPI公開が失敗した: パッケージ名と信頼できる公開が正しく構成されているか確認してください バージョンの競合: 新しいバージョン番号がPyPIで以前に使用されていないことを確認してください

開発版と製品版

  • 開発版: ソースからインストールするには pip install -e . を使用します
  • 製品版: PyPIからインストールするには pip install meilisearch-mcp を使用します
  • 特定のバージョン: インストールするには pip install meilisearch-mcp==0.5.0 を使用します