Tablestore は MCP プロトコルを統合し、ベクトルとスカラーのハイブリッド機能を活用した効率的なデータストレージおよび取得を実現します。本トピックでは、Tablestore MCP サービスの利用方法について説明します。
背景情報
Tablestore MCP サービスは、以下の 2 つのツールを提供します。
ストレージツール (tablestore-store):データは埋め込みモデル(デフォルトは BAAI/bge-base-zh-v1.5)によってベクトルに変換され、元のテキストとともに Tablestore に書き込まれます。
取得ツール (tablestore-search):ユーザーのクエリテキストが埋め込みモデルによってベクトルに変換され、Tablestore の多次元インデックス(ベクトルおよびスカラーを用いたハイブリッドクエリ)で検索され、ユーザーが期待する結果が取得されます。
事前準備
サービスの有効化とインスタンスの作成を行います。
AccessKey の作成を、Alibaba Cloud アカウントまたは Tablestore へのアクセス権限を持つ RAM ユーザーに対して実行します。
MCP サーバーをデプロイするためのサーバーを準備します。Alibaba Cloud ECS を使用できます。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 は、MCP サービスの Python 版および Java 版を提供します。
Python
Tablestore MCP サービスの Python 版は、Python 3.10 以降を必要とし、パッケージおよび環境管理に uv を使用します。
Alibaba Cloud Linux 3.2104 LTS 64 ビットシステムにおけるデフォルトの Python 3 バージョンは 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 サービスの実行には、JDK17 が必要です。
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 には多数の組み込みモデルサービスプロバイダーがあります。必要に応じてモデルサービスプロバイダーを選択し、プロバイダーの API キーを取得して、モデルサービス欄にキーを入力してモデルを管理します。本トピックでは、Alibaba Cloud Model Studio の qwen-max モデルを使用します。このモデルを利用するには、事前にAPI キーの取得が必要です。
デフォルトモデル:デフォルトモデルを設定します。会話ページでもモデルを選択できます。

MCP サーバー:サーバーを追加します。名前および説明は任意に設定できます。タイプとして SSE を選択します。URL の形式は
http://server_ip:port/sseです。Python のデフォルトポートは 8001、Java のデフォルトポートは 8080 です。MCP サーバー設定ページに初めてアクセスした際には、画面上の指示に従って UV および Bun をインストールする必要があります。重要ECS を使用している場合、セキュリティグループルールの追加を行い、インバウンドルールでカスタム TCP ポートへのアクセスを許可する必要があります。宛先ポートは、MCP サービスが実行されているポートである必要があります。

会話ページで 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: Alibaba Cloud ECS には、従量課金およびサブスクリプションという 2 つの基本的な課金モデルがあります。また、Tablestore コンソールで書き込まれたデータを確認することもできます。

アシスタントと会話を行い、Tablestore から関連するドキュメントを取得します。

サーバー上で MCP 呼び出しログを確認します。
INFO:mcp.server.lowlevel.server:Processing request of type CallToolRequest INFO:tablestore_mcp_server.tablestore_connector:Search query: Alibaba Cloud ECS 課金モデル, 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 で MCP ソースコードディレクトリ 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 ソースコードをローカルで実行するための環境要件は、JDK17 です。
環境構成を完了したら、IDEA で MCP ソースコードディレクトリ 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ターミナルで出力された URL をブラウザで開き、MCP Inspector 管理ページにアクセスします。その後、ローカルでの実行状況に応じて送信タイプを選択し、URL を入力して 接続 をクリックして MCP サービスに接続します。ツール一覧 をクリックして、デバッグ可能なツールを確認します。

tablestore-store ツールを選択し、情報 にコンテンツを入力して、ツールの実行 をクリックして、データを Tablestore に書き込みます。

IDE コンソールでログを確認するか、Tablestore コンソール にログインしてデータを確認します。

tablestore-search ツールを選択し、クエリ にクエリコンテンツおよびサイズ(返却するデータ件数)を入力して、ツールの実行 をクリックして、Tablestore 内のデータをクエリします。

Python バージョンのアップグレード
本セクションでは、Python 3.13.2 を例として Python バージョンのスペックアップ方法について説明します。
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