MCP konektory: nacte nastroje ze serveru a udela z nich kroky
Firma si zalozi napojeni na svuj MCP server, stiskne Nacist nastroje a jeho
nastroje se objevi v builderu jako kroky automatizace vcetne toho, jake
promenne prijimaji a jake vraceji.
Pribylo:
- sluzba `mcp` - jedina v katalogu bez pevnych operaci, rekne je az server.
Udaje: adresa serveru, token nebo klic v X-API-Key
- POST /connectors/:id/mcp/tools - zepta se serveru na tools/list a ulozi
vysledek. Je to zaroven overeni konektoru, proto u MCP neni tlacitko Overit
- src/mcp/client.ts - handshake, sezeni z hlavicky odpovedi, odpoved jako JSON
i jako SSE stream, strankovani nastroju, nic z toho nevyhazuje vyjimku
- src/mcp/schema.ts - ze schematu vzniknou pole kroku a zpatky se z vyplnenych
retezcu udelaji argumenty ve spravnych typech. Ten druhy smer je ten
podstatny: server ceka {"limit": 10}, ne {"limit": "10"}
- src/data/mcpTools.ts - nastroje v katalogu, kes nad tim, co je u konektoru
- sloupec `mcp` u konektoru (migrace 004). Bez ulozeni by po restartu zmizely
z katalogu kroky, ktere uzivatel uz ma ve stromech
- vnitrni krok runMcpTool - jedna obsluha pro vsechny nastroje vsech serveru
Rozhodnuti:
- nastroj patri firme, ne katalogu. serviceCatalog(tenantId) bez firmy nevrati
zadny, takze zapomenuty argument znamena "nic", ne "vsechno"
- ID operace nese ID konektoru (tool:<konektor>:<nastroj>), protoze firma muze
mit dva servery a na obou nastroj `search`
- krok se neopakuje, MCP nema idempotencni klic
- chyba nemaze nastroje, vypadek serveru nesmi vymazat kroky z automatizaci
- servery se pri startu neobvolavaji, jeden nedostupny by shodil katalog vsem
Dokumentace: prepsany 24-mcp-konektory.md na skutecny stav, novy
00-pro-programatory.md (rozcestnik, model ctyr pojmu, pravidla, ktera plati
vsude, co je krehke), doplnene 01, 12 a 99.
Mimochodem opraveno: setStatus v connectors/postgres.ts melo v RETURNING
doslovny retezec ${COLUMNS} misto dosazeni, a dva odstavce v dokumentu 12 byly
dvakrat.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
3e6b365eec
commit
435e254c90
+56
-14
@@ -2,24 +2,66 @@
|
||||
|
||||
Nejnovejsi nahore.
|
||||
|
||||
## 2026-08-28 - navrh MCP konektoru
|
||||
## 2026-08-28 - MCP konektory hotove
|
||||
|
||||
Novy dokument [24-mcp-konektory.md](24-mcp-konektory.md). Neni to
|
||||
naprogramovane, je to navrh.
|
||||
Firma si zalozi napojeni na svuj MCP server, stiskne **Nacist nastroje** a jeho
|
||||
nastroje se objevi v builderu jako kroky. Popis
|
||||
v [24-mcp-konektory.md](24-mcp-konektory.md).
|
||||
|
||||
**Prvni verze navrhu byla postavena spatne** a je prepsana. Davala MCP nastroje
|
||||
do vyberu kroku, tedy nastroj vybiral clovek a vyplnil mu pevna pole. Tak MCP
|
||||
nedava nic navic proti HTTP konektoru, ktery uz mame - je to protokol pro
|
||||
**modely**, kde si nastroj vybira model podle toho, co je zrovna potreba.
|
||||
Navrh byl predtim dvakrat prepsany a stoji za to rict proc. Prvni verze davala
|
||||
nastroje do vyberu kroku, ale popisovala MCP jako obycejny katalog vzdalenych
|
||||
procedur - tak nedava nic navic proti HTTP konektoru. Druha verze to prehnala
|
||||
opacnym smerem a chtela nastroje predavat jen modelu. Vysledne zadani je
|
||||
uprostred: **klientem jsme my**, nastroj vybira clovek v builderu, a prinos je
|
||||
v tom, ze napojeni na cizi system vznikne bez radky kodu u nas.
|
||||
|
||||
Spravne zadani: MCP konektor **neni zdroj kroku, je to schopnost, kterou dostane
|
||||
krok s modelem**. V builderu se objevi krok "Nechat model splnit ukol" a v nem
|
||||
se zaskrtne, ktera napojeni smi pouzit.
|
||||
### Pribylo
|
||||
|
||||
Dokument popisuje dve cesty a lisi se tim, kudy tece token zakaznika: predat
|
||||
server modelu (OpenAI ho zavola sam), nebo byt MCP klientem my. Doporucena je
|
||||
druha, protoze zbytek systemu stoji na tom, ze udaje neopousti server a ze je
|
||||
v logu videt kazde volani.
|
||||
- **Sluzba `mcp`.** Jedina v katalogu, ktera nema zadne pevne operace - rekne je
|
||||
az server. Udaje jsou adresa serveru, token nebo klic v `X-API-Key`.
|
||||
- **`POST /connectors/:id/mcp/tools`.** Zepta se serveru na `tools/list` a ulozi
|
||||
vysledek. Je to zaroven overeni konektoru, proto tlacitko "Overit" u MCP neni.
|
||||
- **Klient protokolu** (`src/mcp/client.ts`): handshake, sezeni z hlavicky
|
||||
odpovedi, odpoved jako JSON i jako SSE stream, strankovani nastroju.
|
||||
- **Prevod schemat** (`src/mcp/schema.ts`). Ze schematu vzniknou pole kroku
|
||||
a zpatky se z vyplnenych retezcu udelaji argumenty ve spravnych typech.
|
||||
Ten druhy smer je ten podstatny: server ceka `{"limit": 10}`, ne
|
||||
`{"limit": "10"}`, a rada serveru na tom spadne az uvnitr nastroje.
|
||||
- **Nastroje u konektoru** (sloupec `mcp`, migrace `004`). Bez ulozeni by po
|
||||
restartu zmizely z katalogu kroky, ktere uzivatel uz ma ve stromech.
|
||||
- **Vnitrni krok `runMcpTool`.** Jedna obsluha pro vsechny nastroje vsech
|
||||
serveru - ktery to je, rika az ID operace `tool:<konektor>:<nastroj>`.
|
||||
|
||||
### Rozhodnuti, ktera stoji za zminku
|
||||
|
||||
- **Nastroj patri firme, ne katalogu.** `serviceCatalog(tenantId)` bez firmy
|
||||
nevrati zadny nastroj. Zapomenuty argument tak znamena "nic", ne "vsechno" -
|
||||
stejne pravidlo jako u filtru na firmu.
|
||||
- **ID operace nese ID konektoru.** Firma muze mit dva servery a na obou nastroj
|
||||
`search`.
|
||||
- **Krok se neopakuje.** MCP nema idempotencni klic, druhy pokus po timeoutu by
|
||||
nastroj provedl podruhe.
|
||||
- **Chyba nemaze nastroje.** Vypadek serveru nesmi vymazat kroky z hotovych
|
||||
automatizaci. Prazdny seznam se naopak ulozi.
|
||||
- **Servery se pri startu neobvolavaji.** Jeden nedostupny by shodil katalog
|
||||
vsem.
|
||||
|
||||
### Opraveno mimochodem
|
||||
|
||||
- `setStatus` v `connectors/postgres.ts` melo v `RETURNING` doslovny retezec
|
||||
`${COLUMNS}` misto dosazeni. V rezimu `file`, ve kterem bezi nasazeni, se to
|
||||
neprojevilo.
|
||||
- Dva odstavce v [12-sluzby-a-konektory.md](12-sluzby-a-konektory.md) byly
|
||||
dvakrat.
|
||||
|
||||
## 2026-08-28 - dokument pro programatory
|
||||
|
||||
Novy [00-pro-programatory.md](00-pro-programatory.md): rozcestnik, model ctyr
|
||||
pojmu (sluzba, skript, konektor, krok), pravidla, ktera plati vsude, tri cesty
|
||||
vzniku operace, tri rezimy uloziste a seznam mist, ktera jsou krehka.
|
||||
|
||||
Neni to kopie [03-architektura-a-mapa-kodu.md](03-architektura-a-mapa-kodu.md).
|
||||
Ta rika, kde co lezi, tenhle rika proc to tak je.
|
||||
|
||||
## 2026-08-28 - transformace maji svou kategorii, pribylo XML
|
||||
|
||||
|
||||
Reference in New Issue
Block a user