MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
MCPサーバ - MongoDBのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
MCPサーバ - MongoDB
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == MongoDB MCP Server (mongodb/mongodb-mcp-server) は、Model Context Protocol (MCP) を通じて、<br> AIアシスタントがMongoDBデータベースおよびMongoDB Atlasクラスタと相互作用するための標準化されたツールインターフェースを提供するサーバである。<br> <br> AIアシスタントが自然言語コマンドを通じてMongoDB操作を実行できるようにする。<br> <br> Claude Desktop、Claude Code、OpenCode等の複数のMCPクライアント環境で動作する。<br> Windows、MacOS、Linuxの主要なOSに対応する。<br> <br> このサーバを使用することにより、AIアシスタントがドキュメントのクエリ・挿入・更新・削除、集計パイプラインの実行、インデックスの管理、MongoDB Atlasクラスタの作成・管理等を自然言語による指示で自動化できるようになる。<br> <br> 主な機能カテゴリは以下の通りである。<br> * データベース操作ツール *: ドキュメントのクエリ、挿入、更新、削除、集計パイプラインの実行 * メタデータとスキーマツール *: データベース・コレクションの一覧表示、スキーマ推測、統計取得 * インデックスとベクトル検索ツール *: インデックスの作成・削除、クエリの実行計画取得、ベクトル検索インデックスの作成 * MongoDB Atlas管理ツール *: Atlasクラスタ、ユーザ、プロジェクト、アクセスリストの管理 * 接続管理ツール *: MongoDBインスタンスへの接続と切り替え <br><br> == MongoDB MCPサーバーのインストール == ==== 前提条件 ==== MongoDB MCP Serverを使用するために必要な前提条件を以下に示す。<br> <br> * Node.jsのバージョン要件 *: Node.js v20系を使用する場合は、バージョン 20.19.0 以上が必要 *: Node.js v22系を使用する場合は、バージョン 22.12.0 以上が必要 * <code>npx</code> コマンド *: <code>npx</code> コマンドを使用してMongoDB MCP Serverを実行するために必要。Node.jsに同梱されている。 * MongoDB接続先 *: MongoDB Atlasのクラスタ、またはローカルにインストールされたMongoDBインスタンスのいずれかが必要 <br> ==== npxを使用したインストール ==== <code>npx</code> コマンドを使用する場合、インストール不要でMongoDB MCP Serverを直接実行できる。<br> 以下のコマンドを実行して、MongoDB MCP Serverを起動する。<br> <br> npx -y mongodb-mcp-server <br> MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。<br> <br> ==== Dockerを使用したインストール ==== DockerイメージはDocker Hubで公式に公開されており、Node.jsをインストールせずにMongoDB MCP Serverを実行できる。<br> <br> 基本的なDockerコマンドを以下に示す。<br> <br> docker run --rm -i mongodb/mongodb-mcp-server:latest <br> 接続文字列を指定して実行する場合は、以下のコマンドを実行する。<br> <br> docker run --rm -i \ -e MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/database" \ mongodb/mongodb-mcp-server:latest <br> Atlas APIクレデンシャルを指定して実行する場合は、以下のコマンドを実行する。<br> <br> docker run --rm -i \ -e MDB_MCP_API_CLIENT_ID="your-client-id" \ -e MDB_MCP_API_CLIENT_SECRET="your-client-secret" \ mongodb/mongodb-mcp-server:latest <br><br> == MCPクライアントの設定 == ==== Claude Desktopの設定 ==== Claude Desktopの設定ファイルの場所は以下の通りである。<br> <br> * Linux *: <u>~/.config/Claude/claude_desktop_config.json</u> * MacOS *: <u>~/Library/Application Support/Claude/claude_desktop_config.json</u> * Windows *: <u>%APPDATA%\Claude\claude_desktop_config.json</u> <br> 接続文字列を使用する場合は、設定ファイルに以下の内容を追記する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "mongodb": { "command": "npx", "args": ["-y", "mongodb-mcp-server"], "env": { "MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/myDatabase" } } } } </syntaxhighlight> <br> Atlas APIクレデンシャルを使用する場合は、設定ファイルに以下の内容を追記する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "mongodb": { "command": "npx", "args": ["-y", "mongodb-mcp-server"], "env": { "MDB_MCP_API_CLIENT_ID": "your-atlas-service-account-id", "MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-account-secret" } } } } </syntaxhighlight> <br> Dockerを使用する場合は、設定ファイルに以下の内容を追記する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "mongodb": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "MDB_MCP_CONNECTION_STRING=mongodb+srv://username:password@cluster.mongodb.net/database", "mongodb/mongodb-mcp-server:latest" ] } } } </syntaxhighlight> <br> 設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。<br> <br> ==== Claude Codeの設定 ==== Claude Codeでは、<code>claude mcp add</code> コマンドを使用してMongoDB MCP Serverを追加できる。<br> <br> claude mcp add mongodb -- npx -y mongodb-mcp-server <br> プロジェクトの <u>.mcp.json</u> ファイルに設定を記述する場合は、以下の内容を記述する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "mongodb": { "command": "npx", "args": ["-y", "mongodb-mcp-server"], "env": { "MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/myDatabase" } } } } </syntaxhighlight> <br> ==== OpenCodeの設定 ==== OpenCodeは、Go言語でBubble Tea TUIフレームワークを使用して実装されている。<br> セッション管理、マルチセッション対応を備え、会話履歴の保存、復元、エクスポートが可能である。<br> <br> Desktop版はTauri v2ベースのネイティブアプリケーションとして実装されており、TypeScriptで実装された内部CLI、Rust + SolidJSで構築されたフロントエンドを組み合わせている。<br> <br> 設定ファイルの場所は以下の通りである。<br> * ホームディレクトリ *: <u>$HOME/.opencode.json</u> * XDG設定ディレクトリ *: <u>$XDG_CONFIG_HOME/opencode/.opencode.json</u> * ローカルディレクトリ *: <u>./.opencode.json</u> <br> stdioトランスポートでMongoDB MCP Serverを設定する場合は、設定ファイルに以下の内容を記述する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "mongodb": { "type": "stdio", "command": "npx", "args": ["-y", "mongodb-mcp-server"], "env": { "MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/database" } } } } </syntaxhighlight> <br><br> == 環境変数とオプション == ==== 環境変数一覧 ==== 下表に、MongoDB MCP Serverの動作をカスタマイズするための環境変数を示す。<br> <br> <center> {| class="wikitable" |+ 環境変数の一覧 ! 環境変数 !! 説明 |- | <code>MDB_MCP_CONNECTION_STRING</code> || MongoDBへの接続文字列を指定する。<br>MongoDB AtlasのSRV形式またはローカルMongoDB向けの標準形式が使用できる。 |- | <code>MDB_MCP_API_CLIENT_ID</code> || Atlas API認証に使用するサービスアカウントのクライアントIDを指定する。 |- | <code>MDB_MCP_API_CLIENT_SECRET</code> || Atlas API認証に使用するサービスアカウントのクライアントシークレットを指定する。 |- | <code>MDB_MCP_READ_ONLY</code> || 読み取り専用モードを有効または無効にする。<br><br>デフォルト値は <u>true</u> (読み取り専用)<br>書き込み操作を許可する場合は <u>false</u> を指定する。 |- | <code>MDB_MCP_LOG_PATH</code> || ログファイルの出力先ディレクトリパスを指定する。 |- | <code>MDB_MCP_DISABLE_EMBEDDINGS_VALIDATION</code> || ベクトル検索インデックス作成時の埋め込み検証を無効化する。 |- | <code>MDB_MCP_TELEMETRY</code> || テレメトリの送信を有効または無効にする。 |} </center> <br><br> == 接続文字列 == ==== MongoDB Atlasへの接続 ==== MongoDB Atlasのクラスタに接続する場合は、SRV形式の接続文字列を使用する。<br> <br> mongodb+srv://username:password@cluster.mongodb.net/database <br> 下表に、各パラメータの説明を示す。<br> <br> <center> {| class="wikitable" |+ 接続パラメータの一覧 ! パラメータ !! 説明 |- | <code>username</code> || MongoDBデータベースユーザ名 |- | <code>password</code> || MongoDBデータベースパスワード |- | <code>cluster.mongodb.net</code> || MongoDB Atlasのクラスタホスト名(Atlasコンソールから確認できる) |- | <code>database</code> || 接続先のデータベース名 |} </center> <br> ==== ローカルMongoDBへの接続 ==== ローカルにインストールされたMongoDBに接続する場合の接続文字列を以下に示す。<br> <br> 認証ありの場合の接続文字列を以下に示す。<br> <br> mongodb://username:password@localhost:27017/database?authSource=admin <br> 認証なしの場合の接続文字列を以下に示す。<br> <br> mongodb://localhost:27017 <br> 認証ありの場合、<code>authSource=admin</code> パラメータで認証データベースを指定する必要がある。<br> <u>SCRAM-SHA-256認証方式を使用する場合は、このパラメータを省略しないこと。</u><br> <br><br> == MongoDB MCPサーバーの機能 == MongoDB MCP Serverは、データベース操作、メタデータ管理、インデックス・ベクトル検索、Atlas管理、接続管理の5つのカテゴリでツールを提供する。<br> <br> ==== データベース操作ツール ==== 下表に、ドキュメントのクエリ・挿入・更新・削除、および集計に関するツールを示す。<br> <br> <center> {| class="wikitable" |+ データベース操作ツールの一覧 ! ツール !! 説明 |- | find || フィルタリングと投影を指定してコレクション内のドキュメントをクエリする。 |- | aggregate || コレクションに対して集計パイプラインを実行する。 |- | insertOne || コレクションに単一のドキュメントを挿入する。 |- | updateOne || コレクション内の単一ドキュメントを更新する。 |- | deleteOne || コレクションから単一ドキュメントを削除する。 |- | count || フィルタ条件に一致するドキュメント数をカウントする。 |} </center> <br> ==== メタデータとスキーマツール ==== 下表に、データベースやコレクションの情報確認、スキーマ推測に関するツールを示す。<br> <br> <center> {| class="wikitable" |+ メタデータとスキーマツールの一覧 ! ツール !! 説明 |- | listDatabases || 接続中のMongoDBインスタンスで利用可能なデータベースを一覧表示する。 |- | listCollections || 指定したデータベース内の利用可能なコレクションを一覧表示する。 |- | collection-schema || コレクション内のドキュメントを分析してスキーマを推測する。 |- | collection-storage-size || コレクションのストレージサイズを取得する。 |- | db-stats || データベースの統計情報を取得する。 |} </center> <br> ==== インデックスとベクトル検索ツール ==== 下表に、インデックスの管理、クエリの実行計画確認、ベクトル検索インデックスの作成に関するツールを示す。<br> <br> <center> {| class="wikitable" |+ インデックスとベクトル検索ツールの一覧 ! ツール !! 説明 |- | collection-indexes || コレクション上の全てのインデックスをリスト表示する。<br>ベクトル検索インデックスも含む。 |- | create-index || コレクションに新しいインデックスを作成する。 |- | drop-index || コレクションから指定したインデックスを削除する。 |- | explain || クエリの実行計画を取得してパフォーマンスを分析する。 |- | create-vector-search-index || コレクションにベクトル検索インデックスを作成する。 |} </center> <br> ==== MongoDB Atlas管理ツール ==== 下表に、MongoDB Atlasのクラスタ、ユーザ、プロジェクトの管理に関するツールを示す。<br> Atlas管理ツールを使用するには、<code>MDB_MCP_API_CLIENT_ID</code> および <code>MDB_MCP_API_CLIENT_SECRET</code> の設定が必要である。<br> <br> <center> {| class="wikitable" |+ MongoDB Atlas管理ツールの一覧 ! ツール !! 説明 |- | atlas-list-clusters || Atlasプロジェクト内のクラスタを一覧表示する。 |- | atlas-inspect-cluster || 指定したクラスタの詳細情報を取得する。 |- | atlas-create-free-cluster || 無料のMongoDBクラスタ (M0 Free Tier) を作成する。 |- | atlas-create-access-list || IPアドレスまたはCIDR範囲をアクセスリストに追加する。 |- | atlas-create-db-user || MongoDB Atlasデータベースユーザを作成する。 |- | atlas-create-project || MongoDB Atlasプロジェクトを作成する。 |- | atlas-list-projects || Atlasプロジェクトを一覧表示する。 |- | atlas-list-db-users || Atlasデータベースユーザを一覧表示する。 |- | atlas-list-orgs || Atlas組織を一覧表示する。 |- | atlas-connect-cluster || 指定したAtlasクラスタに接続する。 |} </center> <br> ==== 接続管理ツール ==== 下表に、MongoDBインスタンスへの接続と切り替えに関するツールを示す。<br> <br> <center> {| class="wikitable" |+ 接続管理ツールの一覧 ! ツール !! 説明 |- | connect || 指定した接続文字列でMongoDBインスタンスに接続する。<br>または、接続先を切り替える。 |- | switch-connection || 既存の接続間で切り替える。 |} </center> <br><br> == 使用例 == MongoDB MCP Serverの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。<br> <br> ==== ドキュメントのクエリ ==== コレクションからドキュメントを検索する場合の操作例を以下に示す。<br> <br> * usersコレクションからアクティブなユーザを検索する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : usersコレクションからステータスが "active" のユーザを全件取得してください。 </syntaxhighlight> *: <br> * 年齢でフィルタリングして特定フィールドのみ取得する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : productsコレクションから価格が1000円以上の商品の名前と価格だけを取得してください。 </syntaxhighlight> *: <br> <br> ==== 集計パイプライン ==== 集計パイプラインを使用してデータを集計・加工する場合の操作例を以下に示す。<br> <br> * カテゴリ別に売上合計を集計する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : ordersコレクションをカテゴリ別にグループ化して、各カテゴリの売上合計を計算してください。 </syntaxhighlight> *: <br> * 月次レポートを生成する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : salesコレクションから2024年の月別売上を集計して、月ごとの件数と合計金額を表示してください。 </syntaxhighlight> *: <br> <br> ==== Atlasクラスター管理 ==== MongoDB Atlasのクラスタを管理する場合の操作例を以下に示す。<br> Atlas APIクレデンシャルが設定されている必要がある。<br> <br> * クラスタの一覧を確認する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : Atlasプロジェクトのクラスタ一覧を表示してください。 </syntaxhighlight> *: <br> * 無料クラスタを作成する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : "my-dev-cluster" という名前で無料のMongoDBクラスタを作成してください。 </syntaxhighlight> *: <br> <br><br> == その他 == ==== セキュリティ ==== 下表に、MongoDB MCP Serverのセキュリティに関する推奨事項を示す。<br> <br> <center> {| class="wikitable" |+ セキュリティに関する推奨事項 ! 項目 !! 説明 |- | 読み取り専用モード || デフォルトで <code>MDB_MCP_READ_ONLY=true</code> が有効になっている。<br>書き込み操作(insertOne、updateOne、deleteOne等)を使用する場合は、<br>明示的に <code>MDB_MCP_READ_ONLY=false</code> を設定する必要がある。 |- | 認証情報の管理 || 接続文字列やAtlas APIキーなどの機密情報は、設定ファイルに直接記述せず、<br>環境変数(<code>MDB_MCP_CONNECTION_STRING</code>、<code>MDB_MCP_API_CLIENT_ID</code>、<code>MDB_MCP_API_CLIENT_SECRET</code>)を使用して、<br>管理することを推奨する。 |- | サービスアカウントの権限設定 || MongoDB AtlasのAPIアクセスに使用するサービスアカウントには、必要最小限の権限のみを付与すること。 |- | ツールアクセス制御 || MCPクライアントのツールアクセス制御機能を活用して、<br>AIアシスタントが使用できるツールを必要なものだけに制限することを推奨する。 |} </center> <br> ==== トラブルシューティング ==== 下表に、一般的なエラーと対処法を示す。<br> <br> <center> {| class="wikitable" |+ トラブルシューティング一覧 ! 問題 !! 原因 !! 対処法 |- | 認証エラーが発生する || 接続文字列のユーザ名またはパスワードが誤っている。<br>認証データベースが指定されていない。 || 接続文字列を確認する。<br>SCRAM-SHA-256を使用する場合は、<br>接続文字列に <code>authSource=admin</code> を追加する。 |- | 接続できない (Connection refused) || MongoDBがリッスンしているポート (デフォルト: 27017) が<br>ファイアウォールでブロックされている。<br>接続数の上限に達している。 || ファイアウォールの設定を確認してポート27017を開放する。<br>MongoDB Atlasのアクセスリストに自分のIPアドレスを追加する。 |- | npxコマンドが見つからない || Node.jsがインストールされていない。<br>または要件を満たすバージョンでない。 || Node.js v20.19.0以上 (v22系の場合はv22.12.0以上) をインストールする。 |- | Atlas管理ツールが動作しない || Atlas APIクレデンシャルが設定されていない。 || 環境変数 <code>MDB_MCP_API_CLIENT_ID</code> および<br><code>MDB_MCP_API_CLIENT_SECRET</code> を設定する。 |- | 書き込み操作が拒否される || 読み取り専用モードが有効になっている。 || <code>MDB_MCP_READ_ONLY=false</code> を環境変数に設定する。 |} </center> <br> ==== ログの設定 ==== MongoDB MCP Serverのログを記録することにより、問題の診断や動作の確認に役立てることができる。<br> <br> 環境変数 <code>MDB_MCP_LOG_PATH</code> にログファイルの出力先ディレクトリパスを指定することで、ログが記録される。<br> <br> Claude Desktopの設定ファイルでログパスを指定する場合は、以下のように設定する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "mongodb": { "command": "npx", "args": ["-y", "mongodb-mcp-server"], "env": { "MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/myDatabase", "MDB_MCP_LOG_PATH": "/tmp/mongodb-mcp-logs" } } } } </syntaxhighlight> <br> 指定したディレクトリが存在することを事前に確認すること。<br> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,MongoDB,MCP,Model Context Protocol,mongodb-mcp-server,Claude,AI,Atlas,NoSQL,データベース,ベクトル検索 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:設定]]
MCPサーバ - MongoDB
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse