概要
インストール
コンテンツ詳細
代替品
QueryNestとは?
QueryNestはMCPプロトコルに基づくMongoDBのインテリジェントクエリサービスで、複数のMongoDBインスタンスを接続および管理し、自然言語からデータベースクエリへの変換機能を提供します。特に、複数のデータベース環境に同時にアクセスする必要があるが、専門的なデータベース知識が不足しているユーザーに適しています。QueryNestの使い方は?
簡単なインストールと設定を行った後、自然言語でクエリ要件を記述すると、QueryNestが自動的に専門的なMongoDBクエリに変換し、結果を返します。コマンドラインとAIアプリケーションへの統合の2つの使用方法をサポートしています。適用シーン
データアナリストがデータを迅速にクエリするシーン、開発者がデータベースをデバッグするシーン、プロダクトマネージャーが業務データを確認するシーンなどに適用され、特に複数のデータベース環境をまたいでクエリする必要がある場合に適しています。主な機能
使い方
使用例
よくある質問
関連リソース
インストール
{
"mcpServers": {
"QueryNest": {
"command": "uvx",
"args": ["--from", "/path/to/QueryNest", "--no-cache", "querynest-mcp"],
"cwd": "/path/to/QueryNest",
"env": {
"QUERYNEST_CONFIG_PATH": "/path/to/QueryNest/config.yaml",
"QUERYNEST_LOG_LEVEL": "INFO"
}
}
}
}
{
"mcpServers": {
"QueryNest": {
"command": "uvx",
"args": ["--from", "C:\\path\\to\\QueryNest", "--no-cache", "querynest-mcp"],
"cwd": "C:\\path\\to\\QueryNest",
"env": {
"QUERYNEST_CONFIG_PATH": "C:\\path\\to\\QueryNest\\config.yaml"
}
}
}
}🚀 QueryNest - MongoDB多インスタンスクエリサービス
QueryNestは、MCP (Model Context Protocol) をベースにしたMongoDB多インスタンスクエリサービスです。データベース構造の自動発見、セマンティック分析、自然言語によるクエリ生成機能を提供します。
📍 プロジェクト情報
| 属性 | 詳情 |
|---|---|
| バージョン | v1.0.0 |
| 状態 | ✅ 本番環境での運用可 |
| ライセンス | MIT License |
| 言語 | Python 3.12+ |
| アーキテクチャ | 非同期/MCPプロトコルベース |
🚀 主な機能
🔍 スマートクエリ
- 自然言語クエリ:中国語の自然言語でクエリ要求を記述できます。
- MongoDBネイティブクエリ:標準のMongoDBクエリ構文をサポートします。
- アグリゲーションパイプライン:複雑なデータ集計操作をサポートします。
- クエリ最適化:クエリ性能を自動的に最適化します。
- クエリキャッシュ:スマートキャッシュによりクエリ速度を向上させます。
🏢 多インスタンス管理
- インスタンス発見:複数のMongoDBインスタンスを自動的に発見し、接続します。
- 負荷分散:クエリ要求をスマートに分散させます。
- ヘルスチェック:インスタンスの状態をリアルタイムで監視します。
- フェイルオーバー:インスタンス障害を自動的に処理します。
- コネクションプール管理:データベース接続の使用を最適化します。
🛡️ セキュリティ制御
- 読み取り専用権限:データの安全性を確保し、読み取り操作のみをサポートします。
- クエリ制限:クエリの複雑さと返されるデータ量を制限します。
- データ脱敏:敏感な情報を自動的に識別し、脱敏します。
- アクセス制御:ロールベースのアクセス権限管理を行います。
- セキュリティ監査:すべてのクエリ操作を記録します。
🧠 スマート分析
- 構造発見:データベースの構造とフィールドタイプを自動的に分析します。
- セマンティック理解:フィールドの業務的な意味を理解します。
- クエリ提案:クエリ最適化の提案を提供します。
- 性能分析:クエリの性能とボトルネックを分析します。
- インデックス提案:インデックス最適化の方案をスマートに提案します。
📊 モニタリングと指標
- リアルタイムモニタリング:システム性能とクエリ指標をリアルタイムで監視します。
- 性能分析:詳細なクエリ性能統計を提供します。
- エラートレース:完全なエラー記録と分析を行います。
- ヘルスチェック:システムの健全性を評価します。
- 指標エクスポート:複数の形式で指標をエクスポートできます。
🔧 ユーザー体験
- エラー処理:分かりやすいエラーメッセージと提案を提供します。
- ユーザーフィードバック:完全なフィードバック収集システムを備えています。
- ヘルプシステム:組み込みのヘルプドキュメントとFAQを提供します。
- 設定検証:設定ファイルと環境を自動的に検証します。
🔌 MCP統合
- 標準プロトコル:MCP(Model Context Protocol)と完全に互換性があります。
- 豊富なツール:完全なクエリと分析ツールセットを提供します。
- 対話型:対話形式のクエリと探索をサポートします。
- 拡張性:様々なAIアプリケーションに簡単に統合できます。
- フィードバックツール:組み込みのユーザーフィードバックとヘルプツールを備えています。
📦 インストールとデプロイ
環境要件
- Python 3.8+
- MongoDB 4.0+
- オプション:Redis(キャッシュ用)
🚀 クイックスタート
クイック起動(推奨)
uvxを使用してサービスを迅速に起動します:
# uvツールをインストールする(未インストールの場合)
pip install uv
# プロジェクトディレクトリから起動する(推奨)
cd /path/to/QueryNest
uvx --from . --no-cache querynest-mcp
# または任意の場所から起動する
uvx --from /path/to/QueryNest --no-cache querynest-mcp
uvxで起動するメリット:
- 依存関係を自動的に処理します。
- 環境に事前にパッケージをインストールする必要がありません。
- 隔離された実行環境を使用します。
- 自動キャッシュにより、以降の起動を高速化します。
手動インストール
- プロジェクトをクローンする
git clone https://github.com/niuzaishu/QueryNest.git
cd QueryNest
- 依存パッケージをインストールする
cd QueryNest
pip install -r requirements.txt
- サービスを設定する
# 設定テンプレートをコピーする
cp config.example.yaml config.yaml
# 設定ファイルを編集する(実際の環境に合わせてMongoDB接続文字列を変更する)
vim config.yaml # または好きなエディタを使用する
- サービスを起動する
# 開発モード(直接実行)
python mcp_server.py --log-level DEBUG
# 本番モード(uvxを使用する、推奨)
uvx --from . --no-cache querynest-mcp
# 設定ファイルのパスを設定する(必要な場合)
export QUERYNEST_CONFIG_PATH=/path/to/config.yaml
Dockerでのデプロイ
# ビルドして起動する
docker-compose up -d
# ログを確認する
docker-compose logs -f
# サービスを停止する
docker-compose down
⚙️ 設定の説明
🔌 MCPクライアントの設定
QueryNestサービスは、MCPプロトコルをサポートするAIクライアントで構成することで、スマートなデータベースクエリ機能を実現できます。
1. プロジェクト構造
QueryNest/
├── 📄 設定ファイル
│ ├── config.yaml # メイン設定ファイル
│ ├── config.example.yaml # 設定テンプレート
│ └── config.py # 設定管理
├── 🚀 コアサービス
│ ├── mcp_server.py # MCPサーバーのエントリーポイント
│ ├── start.py # 予備の起動スクリプト
│ └── database/ # データベース接続と管理
├── 🔧 MCPツールセット
│ └── mcp_tools/ # MCPプロトコルツールの実装
├── 🔍 スキャンと分析
│ └── scanner/ # データベースのスキャンとセマンティック分析
├── 🛠️ ユーティリティクラス
│ └── utils/ # 検証、エラー処理、ワークフロー管理
├── 🧪 テストコード
│ └── tests/ # 単体テストと統合テスト
├── 📚 ドキュメント
│ └── docs/ # 完全なプロジェクトドキュメント
├── 📦 デプロイ
│ └── deployment/ # Dockerとサービスの設定
└── 📜 スクリプト
└── scripts/ # データベースのチェックとテストツール
📖 詳細な構造説明は を参照してください。
QueryNestはuvxで実行可能なパッケージとして構成されており、以下の重要なファイルが含まれています:
setup.py - パッケージ設定ファイル:
setup(
name="querynest",
version="1.0.0",
description="QueryNest MCP MongoDBクエリサービス",
py_modules=["mcp_server", "config"],
packages=["database", "scanner", "mcp_tools", "utils"],
entry_points={
"console_scripts": [
"querynest-mcp=mcp_server:cli_main",
]
},
)
エントリーポイントの設定 - mcp_server.py でCLIエントリーポイントが定義されています:
def cli_main():
"""コマンドラインのエントリーポイント"""
# 設定ファイルを自動的に検索し、環境を設定する
# 異なるディレクトリからの起動をサポートする
asyncio.run(main())
if __name__ == "__main__":
cli_main()
2. ローカルでの実行手順
手順1:uvツールをインストールする
uvがまだインストールされていない場合は、以下の方法でインストールできます:
# pipを使用してインストールする(推奨)
pip install uv
# または公式のインストールスクリプトを使用する(Linux/macOS)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows PowerShell
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# インストールを確認する
uvx --version
手順2:サービスを起動する
プロジェクトのルートディレクトリで以下のコマンドを実行します:
# 推奨方法:プロジェクトディレクトリから実行する
cd /path/to/QueryNest
uvx --from . --no-cache querynest-mcp
# または環境変数を設定して設定ファイルを指定する
export QUERYNEST_CONFIG_PATH=/path/to/QueryNest/config.yaml
uvx --from /path/to/QueryNest --no-cache querynest-mcp
手順3:サービスの起動を確認する
サービスが正常に起動すると、以下のようなログが表示されます:
{"event": "Starting QueryNest MCP server initialization", "config_path": "/path/to/config.yaml"}
{"event": "Configuration loaded successfully", "instances_count": 2}
{"event": "MCP tools initialized successfully", "tools_count": 13}
{"event": "Starting stdio MCP server"}
3. MCPクライアントの統合
uvxの動作原理:
uvxは、現代的なPythonパッケージ実行ツールで、以下のことができます:
- 現在のディレクトリ(
.)からパッケージを自動的にインストールします。 - 一時的な仮想環境を管理します。
- パッケージのエントリーポイントコマンドを実行します。
MCPクライアントの設定ポイント:
MCPプロトコルをサポートするAIクライアントでのQueryNestの設定例:
{
"mcpServers": {
"QueryNest": {
"command": "uvx",
"args": ["--from", "/path/to/QueryNest", "--no-cache", "querynest-mcp"],
"cwd": "/path/to/QueryNest",
"env": {
"QUERYNEST_CONFIG_PATH": "/path/to/QueryNest/config.yaml",
"QUERYNEST_LOG_LEVEL": "INFO"
}
}
}
}
Windowsの設定例:
{
"mcpServers": {
"QueryNest": {
"command": "uvx",
"args": ["--from", "C:\\path\\to\\QueryNest", "--no-cache", "querynest-mcp"],
"cwd": "C:\\path\\to\\QueryNest",
"env": {
"QUERYNEST_CONFIG_PATH": "C:\\path\\to\\QueryNest\\config.yaml"
}
}
}
}
重要な設定の説明:
--from /path/to/QueryNest: プロジェクトの絶対パスを指定します。--no-cache: 最新のコードを使用することを確認します。cwd: 作業ディレクトリをプロジェクトのルートディレクトリに設定します。querynest-mcp:setup.pyで定義されたエントリーポイントコマンドです。
メリット:
- プロジェクトパスが明確:絶対パスを使用することで、正しいプロジェクトを見つけることができます。
- 自動依存関係管理:uvxがすべての依存パッケージを自動的に処理します。
- 隔離された環境:毎回の実行が独立した一時的な環境で行われます。
- 設定ファイルの自動検出:サーバーが自動的に設定ファイルを検索します。
4. トラブルシューティング
一般的な問題と解決策:
問題1:uvxコマンドが見つからない
# 解決策:uvツールをインストールする
pip install uv
# または公式のインストールスクリプトを使用する
curl -LsSf https://astral.sh/uv/install.sh | sh # Linux/macOS
# powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # Windows
# インストールを確認する
uvx --version
問題2:設定ファイルが見つからない
# 設定ファイルが存在することを確認する
ls -la config.yaml
# サンプルから設定ファイルを作成する
cp config.example.yaml config.yaml
# 環境変数を設定する
export QUERYNEST_CONFIG_PATH=/path/to/QueryNest/config.yaml
問題3:MCPサービスへの接続に失敗する
- MCPクライアントの設定ファイルの形式を確認してください。
- プロジェクトのパスが正しいことを確認してください(絶対パスを使用してください)。
- MongoDBサービスが稼働していることを確認してください。
- 設定ファイル
config.yamlが存在することを確認してください。
問題4:MongoDBへの接続に失敗する
# MongoDBサービスの状態を確認する
python scripts/check_db.py
# 手動でMongoDBの接続をテストする
python -c "
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017/')
print('MongoDB接続成功')
"
# MongoDBサービスが稼働していることを確認する
# Linux/macOS
sudo systemctl status mongod
# Windows
net start | findstr -i mongo
設定が成功したことを確認する:
# ローカルでの実行をテストする
cd /path/to/QueryNest
uvx --from . --no-cache querynest-mcp --help
# プロジェクト構造を確認する
ls -la setup.py mcp_server.py config.yaml
# エントリーポイントを検証する
python -c "
from mcp_server import cli_main
print('Entry point OK')
"
# 完全な起動プロセスをテストする
uvx --from . --no-cache querynest-mcp --log-level INFO
MongoDBインスタンスの設定
QueryNestは柔軟な環境設定をサポートしており、実際のニーズに合わせてさまざまなタイプのインスタンスを設定できます:
- 従来の環境設定(dev、test、uat、sit、staging、prod)
- 業務システム設定(crm-prod、order-system、user-center)
- 地域クラスター設定(beijing、shanghai、guangzhou)
- カスタム環境設定(任意の名前)
mongodb:
instances:
prod-main:
name: "本番メインデータベース"
environment: "prod"
connection_string: "mongodb://admin:password@localhost:27017/admin"
database: "prod_database"
description: "本番環境のメインデータベース"
status: "active"
tags: ["production", "primary"]
crm-prod:
name: "CRM本番データベース"
environment: "crm-prod"
connection_string: "mongodb://crm_user:${CRM_DB_PASSWORD}@crm-db.company.com:27017/admin"
database: "crm_database"
description: "CRMシステムの本番データベース"
status: "active"
tags: ["crm", "production"]
beijing-cluster:
name: "北京クラスター"
environment: "beijing"
connection_string: "mongodb://readonly:${BEIJING_DB_PASSWORD}@beijing-mongo.company.com:27017/admin"
database: "beijing_database"
description: "北京地域のMongoDBクラスター"
status: "active"
tags: ["beijing", "cluster"]
セキュリティ設定
security:
permissions:
allowed_operations:
- "find"
- "count"
- "aggregate"
- "distinct"
forbidden_operations:
- "insert"
- "update"
- "delete"
limits:
max_documents: 1000
query_timeout: 30
data_masking:
enabled: true
sensitive_field_patterns:
- "password"
- "email"
- "phone"
環境変数の設定
複数のインスタンスに対して独立した環境変数管理をサポートしています:
# .envファイルの例
# 従来の環境のパスワード
PROD_DB_PASSWORD=your_prod_password
TEST_DB_PASSWORD=your_test_password
DEV_DB_PASSWORD=your_dev_password
# 業務システムのパスワード
CRM_DB_PASSWORD=your_crm_password
ORDER_DB_PASSWORD=your_order_password
USER_CENTER_DB_PASSWORD=your_user_center_password
# 地域クラスターのパスワード
BEIJING_DB_PASSWORD=your_beijing_password
SHANGHAI_DB_PASSWORD=your_shanghai_password
GUANGZHOU_DB_PASSWORD=your_guangzhou_password
# カスタムインスタンスのパスワード
CUSTOM_INSTANCE_PASSWORD=your_custom_password
ポート設定
- MCPサービス:デフォルトではstdio通信を使用し、ポートは必要ありません。HTTPモードではポートを設定できます(デフォルトは8000)。
- MongoDB:27017 (Dockerコンテナ内)
- Prometheus:9090 (モニタリングパネル)
- アプリケーションモニタリング:8000 (オプション、ヘルスチェック用)
ポートの説明:
- stdioモード:標準入出力を介して通信するため、ネットワークポートは必要ありません。
- HTTPモード:環境変数
QUERYNEST_MCP_PORTでポートを設定できます。
メタデータ設定
metadata:
instance_id: "dev-local" # 任意の環境識別子を指定できます
database_name: "querynest_metadata"
collections:
instances: "instances"
databases: "databases"
collections: "collections"
fields: "fields"
query_history: "query_history"
🛠️ MCPツールの使用
1. インスタンスの発見 (discover_instances)
利用可能なすべてのMongoDBインスタンスを発見し、一覧表示します。
{
"name": "discover_instances",
"arguments": {
"include_health": true,
"include_stats": true
}
}
2. データベースの発見 (discover_databases)
指定されたインスタンス内のすべてのデータベースを一覧表示します。
{
"name": "discover_databases",
"arguments": {
"instance_id": "prod-main",
"include_collections": true,
"exclude_system": true
}
}
3. コレクションの分析 (analyze_collection)
指定されたコレクションの構造とフィールド情報を分析します。
{
"name": "analyze_collection",
"arguments": {
"instance_id": "prod-main",
"database_name": "ecommerce",
"collection_name": "users",
"include_semantics": true,
"include_examples": true,
"rescan": false
}
}
4. セマンティック管理 (manage_semantics)
フィールドの業務的なセマンティック情報を管理します。
{
"name": "manage_semantics",
"arguments": {
"action": "batch_analyze",
"instance_id": "prod-main",
"database_name": "ecommerce",
"collection_name": "users"
}
}
5. クエリの生成 (generate_query)
自然言語の説明に基づいてMongoDBクエリを生成します。
{
"name": "generate_query",
"arguments": {
"instance_id": "prod-main",
"database_name": "ecommerce",
"collection_name": "orders",
"query_description": "今日作成された注文を金額の降順で並べて取得",
"query_type": "auto",
"limit": 50
}
}
6. クエリの確認 (confirm_query)
生成されたクエリを実行し、結果を返します。
{
"name": "confirm_query",
"arguments": {
"instance_id": "prod-main",
"database_name": "ecommerce",
"collection_name": "orders",
"query_type": "find",
"mongodb_query": {
"filter": {"created_at": {"$gte": "2024-01-01T00:00:00Z"}},
"sort": {"amount": -1},
"limit": 50
},
"explain": true
}
}
💻 使用例
シナリオ1:電子商取引データ分析
- インスタンスとデータベースの発見
ユーザー:"利用可能なデータベースインスタンスを教えてください"
アシスタント:discover_instancesツールを使用します
- ユーザーコレクションの分析
ユーザー:"電子商取引データベースのユーザーテーブルの構造を分析してください"
アシスタント:analyze_collectionツールを使用してusersコレクションを分析します
- 自然言語クエリ
ユーザー:"直近1週間で登録されたアクティブなユーザーを登録日時で並べて取得してください"
アシスタント:generate_queryでクエリを生成し、confirm_queryで実行します
シナリオ2:ログデータのクエリ
- セマンティック分析
ユーザー:"ログコレクションの各フィールドの意味を教えてください"
アシスタント:manage_semanticsを使用して一括セマンティック分析を行います
- 複雑なアグリゲーションクエリ
ユーザー:"1時間ごとのエラーログの数を時間でグループ化して集計してください"
アシスタント:アグリゲーションクエリを生成して実行します
🔧 開発ガイド
プロジェクト構造
QueryNest/
├── src/
│ ├── __init__.py
│ ├── config.py # 設定管理
│ ├── mcp_server.py # MCPサーバーのメインファイル
│ ├── database/ # データベースモジュール
│ │ ├── __init__.py
│ │ ├── connection_manager.py
│ │ ├── metadata_manager.py
│ │ └── query_engine.py
│ ├── scanner/ # スキャンモジュール
│ │ ├── __init__.py
│ │ ├── structure_scanner.py
│ │ └── semantic_analyzer.py
│ └── mcp_tools/ # MCPツール
│ ├── __init__.py
│ ├── instance_discovery.py
│ ├── database_discovery.py
│ ├── collection_analysis.py
│ ├── semantic_management.py
│ ├── query_generation.py
│ └── query_confirmation.py
├── config.yaml # 設定ファイル
├── requirements.txt # 依存関係のリスト
└── README.md # プロジェクトドキュメント
新しいツールの追加
- ツールクラスを作成する
class NewTool:
def get_tool_definition(self) -> Tool:
# ツールのインターフェースを定義する
pass
async def execute(self, arguments: Dict[str, Any]) -> List[TextContent]:
# ツールのロジックを実装する
pass
- ツールを登録する
# mcp_server.pyで登録する
new_tool = NewTool(...)
self.tools["new_tool"] = new_tool
セマンティック分析の拡張
- セマンティックルールを追加する
# semantic_analyzer.pyに追加する
self.semantic_patterns.update({
"custom_field": {
"patterns": [r"custom_.*"],
"meaning": "カスタムフィールド",
"confidence": 0.8
}
})
- カスタム分析ロジックを実装する
def analyze_custom_semantics(self, field_info):
# カスタムセマンティック分析のロジックを実装する
pass
🚨 注意事項
セキュリティに関する考慮事項
-
権限管理
- 読み取り操作のみを許可するように設定します。
- 適切なクエリ制限を設定します。
- データ脱敏機能を有効にします。
-
ネットワークセキュリティ
- SSL/TLS接続を使用します。
- ファイアウォールルールを設定します。
- 定期的にパスワードを更新します。
-
データ保護
- 敏感な情報を記録しないようにします。
- 定期的にクエリ履歴を削除します。
- 異常なアクセスを監視します。
性能最適化
-
接続管理
- コネクションプールのサイズを適切に設定します。
- 接続の再利用を有効にします。
- 接続の健全性を監視します。
-
クエリ最適化
- 適切なインデックスを使用します。
- クエリ結果の数を制限します。
- 複雑なアグリゲーション操作を避けます。
-
キャッシュ戦略
- メタデータのキャッシュを有効にします。
- よく使用されるクエリ結果をキャッシュします。
- 期限切れのキャッシュを定期的に削除します。
📝 更新履歴
v1.0.0 (2024-01-01)
- 初期バージョンのリリース
- 複数のMongoDBインスタンスへの接続をサポート
- 基本的な構造スキャンとセマンティック分析を実装
- 完全なMCPツールセットを提供
- 自然言語クエリ生成をサポート
🧪 テスト
すべてのテストを実行する
python -m pytest tests/ -v
単体テストを実行する
# 接続マネージャーのテスト
python -m pytest tests/unit/test_connection_manager.py -v
# クエリエンジンのテスト
python -m pytest tests/unit/test_query_engine.py -v
# メタデータマネージャーのテスト
python -m pytest tests/unit/test_metadata_manager.py -v
# データベーススキャナーのテスト
python -m pytest tests/unit/test_database_scanner.py -v
# MCPツールのテスト
python -m pytest tests/unit/test_mcp_tools.py -v
テストカバレッジ
pip install pytest-cov
python -m pytest tests/ --cov=src --cov-report=html
環境の検証
# 起動環境を検証する
python -c "
from utils.startup_validator import validate_startup_environment
print(validate_startup_environment())
"
📚 ドキュメント
コアドキュメント
- 技術アーキテクチャ - 詳細な技術アーキテクチャの説明
- 設定ガイド - 設定ファイルの説明
- 環境変数 - 環境変数の設定説明
デプロイメントドキュメント
- デプロイメントスクリプト - 自動デプロイメントツール
- Dockerデプロイ - コンテナ化されたデプロイメント
- サービス設定 - システムサービスの設定
開発ドキュメント
- 単体テスト - 完全な単体テストセット
- エラー処理 - エラー処理メカニズム
- モニタリング指標 - 性能モニタリングシステム
- 設定検証 - 設定検証ツール
ユーザーガイド
- クイックスタート - 迅速なデプロイと使用方法
- 機能特性 - 詳細な機能説明
- トラブルシューティング - 一般的な問題の解決策
📚 その他のリソース
- Dockerデプロイメントガイド
- コントリビューションガイド
- 変更履歴
- MCPプロトコルドキュメント
- MongoDB公式ドキュメント
- Python非同期プログラミングガイド
🔧 トラブルシューティング
一般的な問題
3. MongoDBへの接続に失敗する
# MongoDBサービスの状態を確認する
sudo systemctl status mongod
# ネットワーク接続をテストする
telnet <mongodb_host> <mongodb_port>
# 認証情報を検証する
mongo --host <host> --port <port> -u <username> -p
4. 設定ファイルのエラー
# 設定ファイルを検証する
python -c "
from utils.config_validator import ConfigValidator
validator = ConfigValidator()
print(validator.validate_config_file('config.yaml'))
"
環境変数の設定
QueryNestは以下の環境変数をサポートしています:
| 環境変数 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
QUERYNEST_CONFIG_PATH |
設定ファイルのパス | config.yaml |
/app/config.yaml |
QUERYNEST_LOG_LEVEL |
ログレベル | INFO |
DEBUG, INFO, WARNING, ERROR |
QUERYNEST_MCP_TRANSPORT |
MCPのトランスポート方式 | stdio |
stdio, http |
QUERYNEST_MCP_HOST |
HTTPモードのホストアドレス | None |
0.0.0.0 |
QUERYNEST_MCP_PORT |
HTTPモードのポート | None |
8000 |
MONGO_PROD_PASSWORD |
本番環境のMongoDBパスワード | - | your_password |
MONGO_TEST_PASSWORD |
テスト環境のMongoDBパスワード | - | your_password |
MONGO_DEV_PASSWORD |
開発環境のMongoDBパスワード | - | your_password |
Linux/macOSの例:
# 設定ファイルのパスを設定する
export QUERYNEST_CONFIG_PATH=/path/to/QueryNest/config.yaml
# ログレベルを設定する
export QUERYNEST_LOG_LEVEL=DEBUG
# MCPのトランスポートモード(現在はstdioのみサポート)
export QUERYNEST_MCP_TRANSPORT=stdio
Windowsの例:
# CMD
set QUERYNEST_CONFIG_PATH=C:\path\to\QueryNest\config.yaml
set QUERYNEST_LOG_LEVEL=DEBUG
# PowerShell
$env:QUERYNEST_CONFIG_PATH="C:\path\to\QueryNest\config.yaml"
$env:QUERYNEST_LOG_LEVEL="DEBUG"
5. 依存パッケージの問題
cd /path/to/QueryNest
# 依存パッケージを再インストールする
pip install -r requirements.txt --force-reinstall
# Pythonのバージョンを確認する
python --version
# 重要なパッケージのインストール状態を確認する
pip list | grep -E "(mcp|pymongo|motor)"
6. 権限とパスの問題
# ファイルが存在することを確認する
ls -la config.yaml mcp_server.py
# ディレクトリの権限を確認する
ls -ld . logs/
# 必要に応じて権限を修正する
chmod 755 .
chmod 644 config.yaml
chmod +x mcp_server.py
# ログディレクトリが存在しない場合は作成する
mkdir -p logs/
ログ分析
詳細なログを確認するには:
# アプリケーションログを確認する
tail -f logs/querynest.log
# エラーログを確認する
tail -f logs/error.log
# システムログを確認する
journalctl -u querynest -f
性能チューニング
# システムリソースの使用状況を確認する
top
htop
# MongoDBの性能を確認する
mongotop
mongostat
# ネットワーク接続を確認する
netstat -an | grep :27017
🤝 コントリビューションガイド
私たちは様々な形でのコントリビューションを歓迎します!CONTRIBUTING.md を参照して、プロジェクト開発への参加方法を確認してください。
迅速なコントリビューションガイド
- プロジェクトをForkする
- 機能ブランチを作成する (
git checkout -b feature/AmazingFeature) - テストケースを追加する
- テストを実行して通過することを確認する (
python -m pytest tests/ -v) - 変更をコミットする (
git commit -m 'Add some AmazingFeature') - ブランチにプッシュする (
git push origin feature/AmazingFeature) - Pull Requestを作成する
開発環境
# プロジェクトをクローンする
git clone <repository_url>
cd QueryNest
# 仮想環境を作成する
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# 開発用の依存パッケージをインストールする
pip install -r requirements.txt
pip install pytest pytest-cov black flake8
# コードをフォーマットする
black src/ tests/
# コードをチェックする
flake8 src/ tests/
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています - 詳細については LICENSE ファイルを参照してください。
🙏 謝辞
すべてのコントリビューターと以下のオープンソースプロジェクトに感謝します:
📞 サポート
問題が発生した場合や提案がある場合は、以下の手順を実行してください:
- FAQ を参照する
- Issues を検索する
- 新しい Issue を作成する
- GitHub Discussions を参照する
- メンテナに連絡する
🙏 謝辞
以下のプロジェクトとコントリビューターに感謝します:
QueryNest - MongoDBクエリをシンプルでスマートに 🚀
代替品








