Ograniczenia
Wyrażenia wykonywane na serwerze i to, czego serwer MCP nie robi
Wyrażenia runLocal
Wyrażenia runLocal, pola local / credential / html i wartości domyślne evalDefault są obliczane na serwerze, w osobnym kontekście V8: bez process, require, sieci ani timerów, bez kompilowania ciągów znaków do kodu, z limitem czasu 2 sekund i tylko z funkcjami pomocniczymi, które oferuje przeglądarka (fnArray, fnGetNumberedName, fnToTable, …).
Chroni to przed wadliwymi lub niekończącymi się wyrażeniami. Nie jest to piaskownica dla wrogiego kodu i nie musi nią być: kod pochodzi z definicji formularza, nigdy od wywołującego MCP, a każda wartość wysłana przez wywołującego jest podstawiana jako literał JavaScript.
Wyrażenie, które korzysta z API przeglądarki (window, document, fetch), nie może tu działać i zwraca status: error.
Wyrażenia po stronie serwera (bez runLocal) podlegają tym samym regułom EXPRESSION_SANITIZER co w przypadku przeglądarki.
Ograniczenia
Niektórych formularzy i pól nie można jeszcze używać przez serwer MCP:
- Formularzy typu kreator nie można jeszcze uruchamiać. Ich kroki można rozwiązywać przez
subform. - Pól plików nie można wypełniać; formularz, którego pole pliku ma wartość, jest odrzucany.
- Wiersze list (oraz pole
yamlz podformularzem, które jest jednym takim wierszem): każdy wysłany wiersz, z wyjątkiem tego, który zawieradeleteMarkerlisty, jest rozwiązywany przez swój podformularz z wartościami formularza jako__parent__, a następnie walidowany. Dotyczy to też list zagnieżdżonych, w których__parent__.__parent__sięga formularza. Wysyłaj zwykłe wiersze, czyli surowe wartości pól podformularza. Błędne wiersze są wymieniane dla każdego pola listy wrowErrors(vms[1].disks[0].size (missing)w komunikacie). Przyjmowanych jest najwyżej 500 wierszy na wywołanie, łącznie na wszystkich poziomach. - Enum pozostawiony na
__auto__nigdy nie jest wypełniany pierwszą opcją; wywołujący musi wybrać. - Każde żądanie MCP tworzy jeden wpis w dzienniku audytu (akcja „Żądanie MCP (agent AI)”); samo zadanie jest zapisywane pod użytkownikiem, jak każde inne uruchomienie.