Tablestore は MCP プロトコルを統合し、ベクトルとスカラーのハイブリッド検索機能を使用して、効率的なデータストレージと取得ソリューションを提供します。以下では、Tablestore MCP サービスの使用方法について説明します。
機能紹介
Tablestore MCP サービスは、2 つのツールを提供します:
ストレージツール (tablestore-store):埋め込みモデル (デフォルト:BAAI/bge-base-zh-v1.5) を使用して入力テキストをベクトルに変換し、元のテキストとそのベクトル表現の両方を Tablestore に書き込みます。
検索ツール (tablestore-search):埋め込みモデルを使用してクエリテキストをベクトルに変換し、ベクトルとスカラーのハイブリッドクエリを使用して Tablestore の検索インデックスから関連する結果を取得します。
事前準備
ご利用の Alibaba Cloud アカウントまたは Tablestore のアクセス権限を持つ Resource Access Management (RAM) ユーザーの AccessKey を作成します。
MCP サーバーをデプロイするためのサーバーを準備します。Alibaba Cloud 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/activateuv をインストールします。
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_64MCP ソースディレクトリに移動します。
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 で 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: sseJava
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 サービスに接続します。[ツールを一覧表示] をクリックして、利用可能なツールを表示します。
たとえば、[トランスポートタイプ] を [SSE] に、[URL] を
http://localhost:8001/sseに設定します。接続が成功すると、ステータスが緑色 (「接続済み」) に変わります。[ツールを一覧表示] をクリックすると、登録されているツールが表示されます:tablestore-store (後で取得するためにドキュメントを Tablestore に保存) と tablestore-search (自然言語を使用して Tablestore で意味的に類似したドキュメントを検索)。tablestore-store ツールを選択します。information フィールドにコンテンツを入力し、[ツールを実行] をクリックしてデータを Tablestore に書き込みます。
IDE コンソールでログを表示するか、Tablestore コンソールにログインしてデータを確認できます。
[データ管理] タブで、テーブル
ts_mcp_server_py_v1に 1 行が挿入され、3 つの列が含まれていることがわかります:id (プライマリキー)、_content (テキスト)、および _embedding (ベクトル)。これにより、挿入が成功したことが確認できます。tablestore-search ツールを選択します。query フィールドにクエリとサイズ (結果の数) を入力し、[ツールを実行] をクリックして 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-develPython ディレクトリに入ります。
cd Python-3.13.2インストールパスを設定します。
./configurePython をコンパイルします。
makePython をインストールします。
make installインストールされたバージョンを確認します。
Python のバージョンを確認します。
python3 --versionPip のバージョンを確認します。
pip3 --version