mcp-server-nacos: A Nacos MCP server について
Nacos クラスターの操作と自動化を目的とする MCP サーバーで、サービスディスカバリーや設定情報を調べるユーザー向けです。読み取り、検索、一覧表示に対応し、書き込みはできません。現在は開発初期段階です。
主な機能
- 01ネームスペースとサービスの一覧表示
- 02サービス詳細とインスタンスの確認
- 03設定と履歴の検索
- 04設定リスナー関係の確認
- 05読み取りと検索のみ対応
活用シーン
- 01会話を通じた Nacos サービスとインスタンスの確認
- 02設定値と変更履歴の検索
- 03サービス購読者や設定リスナーの調査
MCP 対応
MCP クライアント向けに、Nacos クラスターのネームスペース、サービス、インスタンス、設定、履歴、リスナー関係を調べるツールを公開します。現在は読み取り、検索、一覧表示のみで、書き込み操作には対応していません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-server-nacos:Nacos MCP サーバー
概要
Nacos は、動的なサービスディスカバリー、設定、サービス管理を目的に設計された使いやすいプラットフォームです。クラウドネイティブアプリケーションやマイクロサービスプラットフォームを簡単に構築できます。
この MCP(Model Context Protocol)サーバーは、Nacos との対話と自動化を目的としています。大規模言語モデルを介して、Nacos クラスター内の namespace、service、configuration に関する情報を検索および読み取るためのツールを提供します。
mcp-server-nacos は現在、開発初期段階です。サーバーの開発と改善を進める中で、機能や利用可能なツールは変更・拡張される可能性があります。また、mcp-server-nacos は現在のバージョンでは読み取り、検索、一覧表示の操作のみを提供し、書き込み操作には対応していません。書き込み操作は今後のバージョンで対応する予定です。
もう一点、mcp-server-nacos には次のバージョンが必要です。
1. Nacos version required upper `3.0.0`, because of depended on the [Nacos Admin API](https://nacos.io/en/swagger/admin/) in 3.x.
2. python version required 3.x, recommend upper `3.13`.
ツール
list_namespaces- 現在の Nacos クラスター内のネームスペースの一覧を取得します。
- 入力:
- なし
- 戻り値:現在の Nacos クラスター内のネームスペースの一覧。
list_services- このツールは、指定したネームスペース内のサービス一覧を取得します。レスポンス形式は
withInstancesパラメーターによって異なります。withInstances=true:インスタンスを含むサービスの詳細(ServiceDetailInfoオブジェクト)を返します。withInstances=false:インスタンスを含まないサービスのメタデータ(ServiceViewオブジェクト)を返します。注:withInstances=trueの場合、API はメモリとネットワークを過度に消費する可能性があります。1 つまたは少数のサービスのインスタンス一覧だけを取得したい場合は、withInstances=falseとList Service Instancesの併用をお勧めします。 - 入力:
pageNo(number):現在のページ番号。デフォルトは 1 です。pageSize(number):各ページに含まれるサービス数。デフォルトは 100 です。namespaceId(string, optional):サービスの namespaceId。指定がない場合、デフォルトはpublicです。groupNameParam(string, optional):サービスの groupName パターン。指定がない場合、デフォルトの null はすべてのグループを意味します。serviceNameParam(string, optional):サービスの serviceName パターン。指定がない場合、デフォルトの null はすべてのサービスを意味します。ignoreEmptyService(bool, optional):結果内の空のサービスを無視するかどうか。デフォルトは true です。withInstances(bool, optional):結果内で各サービスにインスタンスを含めるかどうか。false が推奨され、デフォルトです。
- 戻り値:指定したネームスペース内のサービス一覧。
- このツールは、指定したネームスペース内のサービス一覧を取得します。レスポンス形式は
get_service- このツールは、インスタンス一覧を含まず、メタデータとクラスターを含む、指定したサービスの詳細情報を取得します。
- 入力:
namespaceId(string, optional):サービスの namespaceId。指定がない場合、デフォルトはpublicです。groupName(string, optional):サービスの groupName パターン。指定がない場合、デフォルトはDEFAULT_GROUPです。serviceName(string):サービスの serviceName パターン。必須です。
- 戻り値:指定したサービスの詳細情報。
list_service_instances- このツールは、指定したサービスのインスタンス一覧を取得します。
- 入力:
namespaceId(string, optional):サービスの namespaceId。指定がない場合、デフォルトはpublicです。groupName(string, optional):サービスの groupName パターン。指定がない場合、デフォルトはDEFAULT_GROUPです。serviceName(string):サービスの serviceName パターン。必須です。clusterName(string, optional):サービス内のインスタンスのクラスター名。省略可能です。デフォルトの null はすべてのクラスターに一致することを意味します。
- 戻り値:指定したサービスのインスタンス一覧。
list_service_subscribers- このツールは、指定したサービスのサブスクライバー一覧を取得します。
- 入力:
pageNo(number):現在のページ番号。デフォルトは 1 です。pageSize(number):各ページに含まれるサービスのサブスクライバー数。デフォルトは 100 です。namespaceId(string, optional):サービスの namespaceId。指定がない場合、デフォルトはpublicです。groupName(string, optional):サービスの groupName パターン。指定がない場合、デフォルトはDEFAULT_GROUPです。serviceName(string):サービスの serviceName パターン。必須です。aggregation(bool, optional):クラスター全体から集約するかどうか。
- 戻り値:指定したサービスのサブスクライバー一覧。
list_configs- このツールは、指定したネームスペース内の設定一覧を取得します。
- 入力:
pageNo(number):現在のページ番号。デフォルトは 1 です。pageSize(number):各ページに含まれる設定数。デフォルトは 100 です。namespaceId(string, optional):設定の namespaceId。指定がない場合、デフォルトはpublicです。groupName(string, optional):設定の groupName パターン。デフォルトの null はすべてのグループを意味します。dataId(string, optional):設定の dataId パターン。デフォルトの null はすべての dataId を意味します。type(string, optional):設定のタイプ。デフォルトの null はすべてのタイプを意味します。configTags(string, optional):設定のタグ。デフォルトの null はすべてのタグを意味します。appName(string, optional):設定の appName。デフォルトの null はすべての appName を意味します。search(string, optional):設定一覧の検索方法。デフォルトはblurで、accurateも指定できます。
- 戻り値:指定したネームスペース内の設定一覧。
get_config- 指定した設定の詳細を取得します。
- 入力:
namespaceId(string, optional):設定の namespaceId。指定がない場合、デフォルトはpublicです。groupName(string):設定の groupName。必須です。dataId(string):設定の dataId。必須です。
- 戻り値:指定した設定の詳細。
list_config_history- このツールは、設定の公開履歴全体を取得します。
- 入力:
pageNo(number):現在のページ番号。デフォルトは 1 です。pageSize(number):各ページに含まれる設定履歴レコード数。デフォルトは 100 です。namespaceId(string, optional):設定の namespaceId。指定がない場合、デフォルトはpublicです。groupName(string):設定の groupName。必須です。dataId(string):設定の dataId。必須です。
- 戻り値:指定したネームスペース内の設定一覧。
get_config_history- 設定の特定の履歴変更レコードを取得します。
- 入力:
namespaceId(string, optional):設定の namespaceId。指定がない場合、デフォルトはpublicです。groupName(string):設定の groupName。必須です。dataId(string):設定の dataId。必須です。nid(number):設定履歴レコードの実際の ID。List config history ツールのidフィールドから取得します。
- 戻り値:設定の履歴変更レコード。
list_config_listeners
- 特定の設定をサブスクライブしているリスナーの一覧を取得します。
- 入力:
namespaceId(string, optional):設定の namespaceId。指定がない場合、デフォルトはpublicです。groupName(string):設定の groupName。必須です。dataId(string):設定の dataId。必須です。aggregation(bool, optional):クラスター全体から集約するかどうか。
- 戻り値:特定の設定をサブスクライブしているリスナーの一覧。
list_listened_configs
- 特定のクライアント IP アドレスがサブスクライブしている設定の一覧を取得します。
- 入力:
namespaceId(string, optional):設定の namespaceId。指定がない場合、デフォルトはpublicです。ip(string):設定リスナーのクライアント IP。必須です。aggregation(bool, optional):クラスター全体から集約するかどうか。
- 戻り値:特定のクライアント IP アドレスがサブスクライブしている設定の一覧。
インストール
uv を使用する(推奨)
uv を使用する場合、特別なインストールは必要ありません。uvx を使用して、mcp-server-nacos を直接実行します。
PIP を使用する
または、pip を使って mcp-server-nacos をインストールできます。
pip install mcp-server-nacos
インストール後、次のコマンドをスクリプトとして実行できます。
python -m mcp_server_nacos
設定
Claude Desktop での使用
claude_desktop_config.json に次の内容を追加します。
uvx を使用する
"mcpServers": {
"git": {
"command": "uvx",
"args": [
"nacos-mcp-server",
"--host",
"your_nacos_host",
"--port",
"your_nacos_main_port, such as 8848",
"--access_token",
"your_nacos_access_token, get from `login` api: /nacos/v3/auth/user/login with `username` and `password`"
],
}
}
commandフィールドにuvx実行ファイルのフルパスを指定する必要がある場合があります。MacOS/Linux ではwhich uvx、Windows ではwhere uvxを実行すると確認できます。
pip によるインストールを使用する
"mcpServers": {
"git": {
"command": "python",
"args": [
"-m",
"nacos-mcp-server",
"--host",
"your_nacos_host",
"--port",
"your_nacos_main_port, such as 8848",
"--access_token",
"your_nacos_access_token, get from `login` api: /nacos/v3/auth/user/login with `username` and `password`"
],
}
}
開発
ローカルで開発する場合は、次の手順に従ってください。
- このリポジトリをローカル環境にクローンします。
src/mcp_server_nacosのコードを変更して、必要な機能を実装します。- Claude デスクトップアプリを使用してテストします。次の内容を claude_desktop_config.json に追加します。
{
"mcpServers": {
"mcp-server-nacos": {
"command": "uv",
"args": [
"--directory",
"/<path to mcp-server-nacos>/src/mcp_server_nacos",
"run",
"mcp-server-nacos"
]
}
}
ライセンス
mcp-server-nacos は Apache 2.0 License の下でライセンスされています。Apache 2.0 License の利用規約に従うことを条件に、ソフトウェアを自由に使用、変更、配布できます。詳細については、プロジェクトリポジトリの LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。