Актуальні помилки

Актуальні помилки

Відомі помилки й нестиковки поточної версії MCP Bundle (1.0.0): симптом, причина та обхідний шлях. Помилки ядра — у Відомих помилках JsonRpcBundle. Виправлені — на сторінці Виправлені помилки.

Ліміти групи не перевіряються конфігурацією

Актуальна

Зачеплені версії: 1.0.0 (поточна). Перевірено за кодом тегу 1.0.0.

Симптом. Загальні max_body_bytes і session_ttl мають бути цілими числами >= 1, інакше контейнер не збирається. Ті самі параметри в groups.<group> приймаються будь-якими, і помилка проявляється лише під час запиту:

  • max_body_bytes: 0 (або від'ємне) — кожен запит до ендпоінта групи завершується HTTP 500 (maxBodyBytes must be at least 1. з транспорту SDK);
  • session_ttl: 0 або від'ємне — сесія прострочена одразу після створення, клієнт протоколу із сесіями отримує 404 на кожен запит після initialize;
  • рядок замість числа — TypeError під час створення конфігурації бандла, HTTP 500.

Причина. У Configuration для групи ці поля — scalarNode без min(1) (щоб приймати ~ як «успадкувати»), а McpGroupConfig присвоює значення без перевірки.

Обхідний шлях. Задавайте для групи цілі числа >= 1 або не задавайте поле зовсім (тоді діє загальне значення). Для змінних оточення використовуйте %env(int:...)%.


Клієнти лише з OAuth не можуть підключитися

Актуальна

Зачеплені версії: 1.0.0 (поточна). Обмеження, зазначене в описі релізу 1.0.

Симптом. MCP-клієнт, який не вміє надсилати власний заголовок і чекає авторизації OAuth, отримує 401 і не підключається. Наприклад, MCP Inspector без заголовка з токеном запускає власний OAuth-flow, який завершується невдачею.

Причина. OAuth не реалізовано: немає /.well-known/oauth-protected-resource і заголовка WWW-Authenticate у відповіді 401. Доступ — лише RPC-токен ядра в заголовку (Ufo-RPC-Token).

Обхідний шлях. Використовуйте клієнти, що підтримують власні заголовки (Claude Code, Cursor, Gemini CLI, OpenAI Responses API), і маніфести; у MCP Inspector передавайте --header "Ufo-RPC-Token: …".


Покриття під Xdebug завершується segmentation fault

Актуальна

Зачеплені версії: 1.0.0 (поточна). Стосується лише розробки бандла, на роботу застосунку не впливає.

Симптом. Запуск тестів з покриттям через Xdebug 3.4.2 (образ ufotech/php:8.4-fpm) падає з segmentation fault на тестах, що запускають сервер SDK.

Причина. Збій самого Xdebug 3.4.2, а не помилка в коді бандла (за описом релізу 1.0); точна причина не встановлена.

Обхідний шлях. Збирайте покриття через pcov — див. Тести.


Нестиковки в документації репозиторію бандла

Актуальна

Зачеплені версії: 1.0.0 (поточна). Нестиковка документації, на роботу бандла не впливає.

  • README.md і README-UA.md бандла посилаються на документацію за адресою http://localhost/uk/docs/api/mcp-bundle. Актуальна документація — на цьому сайті.
  • Приклад «За одну хвилину» в docs/README.md (і -UA) обіцяє інструмент Catalog.search для класу CatalogProcedure без #[RPC\Info]. Без атрибута ядро бере коротку назву класу, тож інструмент називатиметься CatalogProcedure.search. Щоб отримати Catalog.search, додайте #[RPC\Info('Catalog')], як у прикладах на цьому сайті.