Tablestore は MCP プロトコルを統合し、ベクトルとスカラーのハイブリッド検索機能を使用して、効率的なデータストレージと取得ソリューションを提供します。以下では、Tablestore MCP サービスの使用方法について説明します。
機能紹介
Tablestore MCP サービスは、次の 2 つのツールを提供します。
-
ストレージツール (tablestore-store): 入力テキストを埋め込みモデル (デフォルト: BAAI/bge-base-zh-v1.5) を使用してベクトルに変換し、元のテキストとそのベクトル表現の両方を Tablestore に書き込みます。
-
検索ツール (tablestore-search): クエリテキストを埋め込みモデルを使用してベクトルに変換し、ベクトルとスカラーのハイブリッドクエリを使用して Tablestore の多次元インデックスから関連する結果を取得します。
事前準備
-
Alibaba Cloud アカウント (root ユーザー) または Tablestore のアクセス権限を持つ AccessKey を作成します。
-
MCP Server をデプロイするためのサーバーを準備します。Alibaba Cloud Elastic Compute Service (ECS) を使用できます。
説明この例では、Alibaba Cloud Linux 3.2104 LTS 64 ビット、Python 3.13.2、Java 17.0.15 を実行する ECS インスタンスを使用します。
操作手順
ステップ 1: ソースコードのダウンロード
-
Git をインストールします。Git がすでにインストールされている場合は、このステップをスキップしてください。
yum -y install git -
ソースコードをダウンロードします。
git clone https://github.com/aliyun/alibabacloud-tablestore-mcp-serverネットワークの問題でダウンロードできない場合は、tablestore-mcp-server を直接ダウンロードしてサーバーにアップロードし、展開してください。次のコマンドを使用します。
tar -zxvf alibabacloud-tablestore-mcp-server.tar.gz
ステップ 2: サービスの実行
Tablestore は、Python と Java の両方のバージョンで MCP サービスを提供します。
Python
Tablestore MCP サービスの Python バージョンには、Python 3.10 以降が必要で、パッケージと環境の管理に uv を使用します。
Alibaba Cloud Linux 3.2104 LTS 64 ビットには、デフォルトで Python 3.6.8 が付属しています。Python のアップグレード手順については、「Python バージョンのアップグレード」をご参照ください。
-
MCP ソースディレクトリに移動します。
cd alibabacloud-tablestore-mcp-server/tablestore-python-mcp-server -
仮想環境を作成して有効化します。
python3 -m venv .venv && source .venv/bin/activate -
uv をインストールします。
pip3 install uv -
環境変数を設定します。
export HF_ENDPOINT=https://huggingface.co export TABLESTORE_ACCESS_KEY_ID=LTAI******************** export TABLESTORE_ACCESS_KEY_SECRET=****************************** export TABLESTORE_ENDPOINT=https://k01r********.cn-hangzhou.ots.aliyuncs.com export TABLESTORE_INSTANCE_NAME=k01r********環境変数の説明は以下の通りです。
変数名
説明
HF_ENDPOINT
HuggingFace エンドポイント。
TABLESTORE_ACCESS_KEY_ID
ご利用の Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID。
TABLESTORE_ACCESS_KEY_SECRET
ご利用の Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey Secret。
TABLESTORE_ENDPOINT
ご利用の Tablestore インスタンスのエンドポイント。ECS を使用する場合、リージョンに基づいてエンドポイントを選択します。
-
ECS と Tablestore が同じリージョンにある場合: パブリックネットワークアドレスまたは VPC アドレスのいずれかを使用します。
-
ECS と Tablestore が異なるリージョンにある場合: パブリックネットワークアドレスを使用します。
重要新規作成された Tablestore インスタンスは、デフォルトではパブリックネットワークアクセスが有効になっていません。パブリックエンドポイントを使用するには、Tablestore コンソールに移動し、[インスタンス管理] > ネットワーク管理 を選択します。許可されているネットワークタイプ を選択し、インターネット にチェックを入れ、設定 をクリックして保存します。
TABLESTORE_INSTANCE_NAME
ご利用の Tablestore インスタンスの名前。
-
-
MCP サービスを実行します。
uv run tablestore-mcp-server初回実行時に依存関係がダウンロードされます。しばらくお待ちください。ネットワークの問題でダウンロードが失敗した場合は、コマンドを再実行してください。実行が成功すると、次のようなログが表示されます。
INFO:tablestore_mcp_server.server:mcp host:0.0.0.0, port:8001 INFO:root:run tablestore-mcp-server by: sse
Java
Tablestore MCP サービスを実行するには、JDK 17 が必要です。
-
JDK をインストールします。
yum -y install java-17-openjdk-devel.x86_64 -
MCP ソースディレクトリに移動します。
cd alibabacloud-tablestore-mcp-server/tablestore-java-mcp-server -
ソースコードをコンパイルします。
./mvnw package -DskipTests -s settings.xmlコンパイルが成功すると、次のようなログが表示されます。
[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:58 min [INFO] Finished at: 2025-03-26T11:31:21+08:00 [INFO] ------------------------------------------------------------------------ -
環境変数を設定します。
export HF_ENDPOINT=http://hf-mirror.com export TABLESTORE_ACCESS_KEY_ID=LTAI******************** export TABLESTORE_ACCESS_KEY_SECRET=****************************** export TABLESTORE_ENDPOINT=https://k01r********.cn-hangzhou.ots.aliyuncs.com export TABLESTORE_INSTANCE_NAME=k01r********環境変数の説明は以下の通りです。
変数名
説明
HF_ENDPOINT
HuggingFace ミラーエンドポイント。
TABLESTORE_ACCESS_KEY_ID
ご利用の Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID。
TABLESTORE_ACCESS_KEY_SECRET
ご利用の Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey Secret。
TABLESTORE_ENDPOINT
ご利用の Tablestore インスタンスのエンドポイント。ECS を使用する場合、リージョンに基づいてエンドポイントを選択します。
-
ECS と Tablestore が同じリージョンにある場合: パブリックネットワークアドレスまたは VPC アドレスのいずれかを使用します。
-
ECS と Tablestore が異なるリージョンにある場合: パブリックネットワークアドレスを使用します。
重要新しく作成された Tablestore インスタンスでは、デフォルトでパブリックネットワークアクセスが有効になっていません。パブリックエンドポイントを使用するには、Tablestore コンソールに移動し、[インスタンス管理] > ネットワーク管理 に進み、許可されているネットワークタイプ を選択し、インターネット にチェックを入れ、設定 をクリックして保存します。
TABLESTORE_INSTANCE_NAME
ご利用の Tablestore インスタンスの名前。
-
-
MCP サービスを実行します。
java -jar target/tablestore-java-mcp-server-1.0-SNAPSHOT.jar実行が成功すると、次のようなログが表示されます。
2025-03-26T11:35:31.519+08:00 INFO 5116 --- [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8080 (http) 2025-03-26T11:35:31.534+08:00 INFO 5116 --- [ main] c.a.openservices.tablestore.sample.App : Started App in 44.143 seconds (process running for 44.766)
ステップ 3: MCP サービスの使用
-
Cherry Studio のウェブサイトにアクセスして、クライアントをダウンロードし、インストールします。
-
左下隅の [設定] ボタンをクリックして、モデルサービス、デフォルトモデル、および MCP サーバーを設定します。
-
モデルサービス: Cherry Studio には複数のモデルプロバイダーが含まれています。ニーズに合わせて 1 つを選択し、その API キーを取得して、モデルサービスにキーを入力してモデルを管理します。この例では、Alibaba Cloud Model Studio の qwen-max を使用します。使用する前に、API キーを取得してください。
-
デフォルトモデル: デフォルトモデルを設定するか、会話中に 1 つを選択します。
メッセージ入力ツールバーで、@ アイコンをクリックしてモデル選択パネルを開きます。`qwen-vl-plus`、`qwen-coder-plus`、`qwen-turbo`、`qwen-plus`、`qwen-max` などの Alibaba Cloud Model Studio モデルを選択できます。
-
MCP サーバー: [サーバーの追加] をクリックします。名前と説明をカスタマイズできます。[タイプ] を SSE に設定します。URL フォーマットは
http://server_ip:port/sseです。デフォルトのポートは、Python の場合は 8001、Java の場合は 8080 です。初めて [MCP サーバー設定ページ] にアクセスする際に、プロンプトに従って UV と Bun をインストールします。重要ECS を使用する場合は、セキュリティグループルールを追加してください。インバウンドルールで、MCP サービスが使用するポートへのカスタム TCP トラフィックを許可します。
[リクエストヘッダー] セクションで、`Content-Type=application/json` と `Authorization=Bearer token` を設定します。
-
-
チャットインターフェイスで MCP サーバーを選択します。
下部のツールバーにある緑色のターミナルアイコンをクリックします。 Tablestore が正常に接続されたことを示すパネルが表示されます。 エンドポイントは
http://<IP address>:8001/sseとして表示されます。 緑色のチェックマークは、正常な接続を示します。 -
アシスタントとチャットして、ドキュメントを Tablestore に書き込みます。
`Alibaba Cloud ECS の基本的な課金方法は何ですか?ドキュメントを生成して Tablestore に書き込んでください` のような質問を入力します。アシスタントの返信には、ステータスが 完了 ✓ の tablestore-store ツール呼び出しカードが表示され、ドキュメントが MCP ツールを介して Tablestore に正常に書き込まれたことを示します。
サーバーで MCP 呼び出しログを表示できます。
INFO:mcp.server.lowlevel.server:Processing request of type CallToolRequest Batches: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.82it/s] INFO:tablestore_mcp_server.tablestore_connector:Storing Node ID: 2d80f2ab-9996-49d4-b23f-28b3d02b70bc Text: There are two base billing models for Alibaba Cloud ECS: Pay-As- You-Go and Subscription.Tablestore コンソールで書き込まれたデータを表示することもできます。
テーブル `ts_mcp_server_py_v1` の [データ管理] タブで、挿入された行に `id` (プライマリキー)、`_content`、`_embedding`、および `title` の列が含まれていることが確認でき、ストレージが成功したことがわかります。
-
アシスタントとチャットして、Tablestore から関連ドキュメントを取得します。
アシスタントの返信には、tablestore-search ツール呼び出しのステータスが「完了 ✓」と表示され、MCP サービスが Tablestore から関連ドキュメントを正常に取得し、それに基づいて応答を生成したことを示します。
サーバーで MCP 呼び出しログを表示できます。
INFO:mcp.server.lowlevel.server:Processing request of type CallToolRequest INFO:tablestore_mcp_server.tablestore_connector:Search query: Alibaba Cloud ECS billing models, size: 5 Batches: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.34it/s] INFO:llama_index.vector_stores.tablestore.base:Tablestore search successfully. request_id:000639da-cc10-5075-8fac-bb0a59c4b4bd
ローカルデバッグとカスタム開発
ローカルの IDE で MCP ソースコードを実行し、MCP Inspector ツールを使用してデバッグできます。
ステップ 1: 環境変数の設定
コードを実行する前に、システム環境変数を設定します。設定後、IDE、コマンドラインインターフェイス、デスクトップアプリケーション、およびバックグラウンドサービスを再起動またはリフレッシュして、新しい環境変数が有効になるようにします。
Linux
-
コマンドラインインターフェイスで、環境変数を
~/.bashrcファイルに追加します。echo "export TABLESTORE_ACCESS_KEY_ID='LTAI********************'" >> ~/.bashrc echo "export TABLESTORE_ACCESS_KEY_SECRET='******************************'" >> ~/.bashrc echo "export TABLESTORE_ENDPOINT='https://k01r********.cn-hangzhou.ots.aliyuncs.com'" >> ~/.bashrc echo "export TABLESTORE_INSTANCE_NAME='k01r********'" >> ~/.bashrc echo "export HF_ENDPOINT='http://hf-mirror.com'" >> ~/.bashrc -
変更を適用します。
source ~/.bashrc -
環境変数を確認します。
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET echo $TABLESTORE_ENDPOINT echo $TABLESTORE_INSTANCE_NAME echo $HF_ENDPOINT
macOS
-
ターミナルで、デフォルトのシェルを確認します。
echo $SHELL -
シェルの種類に応じて進めます。
Zsh
-
~/.zshrcに環境変数を追記します。echo "export TABLESTORE_ACCESS_KEY_ID='LTAI********************'" >> ~/.zshrc echo "export TABLESTORE_ACCESS_KEY_SECRET='******************************'" >> ~/.zshrc echo "export TABLESTORE_ENDPOINT='https://k01r********.cn-hangzhou.ots.aliyuncs.com'" >> ~/.zshrc echo "export TABLESTORE_INSTANCE_NAME='k01r********'" >> ~/.zshrc echo "export HF_ENDPOINT='http://hf-mirror.com'" >> ~/.zshrc -
変更を適用します。
source ~/.zshrc -
環境変数を確認します。
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET echo $TABLESTORE_ENDPOINT echo $TABLESTORE_INSTANCE_NAME echo $HF_ENDPOINT
Bash
-
~/.bash_profileに環境変数を追記します。echo "export TABLESTORE_ACCESS_KEY_ID='LTAI********************'" >> ~/.bash_profile echo "export TABLESTORE_ACCESS_KEY_SECRET='******************************'" >> ~/.bash_profile echo "export TABLESTORE_ENDPOINT='https://k01r********.cn-hangzhou.ots.aliyuncs.com'" >> ~/.bash_profile echo "export TABLESTORE_INSTANCE_NAME='k01r********'" >> ~/.bash_profile echo "export HF_ENDPOINT='http://hf-mirror.com'" >> ~/.bash_profile -
変更を適用します。
source ~/.bash_profile -
次のコマンドを実行して、環境変数が有効になったかどうかを確認します。
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET echo $TABLESTORE_ENDPOINT echo $TABLESTORE_INSTANCE_NAME echo $HF_ENDPOINT
-
Windows
CMD
-
CMD で、環境変数を設定します。
setx TABLESTORE_ACCESS_KEY_ID "LTAI********************" setx TABLESTORE_ACCESS_KEY_SECRET "******************************" setx TABLESTORE_ENDPOINT "https://k01r********.cn-hangzhou.ots.aliyuncs.com" setx TABLESTORE_INSTANCE_NAME "k01r********" setx HF_ENDPOINT "http://hf-mirror.com" -
CMD を再起動した後、環境変数を確認します。
echo %TABLESTORE_ACCESS_KEY_ID% echo %TABLESTORE_ACCESS_KEY_SECRET% echo %TABLESTORE_ENDPOINT% echo %TABLESTORE_INSTANCE_NAME% echo %HF_ENDPOINT%
PowerShell
-
PowerShell で、以下を実行します。
[Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", "LTAI********************", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", "******************************", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("TABLESTORE_ENDPOINT", "https://k01r********.cn-hangzhou.ots.aliyuncs.com", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("TABLESTORE_INSTANCE_NAME", "k01r********", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("HF_ENDPOINT", "http://hf-mirror.com", [EnvironmentVariableTarget]::User) -
環境変数を確認します。
[Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("TABLESTORE_ENDPOINT", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("TABLESTORE_INSTANCE_NAME", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("HF_ENDPOINT", [EnvironmentVariableTarget]::User)
ステップ 2: ソースコードの実行
Python
MCP ソースコードをローカルで実行するための要件:
-
Python 3.10 以降。
-
PyCharm 2024.3.2 以降。
-
PyCharm で uv を設定します。
環境設定後、PyCharm で tablestore-python-mcp-server ディレクトリを開き、src/tablestore_mcp_server/main.py を実行します。実行成功後、コンソールに次のように出力されます。
INFO:tablestore_mcp_server.server:mcp host:0.0.0.0, port:8001
INFO:root:run tablestore-mcp-server by: sse
Java
MCP ソースコードをローカルで実行するための要件: JDK 17。
環境を設定した後、 IDEA で tablestore-java-mcp-server ディレクトリを開き、 src/main/java/com.alicloud.openservices.tablestore.sample/App.java を実行します。実行成功後、コンソールに次のように出力されます:
2025-03-31T16:50:50.582+08:00 INFO 27160 --- [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8080 (http)
2025-03-31T16:50:50.594+08:00 INFO 27160 --- [ main] c.a.openservices.tablestore.sample.App : Started App in 79.764 seconds (process running for 80.524)
ステップ 3: ツールのデバッグ
-
Node.js をインストールします。
-
ターミナルで、次のコマンドを実行します。プロンプトが表示されたら
yを入力して MCP Inspector を起動します。npx @modelcontextprotocol/inspector node build/index.js初回実行時にツールがダウンロードされます。しばらくお待ちください。成功すると、ターミナルに次のような内容が出力されます (ポートは異なる場合があります):
MCP Inspector is up and running at: http://localhost:6274 -
ブラウザで、ターミナルに表示されるアドレスにアクセスし、MCP Inspector ダッシュボードを開きます。トランスポートタイプを選択して URL を入力し、[接続] をクリックして MCP サービスに接続します。[ツールを一覧表示] をクリックすると、利用可能なツールを表示できます。
例えば、[Transport Type] を [SSE] に、[URL] を `http://localhost:8001/sse` に設定します。接続が成功すると、ステータスが緑色 (「Connected」) に変わります。[List Tools] をクリックすると、登録されているツールが表示されます: tablestore-store (後で取得するためにドキュメントを Tablestore に保存) と tablestore-search (自然言語を使用して Tablestore で意味的に類似したドキュメントを検索)。
-
[tablestore-store] ツールを選択します。 [information] フィールドにコンテンツを入力し、[Run Tool] をクリックして Tablestore にデータを書き込みます。
IDE コンソールでログを表示するか、Tablestore コンソールにログインしてデータを確認できます。
[データ管理] タブで、テーブル `ts_mcp_server_py_v1` に 1 行が挿入され、id (プライマリキー)、_content (テキスト)、_embedding (ベクトル) の 3 つの列が含まれていることが確認でき、挿入が成功したことがわかります。
-
tablestore-search ツールを選択します。[クエリ] フィールドにクエリとサイズ (結果の数) を入力し、[ツールを実行] をクリックして Tablestore を検索します。
成功すると、結果にはクエリと意味的に類似したドキュメントが表示され、一致したテキスト (_content) と類似度スコア (_score) が含まれます。
Python バージョンのアップグレード
以下の手順では、Python 3.13.2 にアップグレードする方法を示します。
-
Python をダウンロードします。
wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tgzネットワークの問題でダウンロードできない場合は、Python-3.13.2 を直接ダウンロードしてサーバーにアップロードしてください。
-
ファイルを展開します。
tar -zxvf Python-3.13.2.tgz -
依存関係をインストールします。
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel xz-devel libffi-devel libuuid-devel libtirpc-devel libnsl2-devel -
Python ディレクトリに入ります。
cd Python-3.13.2 -
インストールパスを設定します。
./configure -
Python をコンパイルします。
make -
Python をインストールします。
make install -
インストールされたバージョンを確認します。
-
Python のバージョンを確認します。
python3 --version -
Pip のバージョンを確認します。
pip3 --version
-