表格存储(Tablestore)集成了MCP协议,通过向量和标量的混合检索能力,提供高效的数据存储与检索解决方案。通过本文您可以了解Tablestore MCP服务的使用方法。
功能介绍
Tablestore MCP服务提供了以下两个工具:
存储工具(tablestore-store):数据经过Embedding模型(默认为BAAI/bge-base-zh-v1.5)转成向量,连同原文本一起写入到表格存储。
检索工具(tablestore-search):用户的查询文本经过Embedding模型转成向量,检索表格存储的多元索引(使用向量和标量进行混合查询),召回用户期望的结果。
准备工作
为阿里云账号或具有表格存储访问权限的RAM用户创建AccessKey。
准备一台部署 MCP Server 的服务器,您可以使用阿里云ECS。
说明本文使用的 ECS 服务器操作系统为Alibaba Cloud Linux 3.2104 LTS 64位,Python版本为 3.13.2,Java 版本为 17.0.15。
使用步骤
步骤一:下载源码
安装Git。如果您使用的服务器已安装Git,请跳过该步骤。
yum install git
下载源码。
git clone https://github.com/aliyun/alibabacloud-tablestore-mcp-server
如果因为网络问题无法下载,您可以直接下载tablestore-mcp-server,将其上传到服务器后进行解压。解压命令如下:
tar -zxvf alibabacloud-tablestore-mcp-server.tar.gz
步骤二:运行服务
表格存储提供Python和Java两个版本的MCP服务。
Python
Python版本的表格存储MCP服务需要Python3.10及以上版本,并使用uv进行包和环境管理。
Alibaba Cloud Linux 3.2104 LTS 64位系统默认的Python3版本为3.6.8,升级 Python 版本操作请参见升级 Python 版本。
进入MCP的源码目录。
cd alibabacloud-tablestore-mcp-server/tablestore-python-mcp-server
安装uv。
pip3 install uv
关于uv安装的详细信息请参见官方文档。
创建虚拟环境。如果您使用的是其它Python版本,请修改版本号。
uv venv --python 3.13
配置环境变量。
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
阿里云账号或RAM用户的AccessKey ID。
TABLESTORE_ACCESS_KEY_SECRET
阿里云账号或RAM用户的AccessKey Secret。
TABLESTORE_ENDPOINT
表格存储实例的访问地址Endpoint。如果您使用的是ECS,请根据地域情况选择访问地址:
ECS与表格存储在同一地域:选择公网地址或者VPC地址。
ECS与表格存储不在同一地域:选择公网地址。
重要表格存储新创建的实例默认不开启公网访问,如果您需要使用公网访问地址,请在表格存储控制台实例管理的网络管理页签中允许网络类型选中公网,并单击设置保存配置。
TABLESTORE_INSTANCE_NAME
表格存储实例的名称。
运行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
运行表格存储MCP服务需要JDK17版本。
安装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
阿里云账号或RAM用户的AccessKey ID。
TABLESTORE_ACCESS_KEY_SECRET
阿里云账号或RAM用户的AccessKey Secret。
TABLESTORE_ENDPOINT
表格存储实例的访问地址Endpoint。如果您使用的是ECS,请根据地域情况选择访问地址:
ECS与表格存储在同一地域:选择公网地址或者VPC地址。
ECS与表格存储不在同一地域:选择公网地址。
重要表格存储新创建的实例默认不开启公网访问,如果您需要使用公网访问地址,请在表格存储控制台实例管理的网络管理页签中允许网络类型选中公网,并单击设置保存配置。
TABLESTORE_INSTANCE_NAME
表格存储实例的名称。
运行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)
步骤三:使用MCP服务
前往Cherry Studio官网下载并安装客户端。
单击左下角的设置按钮,设置模型服务、默认模型和MCP服务器。
模型服务:Cherry Studio内置了非常多的模型服务商,您可以根据自己的需要选择模型服务商,获取服务商的API密钥并在模型服务中填写密钥以及管理模型。本文使用的阿里云百炼的qwen-max模型,使用前需要获取API Key。
默认模型:设置默认模型,您也可以在对话页面选择模型。
MCP服务器:单击添加服务器,名称和描述可以自定义,类型选择SSE,URL的格式为
http://server_ip:port/sse
,Python默认的端口为8001,Java默认的端口为8080。首次进入MCP服务器设置页面还需要按照提示安装UV和Bun。重要如果您使用的是ECS,需要添加安全组规则,在入方向规则中添加自定义TCP端口的允许访问策略,访问目的端口为MCP服务运行的端口。
在对话页面选择MCP服务器。
与助手进行对话,将文档写入到表格存储中。
您可以在服务器中查看MCP调用日志。
INFO:mcp.server.lowlevel.server:Processing request of type CallToolRequest Batches: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 8.01it/s] INFO:tablestore_mcp_server.tablestore_connector:Storing Node ID: 95186b3b-1aae-4f99-ae5e-da884121943c Text: 阿里云 ECS 提供了两种基础计费方式:按量付费和包年包月。按量付费是根据实际使用时长进行计费,适合短期或临时需求;包年包月则是 预付费模式,用户可以按照一年或一个月的周期购买 ECS 实例,适用于长期稳定的需求。
您也可以在表格存储控制台查看写入的数据。
与助手进行会话,检索表格存储中的相关文档。
您可以在服务器中查看MCP调用日志。
INFO:mcp.server.lowlevel.server:Processing request of type CallToolRequest INFO:tablestore_mcp_server.tablestore_connector:Search query: ECS 计费文档, size: 5 Batches: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.01it/s] INFO:llama_index.vector_stores.tablestore.base:Tablestore search successfully. request_id:000639da-7c05-7de9-a78c-390a0d2f3fdd
本地调试和二次开发
您可以在本地IDE运行MCP源码,并使用MCP Inspector工具进行调试。
步骤一:配置环境变量
运行代码前,需要先配置系统环境变量,配置完成后请重启或刷新您的编译运行环境,包括 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
在终端中执行以下命令,查看默认 Shell 类型。
echo $SHELL
根据默认 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)
步骤二:运行源码
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: sse
Java
本地运行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)
步骤三:工具调试
安装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,单击Connect,连接MCP服务。您可以单击List Tools,查看可调试的工具。
选择tablestore-store工具,在information中输入内容,单击Run Tool,向表格存储中写入数据。
您可以在IDE控制台查看日志,或者登录表格存储控制台查看数据。
选择tablestore-search工具,在query中输入查询内容和size(返回的数据条目),单击Run Tool,查询表格存储中的数据。
升级Python版本
此处以Python3.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-devel
进入Python目录。
cd Python-3.13.2
配置安装路径。
./configure
编译Python。
make
安装Python。
make install
查看已安装的版本。
查看Python版本。
python3 --version
查看Pip版本。
pip3 --version