A Alibaba Cloud atualizou o antigo DMS MCP (alibabacloud-dms-mcp-server) para o Agent Data Gateway MCP e o publicou no Alibaba Cloud Model Studio MCP Marketplace. O novo MCP altera a integração de data sources, os nomes das ferramentas, os identificadores de recursos e os parâmetros de chamada. Este tópico descreve o processo de atualização do DMS MCP da versão anterior para o Agent Data Gateway MCP.
and published in the Alibaba Cloud Model Studio MCP Marketplace
Informações de contexto
A Alibaba Cloud atualizou o antigo DMS MCP para o Agent Data Gateway MCP. O novo MCP reúne a descoberta de ativos de dados, consultas de permissões, recuperação de conhecimento e execução de SQL em ferramentas MCP padrão. Todas as operações seguem as restrições existentes de identidade, permissão, política de segurança e auditoria do Agent Data Gateway.
Em comparação com a versão anterior, o novo MCP altera os seguintes aspectos. Revise essas alterações antes de fazer a atualização:
Cadastro de data sources: sincronize os data sources do DMS no Agent Data Gateway antes de acessá-las por meio do novo MCP.
Nomes de ferramentas: ferramentas da versão anterior, como
executeScriptegetDatabase, deram lugar aexec_sqlemeta_database_search.Identificadores de recursos: os identificadores
db_id,database_idetable_guidda versão anterior deram lugar acatalogUuid,databaseUuidequalifiedName.Autenticação: o token de acesso do MCP da versão anterior segue apenas as permissões do usuário. O token do novo MCP é voltado para agentes e permite um controle de permissões mais refinado e flexível.
Procedimento
Sincronizar data sources do DMS
Antes de usar o novo MCP, sincronize os data sources relevantes do DMS no Agent Data Gateway. O DMS sincronizará automaticamente os data sources existentes relevantes com o Agent Data Gateway até 30 de novembro de 2026. Para usar o novo MCP antes dessa data, sincronize manualmente os data sources do DMS. Siga estas etapas:
Para iniciar, acesse o console do Agent Data Gateway.
No painel de navegação à esquerda, escolha .
-
Na página Connection Management, clique em DMS Instance Sync.
NotaComo alternativa, na página Overview do console do Agent Data Gateway, clique em Get Started e, em seguida, clique em DMS data source sync na seção Select Datasource.
Em seguida, selecione os data sources que deseja usar nas instâncias hospedadas no DMS e conclua a sincronização. Você pode sincronizar apenas instâncias do DMS hospedadas com segurança.
Sincronizar um data source indica apenas que o recurso está conectado ao gateway. Isso não significa que o agente atual tenha obtido permissões de execução de SQL. Se um data source estiver visível, mas a execução retornar ACCESS_DENIED, verifique a identidade do agente e as permissões da instância no console.
Criar uma identidade de agente
Antes de se conectar e usar o MCP, crie uma identidade de agente. Siga estas etapas:
Para começar, acesse o console do Agent Data Gateway.
No painel de navegação à esquerda, escolha e clique em Create Agent Identity.
-
Na caixa de diálogo exibida, configure os seguintes parâmetros de identidade do agente e clique em Submit:
Parâmetro
Descrição
Name
Neste campo, insira um nome para a identidade do agente.
AccessToken Expiration Time
Defina o tempo de expiração do token de acesso do agente. Um valor em branco indica que o token não expira.
Permission Mode
Aqui, selecione o modo de permissão da identidade do agente:
-
Permissions Follow User: o agente herda as permissões do usuário atual em tempo real.
-
Permission Narrowing Mode: selecione as permissões do agente conforme necessário, dentro do escopo das permissões do usuário.
-
Independent permissions: o agente não herda as permissões do usuário atual. Após criar a identidade, o agente obtém permissões de dados por meio de solicitações de permissões.
-
Na caixa de diálogo, copie e armazene com segurança o token de acesso gerado e clique em Close. O token de acesso é exibido apenas uma vez no momento da criação. Após fechar a caixa de diálogo, não será possível visualizá-lo novamente.
Conectar ao Agent Data Gateway MCP
Após sincronizar os data sources, conecte-se ao novo MCP por um dos métodos a seguir.
Conectar diretamente a um endpoint do MCP
-
Primeiro, selecione o endpoint que corresponde à região do seu token de acesso na tabela a seguir:
Região
Endpoint do MCP
China (Hangzhou)
https://dgate-mcp-cn-hangzhou.aliyuncs.com/mcp/dgateChina (Shanghai)
https://dgate-mcp-cn-shanghai.aliyuncs.com/mcp/dgateChina (Beijing)
https://dgate-mcp-cn-beijing.aliyuncs.com/mcp/dgateChina (Shenzhen)
https://dgate-mcp-cn-shenzhen.aliyuncs.com/mcp/dgateChina (Zhangjiakou)
https://dgate-mcp-cn-zhangjiakou.aliyuncs.com/mcp/dgateChina (Hong Kong)
https://dgate-mcp-cn-hongkong.aliyuncs.com/mcp/dgateSingapore
https://dgate-mcp-ap-southeast-1.aliyuncs.com/mcp/dgateMalaysia (Kuala Lumpur)
https://dgate-mcp-ap-southeast-3.aliyuncs.com/mcp/dgateJapan (Tokyo)
https://dgate-mcp-ap-northeast-1.aliyuncs.com/mcp/dgate -
Adicione o seguinte conteúdo à configuração do seu cliente MCP. Substitua o valor de
urlpelo endpoint determinado na etapa anterior e substitua o valor deAuthorizationporBearer <ACCESS_TOKEN>, onde<ACCESS_TOKEN>é o token de acesso que você salvou ao Create an agent identity.{ "mcpServers": { "dgate": { "url": "https://dgate-mcp-cn-hangzhou.aliyuncs.com/mcp/dgate", "headers": { "Authorization": "Bearer <ACCESS_TOKEN>" } } } }O local do arquivo de configuração e o ponto de entrada da interface podem variar entre os clientes. No entanto, desde que
urleAuthorizationestejam configurados corretamente, você poderá se conectar ao service. Após salvar a configuração, recarregue o service do MCP. Em alguns clientes, é necessário reiniciar o aplicativo ou criar uma nova sessão para atualizar a lista de ferramentas.
Substituir ferramentas do MCP
Após conectar-se ao novo MCP, substitua as ferramentas da versão anterior do MCP em seus aplicativos pelas novas. A tabela a seguir apresenta o mapeamento e as descrições das principais ferramentas do DMS MCP da versão anterior para as novas ferramentas do MCP.
|
Ferramenta do DMS MCP da versão anterior |
Novo Agent Data Gateway MCP |
Descrição |
|
|
|
Substitua o Para saber mais sobre as considerações ao atualizar esta ferramenta, consulte Considerations for replacing executeScript. |
|
|
|
A nova versão não faz mais consultas diretas por host + porta + schema_name. Primeiro, pesquise ou liste os bancos de dados para obter o |
|
|
|
A nova versão trata a instância da versão anterior como um catálogo. Primeiro, pesquise e identifique de forma exclusiva a instância de destino para obter o |
|
|
|
Primeiro, obtenha o |
|
|
|
Substitua o Para saber mais sobre as considerações e exemplos ao atualizar esta ferramenta, consulte meta_table_list replacement example. |
|
|
|
Use |
A nova versão unifica a cadeia de descoberta de recursos da seguinte forma:
catalogUuid
→ databaseUuid
→ table qualifiedName
→ columns, indexes, or SQL execution
Não é possível usar os identificadores db_id, database_id e table_guid da versão anterior diretamente com o novo MCP. Use as novas ferramentas de metadados para obter novamente o catalogUuid, o databaseUuid e o qualifiedName.
Atualização do agente
Adicione o seguinte conteúdo ao prompt do sistema ou ao prompt de atualização do seu agente para ajudar o agente a fazer a transição para o novo MCP sem problemas:
You are using Agent Data Gateway MCP. Follow these call rules:
1. Do not call legacy DMS MCP tools such as executeScript, getDatabase,
getInstance, getTableDetailInfo, listTables, or searchDatabase.
2. The legacy instance is called a catalog in the new version:
Use meta_catalog_search to locate the instance and obtain the catalogUuid;
call meta_catalog_get when you need the details.
3. When you query databases:
- If the catalogUuid is known, call meta_database_list;
- If only the database name is known, call meta_database_search;
- After you obtain the databaseUuid, call meta_database_get for the details.
4. When you query tables, use meta_table_list and save the returned qualifiedName.
To query full table details, call meta_table_columns and
meta_table_indexes separately.
5. When you execute SQL, use exec_sql:
- Pass databaseUuid first;
- Submit only one SQL statement per call;
- Split multiple SQL statements into multiple sequential calls;
- If any statement fails, stop the subsequent calls and report the failure;
- Do not claim that multiple calls have transaction atomicity or are automatically rolled back.
6. When exec_sql returns NEEDS_CONFIRMATION, the user must review it first,
and then retry with the confirm reason; do not skip confirmation by default.
7. List tools use NextToken cursor-based pagination. When hasMore=true,
pass the returned NextToken as-is to get the next page instead of using legacy page-number pagination.
8. A visible data source does not mean that execution permission is granted. When ACCESS_DENIED occurs,
remind the user to check the agent identity and instance authorization, and do not retry the SQL repeatedly.
Apêndice
Considerações para substituir executeScript
Em cenários de bancos de dados físicos, o executeScript da versão anterior pode receber várias instruções SQL e executá-las em sequência, mas não garante a atomicidade da transação para todo o script. Em cenários de bancos de dados lógicos, apenas uma instrução SQL é permitida. O novo exec_sql atualmente suporta apenas uma única instrução SQL e não é compatível com a execução em lote de várias instruções. Siga estas regras ao fazer a atualização:
Divida várias instruções SQL em múltiplas chamadas de
exec_sql.Execute as instruções uma a uma na ordem original do script.
Se alguma instrução falhar, interrompa as chamadas subsequentes e relate a falha.
Não considere que múltiplas chamadas são revertidas automaticamente ou possuem atomicidade de transação.
Quando o sistema retornar
NEEDS_CONFIRMATION, conclua a revisão manual e tente novamente com o motivo deconfirme confirme a operação.O parâmetro
logicda versão anterior não tem mapeamento para um novo parâmetro. O novodatabaseUuidexpressa o recurso de destino. Não é possível atualizar diretamente bancos de dados lógicos que ainda não estejam conectados ao gateway.
Exemplo de chamada de instrução SQL única:
{
"name": "exec_sql",
"arguments": {
"databaseUuid": "<database-uuid>",
"statement": "SELECT id, status FROM orders LIMIT 20",
"maxRows": 100,
"waitSeconds": 110
}
}
Exemplo de substituição de meta_table_list
Duas consultas substituem o getTableDetailInfo da versão anterior: meta_table_columns e meta_table_indexes. Primeiro, obtenha o qualifiedName da tabela com meta_table_list e, em seguida, consulte as colunas e os índices separadamente:
{"name":"meta_table_columns","arguments":{"databaseUuid":"<database-uuid>","tableQualifiedName":"trade.orders"}}
{"name":"meta_table_indexes","arguments":{"databaseUuid":"<database-uuid>","tableQualifiedName":"trade.orders"}}
Os dois resultados juntos formam o resultado de negócio do getTableDetailInfo da versão anterior.