Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Sql Model Context Protocol (MCP) Server je ve verzi Preview a tato dokumentace a implementace modulu se může změnit. I když je Tvůrce rozhraní API pro Data ve verzi 1.7 v režimu Preview, musíte explicitně použít předběžnou verzi (například 1.7.83-rc), protože funkce MCP ještě nejsou součástí značky :latest.
SQL MCP Server zveřejňuje pro agenty AI šest nástrojů jazyka DML (Data Manipulat Language). Tyto nástroje poskytují typový povrch CRUD pro databázové operace – vytváření, čtení, aktualizace a odstraňování záznamů a provádění uložených procedur. Všechny nástroje respektují řízení přístupu na základě role (RBAC), oprávnění entit a zásady definované ve vaší konfiguraci.
Co jsou nástroje DML?
Nástroje DML (Data Manipulat Language) zpracovávají operace s daty: vytváření, čtení, aktualizace a odstraňování záznamů a provádění uložených procedur. Na rozdíl od jazyka DDL (Data Definition Language), který upravuje schéma, DML pracuje výhradně na rovině dat v existujících tabulkách a zobrazeních.
Šest nástrojů DML:
-
describe_entities– Zjišťuje dostupné entity a operace. -
create_record- Vloží nové řádky. -
read_records– Dotazy tabulek a zobrazení -
update_record– Upraví existující řádky. -
delete_record- Odebere řádky. -
execute_entity- Spouští uložené procedury.
Pokud jsou nástroje DML povoleny globálně a pro entitu, SQL MCP Server je zveřejňuje prostřednictvím protokolu MCP. Agenti nikdy nepracují přímo se schématem databáze – pracují prostřednictvím abstraktní vrstvy tvůrce rozhraní Data API.
Nástroje
odpověď list_tools
Když agent zavolá list_tools, SQL MCP Server vrátí:
{
"tools": [
{ "name": "describe_entities" },
{ "name": "create_record" },
{ "name": "read_records" },
{ "name": "update_record" },
{ "name": "delete_record" },
{ "name": "execute_entity" }
]
}
describe_entities
Vrátí entity, které jsou dostupné pro aktuální roli. Každá položka obsahuje názvy polí, datové typy, primární klíče a povolené operace. Tento nástroj se na databázi nedotazuje. Místo toho se načte z konfigurace v paměti vytvořené z konfiguračního souboru.
{
"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"
]
}
]
}
Poznámka:
Možnosti entity používané některou z cruD a spouštění nástrojů DML pocházejí přímo z describe_entities. Interní sémantický popis připojený k jednotlivým nástrojům vynucuje tento dvoustupňový tok.
vytvořit_záznam
Vytvoří nový řádek v tabulce. K vytvoření entity pro aktuální roli je vyžadováno oprávnění. Nástroj ověří vstup ve schématu entity, vynucuje oprávnění na úrovni pole, použije zásady vytváření a vrátí vytvořený záznam s libovolnými vygenerovanými hodnotami.
read_records
Dotazuje tabulku nebo zobrazení. Podporuje filtrování, řazení, stránkování a výběr polí. Nástroj sestaví deterministické SQL ze strukturovaných parametrů, použije oprávnění ke čtení a projekce polí a vynucuje zásady zabezpečení na úrovni řádků.
Výsledky z read_records se automaticky ukládají do mezipaměti pomocí systému ukládání do mezipaměti tvůrcem rozhraní Data API. Můžete nakonfigurovat hodnotu TTL (Time to Live) mezipaměti globálně nebo pro každou entitu, abyste snížili zatížení databáze.
aktualizace_záznamu
Upraví existující řádek. Vyžaduje aktualizaci primárního klíče a polí. Nástroj ověří, jestli primární klíč existuje, vynucuje oprávnění k aktualizaci a zásady a aktualizuje pouze pole, která může aktuální role upravit.
smazat_záznam
Odebere existující řádek. Vyžaduje primární klíč. Nástroj ověří, že primární klíč existuje, vynucuje oprávnění k odstranění a zásady a provádí bezpečné odstranění s podporou transakcí.
Výstraha
V některých produkčních scénářích se tento nástroj globálně zakáže pro široce omezené modely.
execute_entity
Spustí uloženou proceduru. Podporuje vstupní parametry a výstupní výsledky. Nástroj ověří vstupní parametry pro podpis procedury, vynucuje oprávnění ke spuštění a bezpečně předává parametry.
Konfigurace modulu runtime
Konfigurujte nástroje DML globálně v sekci runtime vašeho 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
}
}
}
}
Použití rozhraní příkazového řádku
Nastavte vlastnosti jednotlivě pomocí rozhraní příkazového řádku Tvůrce dat:
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
Zakázání nástrojů
Když nástroj zakážete na úrovni modulu runtime, nezobrazí se agentům bez ohledu na oprávnění entity nebo konfiguraci role. Toto nastavení je užitečné, když potřebujete přísné provozní hranice.
Obvyklé scénáře
- Zakázání
delete-record, aby se zabránilo ztrátě dat v produkčním prostředí - Zakázat
create-recordpro koncové body jen pro čtení - Zakázat
execute-entity, pokud se nepoužívají uložené procedury
Pokud je nástroj globálně zakázaný, není viditelný v odpovědi a nelze ho aktivovat.
Nastavení entity
Entity se automaticky účastní MCP, pokud je explicitně neomezíte. Vlastnost dml-tools existuje, takže entitu můžete vyloučit z MCP nebo zúžit její schopnosti, ale nemusíte nic nastavovat pro normální použití.
{
"entities": {
"Products": {
"mcp": {
"dml-tools": true
}
},
"SensitiveData": {
"mcp": {
"dml-tools": false
}
}
}
}
Pokud pro entitu nezadáte mcp.dml-tools , nastaví se jako výchozí true , když je mcp povolen globálně.
Jemně odstupňovaný ovládací prvek
Můžete zakázat konkrétní nástroje pro jednotlivé entity:
{
"entities": {
"AuditLogs": {
"mcp": {
"dml-tools": {
"create-record": true,
"read-records": true,
"update-record": false,
"delete-record": false
}
}
}
}
}
Tato konfigurace umožňuje agentům vytvářet a číst protokoly auditu, ale brání úpravám nebo odstranění.
Integrace RBAC
Každá operace nástroje DML vynucuje pravidla řízení přístupu na základě role. Role agenta určuje, které entity jsou viditelné, které operace jsou povolené, která pole jsou zahrnuta a jestli se použijí zásady na úrovni řádků.
Pokud anonymous role povoluje oprávnění jen ke Productsčtení:
-
describe_entitiesZobrazujeread_recordsse pouze v operacích. -
create_record,update_recordadelete_recordnejsou k dispozici - Ve schématu se zobrazují pouze pole povolená pro
anonymous.
Nakonfigurujte role ve vašem dab-config.json:
{
"entities": {
"Products": {
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "read",
"fields": {
"include": ["ProductId", "ProductName", "Price"],
"exclude": ["Cost"]
}
}
]
},
{
"role": "admin",
"actions": ["*"]
}
]
}
}
}