Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
O SQL MCP Server está em versão prévia e esta documentação e a implementação do mecanismo estão sujeitas a alterações durante esse período de avaliação.
O SQL MCP Server expõe seis ferramentas DML (Linguagem de Manipulação de Dados) para agentes de IA. Essas ferramentas fornecem uma interface CRUD com tipo definido para operações de banco de dados, como criar, ler, atualizar e excluir registros, além de executar procedimentos armazenados. Todas as ferramentas respeitam o RBAC (controle de acesso baseado em função), as permissões de entidade e as políticas definidas em sua configuração.
O que são ferramentas DML?
As ferramentas DML (Linguagem de Manipulação de Dados) lidam com operações de dados: criando, lendo, atualizando e excluindo registros, além de executar procedimentos armazenados. Ao contrário da DDL (Linguagem de Definição de Dados) que modifica o esquema, o DML funciona exclusivamente no plano de dados em tabelas e exibições existentes.
As seis ferramentas DML são:
-
describe_entities- Descobre entidades e operações disponíveis -
create_record- Insere novas linhas -
read_records- Consulta tabelas e visões -
update_record– Modifica linhas existentes -
delete_record- Remove linhas -
execute_entity– Executa procedimentos armazenados
Quando as ferramentas DML são habilitadas globalmente e para uma entidade, o SQL MCP Server as expõe por meio do protocolo MCP. Os agentes nunca interagem diretamente com seu esquema de banco de dados – eles funcionam por meio da camada de abstração do construtor de API de Dados.
As ferramentas
resposta list_tools
Quando um agente chama list_tools, o SQL MCP Server retorna:
{
"tools": [
{ "name": "describe_entities" },
{ "name": "create_record" },
{ "name": "read_records" },
{ "name": "update_record" },
{ "name": "delete_record" },
{ "name": "execute_entity" }
]
}
descrever_entidades
Retorna as entidades disponíveis para o papel atual. Cada entrada inclui nomes de campo, tipos de dados, chaves primárias e operações permitidas. Essa ferramenta não consulta o banco de dados. Em vez disso, ele lê a partir da configuração na memória criada a partir do arquivo de configuração.
{
"entities": [
{
"name": "Products",
"description": "Product catalog with pricing and inventory",
"fields": [
{
"name": "ProductId",
"type": "int",
"isKey": true,
"description": "Unique product identifier"
},
{
"name": "ProductName",
"type": "string",
"description": "Display name of the product"
},
{
"name": "Price",
"type": "decimal",
"description": "Retail price in USD"
}
],
"operations": [
"read_records",
"update_record"
]
}
]
}
Observação
As opções de entidade usadas por qualquer uma das ferramentas CRUD e DML de execução são provenientes diretamente de describe_entities. A descrição semântica interna anexada a cada ferramenta impõe esse fluxo de duas etapas.
criar_registro
Cria uma nova linha em uma tabela. É necessário ter permissão de criação na entidade para a função atual. A ferramenta valida a entrada no esquema de entidade, impõe permissões de nível de campo, aplica políticas de criação e retorna o registro criado com quaisquer valores gerados.
read_records
Consulta uma tabela ou exibição. Dá suporte à filtragem, classificação, paginação e seleção de campo. A ferramenta cria SQL determinístico com base em parâmetros estruturados, aplica permissões de leitura e projeções de campo e impõe políticas de segurança em nível de linha.
Os resultados de read_records são armazenados em cache automaticamente usando o sistema de cache da API de Dados. Você pode configurar o TTL (tempo de vida útil do cache) globalmente ou por entidade para reduzir a carga do banco de dados.
atualizar_registro
Modifica uma linha existente. Requer que a chave primária e os campos sejam atualizados. A ferramenta valida a chave primária, impõe permissões e políticas de atualização e atualiza apenas os campos que a função atual pode modificar.
excluir_registro
Remove uma linha existente. Requer a chave primária. A ferramenta valida a chave primária, impõe permissões e políticas de exclusão e executa a exclusão segura com suporte à transação.
Aviso
Alguns cenários de produção desabilitarão essa ferramenta globalmente para restringir amplamente os modelos.
executar_entidade
Executa um procedimento armazenado. Dá suporte a parâmetros de entrada e resultados de saída. A ferramenta valida parâmetros de entrada na assinatura do procedimento, impõe permissões de execução e passa parâmetros com segurança.
Configuração de runtime
Configure as ferramentas DML globalmente na seção de runtime do seu dab-config.json:
{
"runtime": {
"mcp": {
"enabled": true,
"path": "/mcp",
"dml-tools": {
"describe-entities": true,
"create-record": true,
"read-records": true,
"update-record": true,
"delete-record": true,
"execute-entity": true
}
}
}
}
Usando a CLI
Defina propriedades individualmente usando a CLI do construtor de API de Dados:
dab configure --runtime.mcp.enabled true
dab configure --runtime.mcp.path "/mcp"
dab configure --runtime.mcp.dml-tools.describe-entities true
dab configure --runtime.mcp.dml-tools.create-record true
dab configure --runtime.mcp.dml-tools.read-records true
dab configure --runtime.mcp.dml-tools.update-record true
dab configure --runtime.mcp.dml-tools.delete-record true
dab configure --runtime.mcp.dml-tools.execute-entity true
Desabilitando ferramentas
Quando você desabilitar uma ferramenta no nível de runtime, ela nunca será exibida aos agentes, independentemente das permissões de entidade ou da configuração de função. Essa configuração é útil quando você precisa de limites operacionais rígidos.
Cenários comuns
- Desabilitar
delete-recordpara evitar perda de dados na produção - Desativar
create-recordpara endpoints de relatórios somente leitura - Desabilitar
execute-entityquando os procedimentos armazenados não são usados
Quando uma ferramenta é desabilitada globalmente, a ferramenta fica oculta da list_tools resposta e não pode ser invocada.
Configurações de entidade
As entidades participam do MCP automaticamente, a menos que você as restrinja explicitamente. A dml-tools propriedade existe para que você possa excluir uma entidade do MCP ou restringir seus recursos, mas você não precisa definir nada para uso normal.
{
"entities": {
"Products": {
"mcp": {
"dml-tools": true
}
},
"SensitiveData": {
"mcp": {
"dml-tools": false
}
}
}
}
Se você não especificar mcp.dml-tools em uma entidade, ela usará como padrão true quando o MCP estiver habilitado globalmente.
Controle detalhado
Você pode desabilitar ferramentas específicas para entidades individuais:
{
"entities": {
"AuditLogs": {
"mcp": {
"dml-tools": {
"create-record": true,
"read-records": true,
"update-record": false,
"delete-record": false
}
}
}
}
}
Essa configuração permite que os agentes criem e leiam logs de auditoria, mas impede a modificação ou exclusão.
Integração do RBAC
Cada operação de ferramenta DML aplica as suas regras de controle de acesso baseadas em função. A função de um agente determina quais entidades são visíveis, quais operações são permitidas, quais campos são incluídos e se as políticas de nível de linha se aplicam.
Se a anonymous função permitir apenas permissão de leitura em Products:
-
describe_entitiesmostraread_recordsapenas em operações -
create_record,update_recordedelete_recordnão estão disponíveis - Somente campos permitidos para
anonymousaparecem no esquema
Configure funções em seu dab-config.json:
{
"entities": {
"Products": {
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "read",
"fields": {
"include": ["ProductId", "ProductName", "Price"],
"exclude": ["Cost"]
}
}
]
},
{
"role": "admin",
"actions": ["*"]
}
]
}
}
}