O Tablestore integra o protocolo MCP e oferece uma solução eficiente de armazenamento e recuperação de dados com recursos híbridos de busca vetorial e escalar. Este tópico descreve como utilizar o service MCP do Tablestore.
Introdução às funcionalidades
O service MCP do Tablestore disponibiliza duas ferramentas:
Ferramenta de armazenamento (tablestore-store): Converte o texto de entrada em vetores por meio de um modelo de embedding (padrão: BAAI/bge-base-zh-v1.5) e grava tanto o texto original quanto sua representação vetorial no Tablestore.
Ferramenta de busca (tablestore-search): Transforma um texto de consulta em vetor usando um modelo de embedding e recupera resultados relevantes do índice de busca do Tablestore mediante consultas híbridas vetoriais e escalares.
Preparativos
Crie um AccessKey para sua conta Alibaba Cloud ou para um usuário do Resource Access Management (RAM) com permissões de acesso ao Tablestore.
-
Prepare um servidor para implantar o MCP Server. É possível utilizar o Alibaba Cloud ECS.
NotaO exemplo utiliza uma instância ECS com Alibaba Cloud Linux 3.2104 LTS 64 bits, Python 3.13.2 e Java 17.0.15.
Etapas de uso
Etapa 1: Baixe o código-fonte
-
Instale o Git. Ignore esta etapa caso o Git já esteja instalado.
yum -y install git -
Baixe o código-fonte.
git clone https://github.com/aliyun/alibabacloud-tablestore-mcp-serverSe problemas de rede impedirem o download, baixe diretamente o arquivo tablestore-mcp-server, faça upload para o servidor e extraia-o com o seguinte comando:
tar -zxvf alibabacloud-tablestore-mcp-server.tar.gz
Etapa 2: Execute o service
O Tablestore fornece services MCP nas versões Python e Java.
Python
A versão Python do service MCP do Tablestore requer Python 3.10 ou superior e utiliza o uv para gerenciamento de pacotes e ambientes.
O Alibaba Cloud Linux 3.2104 LTS 64 bits vem com Python 3.6.8 por padrão. Para instruções sobre como atualizar o Python, consulte Atualizar a versão do Python .
-
Acesse o diretório do código-fonte do MCP.
cd alibabacloud-tablestore-mcp-server/tablestore-python-mcp-server -
Crie e ative um ambiente virtual.
python3 -m venv .venv && source .venv/bin/activate -
Instale o uv.
pip3 install uv -
Defina as variáveis de ambiente.
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********As variáveis de ambiente estão descritas abaixo.
Nome da variável
Descrição
HF_ENDPOINT
Endpoint do HuggingFace.
TABLESTORE_ACCESS_KEY_ID
AccessKey ID da sua conta Alibaba Cloud ou do usuário RAM.
TABLESTORE_ACCESS_KEY_SECRET
AccessKey secret da sua conta Alibaba Cloud ou do usuário RAM.
TABLESTORE_ENDPOINT
Endpoint da sua instância do Tablestore. Se você usar ECS, escolha o endpoint com base na região:
Se o ECS e o Tablestore estiverem na mesma região: use o endereço de rede pública ou o endereço VPC.
Se o ECS e o Tablestore estiverem em regiões diferentes: use o endereço de rede pública.
ImportanteInstâncias recém-criadas do Tablestore não habilitam o acesso pela rede pública por padrão. Para usar um endpoint público, acesse o console do Tablestore, navegue até Instance Management > Network Management, selecione Allowed Network Type, marque Internet e clique em Configure para salve.
TABLESTORE_INSTANCE_NAME
Nome da sua instância do Tablestore.
-
Execute o service MCP.
uv run tablestore-mcp-serverA primeira execução baixa as dependências. Aguarde a conclusão. Se o download falhar devido a problemas de rede, execute o comando novamente. Após a execução bem-sucedida, você verá logs semelhantes a:
INFO:tablestore_mcp_server.server:mcp host:0.0.0.0, port:8001 INFO:root:run tablestore-mcp-server by: sse
Java
A execução do service MCP do Tablestore requer o JDK 17.
-
Instale o JDK.
yum -y install java-17-openjdk-devel.x86_64 -
Acesse o diretório do código-fonte do MCP.
cd alibabacloud-tablestore-mcp-server/tablestore-java-mcp-server -
Compile o código-fonte.
./mvnw package -DskipTests -s settings.xmlApós a compilação bem-sucedida, você verá logs semelhantes a:
[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:58 min [INFO] Finished at: 2025-03-26T11:31:21+08:00 [INFO] ------------------------------------------------------------------------ -
Defina as variáveis de ambiente.
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********As variáveis de ambiente estão descritas abaixo.
Nome da variável
Descrição
HF_ENDPOINT
Endpoint espelho do HuggingFace.
TABLESTORE_ACCESS_KEY_ID
AccessKey ID da sua conta Alibaba Cloud ou do usuário RAM.
TABLESTORE_ACCESS_KEY_SECRET
AccessKey secret da sua conta Alibaba Cloud ou do usuário RAM.
TABLESTORE_ENDPOINT
Endpoint da sua instância do Tablestore. Se você usar ECS, escolha o endpoint com base na região:
Se o ECS e o Tablestore estiverem na mesma região: use o endereço de rede pública ou o endereço VPC.
Se o ECS e o Tablestore estiverem em regiões diferentes: use o endereço de rede pública.
ImportanteInstâncias recém-criadas do Tablestore não habilitam o acesso pela rede pública por padrão. Para usar um endpoint público, acesse o console do Tablestore, navegue até Instance Management > Network Management, selecione Allowed Network Type, marque Internet e clique em Configure para salve.
TABLESTORE_INSTANCE_NAME
Nome da sua instância do Tablestore.
-
Execute o service MCP.
java -jar target/tablestore-java-mcp-server-1.0-SNAPSHOT.jarApós a execução bem-sucedida, você verá logs semelhantes a:
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)
Etapa 3: Utilizar o service MCP
Acesse o site do Cherry Studio para baixe e instale o cliente.
-
Clique em no botão Settings no canto inferior esquerdo para configurar o service de modelo, o modelo padrão e o servidor MCP.
Serviço de modelo: O Cherry Studio inclui vários provedores de modelos. Selecione um conforme suas necessidades, obtenha sua chave de API e insira a chave em Model Service para gerencie os modelos. Este exemplo usa o qwen-max do Alibaba Cloud Model Studio. Antes de utilizá-lo, obtenha uma chave de API.
-
Modelo padrão: Defina um modelo padrão ou escolha um durante a conversa.
Na barra de ferramentas de entrada de mensagens, clique em no ícone @ para abrir o painel de seleção de modelos. Você pode escolha modelos do Alibaba Cloud Model Studio como
qwen-vl-plus,qwen-coder-plus,qwen-turbo,qwen-pluseqwen-max. -
Servidor MCP: Clique em Add Server. É possível personalizar o nome e a descrição. Defina Type como SSE. O formato da URL é
http://server_ip:port/sse. A porta padrão é 8001 para Python e 8080 para Java. Na primeira vez que acessar a página de configurações do servidor MCP, instale o UV e o Bun conforme solicitado.ImportanteSe você usar ECS, adicione uma regra de grupo de segurança. Nas regras de entrada, permita o tráfego TCP personalizado para a porta utilizada pelo service MCP.
Na seção Request Headers, defina
Content-Type=application/jsoneAuthorization=Bearer token.
-
Selecione o servidor MCP na interface de chat.
Clique em no ícone verde de terminal na barra de ferramentas inferior. Um painel será exibido indicando que o Tablestore foi conectado com sucesso. O endereço de conexão aparece como
http://<IP address>:8001/sse. Uma marca de verificação verde indica uma conexão saudável. -
Converse com o assistente para gravar um documento no Tablestore.
Insira uma pergunta como
What are the basic billing methods for Alibaba Cloud ECS? Please generate a document and write it to Tablestore. A resposta do assistente exibirá um cartão de chamada da ferramenta tablestore-store com status Completed ✓, indicando que o documento foi gravado com sucesso no Tablestore por meio da ferramenta MCP.É possível visualize o log de chamadas do MCP no servidor:
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.Também é possível visualize os dados gravados no console do Tablestore.
Na aba Data Management da tabela
ts_mcp_server_py_v1, você verá a linha inserida contendo as colunasid(chave primária),_content,_embeddingetitle, confirmando o armazenamento bem-sucedido. -
Converse com o assistente para recuperar documentos relevantes do Tablestore.
A resposta do assistente exibirá um status de chamada da ferramenta tablestore-search como "Completed ✓", indicando que o service MCP recuperou documentos relevantes do Tablestore e gerou uma resposta com base neles.
É possível visualize o log de chamadas do MCP no servidor:
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
Depuração local e desenvolvimento personalizado
É possível execute o código-fonte do MCP na sua IDE local e depurá-lo usando a ferramenta MCP Inspector.
Etapa 1: Configurar variáveis de ambiente
Antes de execute o código, configure as variáveis de ambiente do sistema. Após a configuração, reinicie ou atualize sua IDE, interface de linha de comando, aplicativos de desktop e services em segundo plano para garantir que as novas variáveis de ambiente entrem em vigor.
Linux
-
Na interface de linha de comando, anexe as variáveis de ambiente ao arquivo
~/.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 -
Aplique as alterações.
source ~/.bashrc -
Verifique as variáveis de ambiente.
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET echo $TABLESTORE_ENDPOINT echo $TABLESTORE_INSTANCE_NAME echo $HF_ENDPOINT
macOS
-
No Terminal, verifique seu shell padrão.
echo $SHELL -
Prossiga conforme o tipo de shell.
Zsh
-
Anexe as variáveis de ambiente ao arquivo
~/.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 -
Aplique as alterações.
source ~/.zshrc -
Verifique as variáveis de ambiente.
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET echo $TABLESTORE_ENDPOINT echo $TABLESTORE_INSTANCE_NAME echo $HF_ENDPOINT
Bash
-
Anexe as variáveis de ambiente ao arquivo
~/.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 -
Aplique as alterações.
source ~/.bash_profile -
Execute o comando a seguir para verifique se a variável de ambiente entrou em vigor.
echo $TABLESTORE_ACCESS_KEY_ID echo $TABLESTORE_ACCESS_KEY_SECRET echo $TABLESTORE_ENDPOINT echo $TABLESTORE_INSTANCE_NAME echo $HF_ENDPOINT
-
Windows
CMD
-
No CMD, defina as variáveis de ambiente.
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" -
Após reiniciar o CMD, verifique as variáveis de ambiente.
echo %TABLESTORE_ACCESS_KEY_ID% echo %TABLESTORE_ACCESS_KEY_SECRET% echo %TABLESTORE_ENDPOINT% echo %TABLESTORE_INSTANCE_NAME% echo %HF_ENDPOINT%
PowerShell
-
No PowerShell, execute:
[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) -
Verifique as variáveis de ambiente.
[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)
Etapa 2: Execute o código-fonte
Python
Requisitos para execute o código-fonte do MCP localmente:
Python 3.10 ou superior.
PyCharm 2024.3.2 ou superior.
Após configurar o ambiente, abra o diretório tablestore-python-mcp-server no PyCharm e execute src/tablestore_mcp_server/main.py. Após a execução bem-sucedida, o console exibirá:
INFO:tablestore_mcp_server.server:mcp host:0.0.0.0, port:8001
INFO:root:run tablestore-mcp-server by: sse
Java
Requisito para execute o código-fonte do MCP localmente: JDK 17.
Após configurar o ambiente, abra o diretório tablestore-java-mcp-server no IDEA e execute src/main/java/com.alicloud.openservices.tablestore.sample/App.java. Após a execução bem-sucedida, o console exibirá:
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)
Etapa 3: Depuração de ferramentas
Instale o Node.js.
-
No terminal, execute o comando a seguir. Insira
yquando solicitado para iniciar o MCP Inspector.npx @modelcontextprotocol/inspector node build/index.jsA primeira execução baixa a ferramenta. Aguarde um momento. Em caso de sucesso, o terminal exibirá algo semelhante a (a porta pode variar):
MCP Inspector is up and running at: http://localhost:6274 -
No navegador, acesse o endereço mostrado no terminal para abrir o painel do MCP Inspector. Escolha um tipo de transporte e insira a URL, depois clique em Connect para conectar-se ao service MCP. Clique em List Tools para visualize as ferramentas disponíveis.
Por exemplo, defina Transport Type como SSE e URL como
http://localhost:8001/sse. Após uma conexão bem-sucedida, o status ficará verde ("Connected"). Ao clicar em List Tools, as ferramentas registradas serão exibidas: tablestore-store (armazena documentos no Tablestore para recuperação posterior) e tablestore-search (busca documentos semanticamente semelhantes no Tablestore usando linguagem natural). -
Selecione a ferramenta tablestore-store. Insira o conteúdo no campo information e clique em Run Tool para gravar dados no Tablestore.
É possível visualize os logs no console da sua IDE ou fazer login no console do Tablestore para verifique os dados.
Na aba Data Management, você verá uma linha inserida na tabela
ts_mcp_server_py_v1, contendo três colunas: id (chave primária), _content (texto) e _embedding (vetor), confirmando a inserção bem-sucedida. -
Selecione a ferramenta tablestore-search. Insira uma consulta e o tamanho (número de resultados) no campo query e clique em Run Tool para buscar no Tablestore.
Em caso de sucesso, os resultados mostrarão documentos semanticamente semelhantes à sua consulta, incluindo o texto correspondente (_content) e a pontuação de similaridade (_score).
Atualizar a versão do Python
As etapas a seguir mostram como atualizar para o Python 3.13.2.
-
Baixe o Python.
wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tgzSe problemas de rede impedirem o download, baixe diretamente o arquivo Python-3.13.2 e faça upload para o servidor.
-
Extraia o arquivo.
tar -zxvf Python-3.13.2.tgz -
Instale as dependências.
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 -
Acesse o diretório do Python.
cd Python-3.13.2 -
Configure o caminho de instalação.
./configure -
Compile o Python.
make -
Instale o Python.
make install -
Verifique a versão instalada.
-
Verifique a versão do Python.
python3 --version -
Verifique a versão do pip.
pip3 --version
-