#ТоксикСреда, фартаны.
Всех нас уже изряднозаебдостали отовсюду вылезающие конструкторы MCP-серверов на PHP.
Предлагаю быстро пройтись по каждому MCP SDK, который приходит на ум.
1. symfony/mcp-bundle — бридж на symfony/mcp-sdk (бывший php-llm/mcp-sdk).
Здесь тулзы описываются дедовскими методами: типа JSON-schema через PHP-массивы. Кто-то скажет "низкоуровнево", я скажу "всрато". Не ведитесь на бренд, там всё из говна и палок.
Кстати, если вы всё ещё верите в Symfony и хотите как-то исправить этот AI Platform, то записывайтесь на хакатон, а то они уже совсем отчаялись.
2. logiscape/mcp-sdk-php — использовался на практике в CTX. HTTP Transport нормальный (портирован с Python SDK), но роутер — говно: RegisterHandler руками, угадываешь параметры, никаких мидлварей. Пришлось много переписывать. Архитектура не хорошая и не плохая (никакая). Такое бывает, когда бездумно переписываешь с Python.
3. pronskiy/mcp — от Романа Пронского.
По доке выглядит удобно и минималистично, но не для сложных задач.
Рома хайпнул, разработка заморожена. Сделано поверх
4. laravel/mcp — кажется, Laravel подсмотрели решение у Ромы, но что-то пошло не так и у них получилась хуйня неюзабельная.
Схемы создаются через громоздкий билдер, где необходимо руками описывать каждое поле. LLM возвращает массив, и дальше сам разбирайся: никаких DTO, никакой валидации.
Подходит только для Hello World проектов. Можно сразу скипать.
5. php-mcp/server — MCP из Нигерии.
Выглядит прилично: схемы генерируются из аргументов методов с атрибутами, есть invocable классы. Но дьявол в деталях: DTO превращает в "type object", собственный JSON-schema валидатор строже стандарта, handler фильтрует аргументы и теряет данные.
Чтобы это заработало нормально, пришлось экстендить половину internal классов. Интеграция на пороховой бочке 👇
6. spiral/mcp-server — обвязка над
Решены ключевые проблемы базовой и других библиотек из подборки: вместо громоздких функций с десятками аргументов или всратых массивов используются DTO с атрибутами. По ним обнаруживаются тулзы и из них же генерируется JSON-схема через spiral/json-schema-generator. Входящие данные маппятся через Valinor с валидацией.
Подключается одним bootloader'ом, легко настраивается и интегрируется с любым сервисом.
Общая проблема многих библиотек в том, что ими сами же авторы и не пользуются: делают на волне хайпа простейший MVP, а потом рассказывают, что можно решить любые задачи.
Берёшь такую херню для интеграции с Task manager, где надо создавать задачи с подзадачами (~10 полей с вложенными DTO и валидацией), понимаешь что нужно что-то другое. Это не тот кейс из доки типа "тут пара аргументов
В общем, спасибо всем пацанам, которые тащат нормальные пакеты, и тем, кто им помогает ❤️
Всех нас уже изрядно
Предлагаю быстро пройтись по каждому MCP SDK, который приходит на ум.
1. symfony/mcp-bundle — бридж на symfony/mcp-sdk (бывший php-llm/mcp-sdk).
Здесь тулзы описываются дедовскими методами: типа JSON-schema через PHP-массивы. Кто-то скажет "низкоуровнево", я скажу "всрато". Не ведитесь на бренд, там всё из говна и палок.
Кстати, если вы всё ещё верите в Symfony и хотите как-то исправить этот AI Platform, то записывайтесь на хакатон, а то они уже совсем отчаялись.
2. logiscape/mcp-sdk-php — использовался на практике в CTX. HTTP Transport нормальный (портирован с Python SDK), но роутер — говно: RegisterHandler руками, угадываешь параметры, никаких мидлварей. Пришлось много переписывать. Архитектура не хорошая и не плохая (никакая). Такое бывает, когда бездумно переписываешь с Python.
3. pronskiy/mcp — от Романа Пронского.
По доке выглядит удобно и минималистично, но не для сложных задач.
Рома хайпнул, разработка заморожена. Сделано поверх
logiscape/mcp-sdk-php
👆4. laravel/mcp — кажется, Laravel подсмотрели решение у Ромы, но что-то пошло не так и у них получилась хуйня неюзабельная.
Схемы создаются через громоздкий билдер, где необходимо руками описывать каждое поле. LLM возвращает массив, и дальше сам разбирайся: никаких DTO, никакой валидации.
Подходит только для Hello World проектов. Можно сразу скипать.
5. php-mcp/server — MCP из Нигерии.
Выглядит прилично: схемы генерируются из аргументов методов с атрибутами, есть invocable классы. Но дьявол в деталях: DTO превращает в "type object", собственный JSON-schema валидатор строже стандарта, handler фильтрует аргументы и теряет данные.
Чтобы это заработало нормально, пришлось экстендить половину internal классов. Интеграция на пороховой бочке 👇
6. spiral/mcp-server — обвязка над
php-mcp/server
от инженера Spiral Scout 😎, сделанная с умом .Решены ключевые проблемы базовой и других библиотек из подборки: вместо громоздких функций с десятками аргументов или всратых массивов используются DTO с атрибутами. По ним обнаруживаются тулзы и из них же генерируется JSON-схема через spiral/json-schema-generator. Входящие данные маппятся через Valinor с валидацией.
Подключается одним bootloader'ом, легко настраивается и интегрируется с любым сервисом.
Общая проблема многих библиотек в том, что ими сами же авторы и не пользуются: делают на волне хайпа простейший MVP, а потом рассказывают, что можно решить любые задачи.
Берёшь такую херню для интеграции с Task manager, где надо создавать задачи с подзадачами (~10 полей с вложенными DTO и валидацией), понимаешь что нужно что-то другое. Это не тот кейс из доки типа "тут пара аргументов
$a
и $b
, оба строки, а JSON-схему ебани массивом". И вот уже сам сидишь и переписываешь пол пакета.В общем, спасибо всем пацанам, которые тащат нормальные пакеты, и тем, кто им помогает ❤️
🔥30 13😁6
Жетончик н-н-надо? Как в баталфилд 3!
В прошлый раз я организовывал сбор на именованные жетоны на PHPRussia 2024.
Жетонами я остался доволен, поэтому давайте повторим, но уже для ПЫХ.КОНФ'25.
Условия простые:
- Вот копилка: https://www.tbank.ru/cf/1UjzHHet5aH (знаю, описание всратое, спасибо ТБанку)
- Закидывайте туда сумму от 500р с указанием никнейма в комментарии.
- Этот никнейм будет нанесён на обратную сторону жетона. Если укажете с собачкой, то и нанесено будет с собачкой
- Если что-то не так (забыли комментарий или накосячили в написании), то всё решим в чате.
- Сбор продлится минимум неделю.
- Жетоны будут уникальными и получить их можно будет только на Пыхконфе (включая пре/афтепати).
- Цена на жетоны немного выше себестоимости. Разница пойдёт на покрытие стоковых неименованных жетонов (необработанных односторонних).
Спасибо всем, кто в прошлый раз скинулся сверх стоимости жетонов — это помогло покрыть часть затрат на общий мерч. В тот раз сбор продлился всего сутки-двое и многие говорили, что увидели, когда уже поздно, в этот раз времени хватит.
На фотке жетоны с PHPRussia: сверху две стороны именованных с ошкуренной поверхностью, снизу два варианта стоковых. Пыхконфовые будут отличаться.
В прошлый раз я организовывал сбор на именованные жетоны на PHPRussia 2024.
Жетонами я остался доволен, поэтому давайте повторим, но уже для ПЫХ.КОНФ'25.
Условия простые:
- Вот копилка: https://www.tbank.ru/cf/1UjzHHet5aH (знаю, описание всратое, спасибо ТБанку)
- Закидывайте туда сумму от 500р с указанием никнейма в комментарии.
- Этот никнейм будет нанесён на обратную сторону жетона. Если укажете с собачкой, то и нанесено будет с собачкой
@nickname
, если без собачки — то без собачки nickname
.- Если что-то не так (забыли комментарий или накосячили в написании), то всё решим в чате.
- Сбор продлится минимум неделю.
- Жетоны будут уникальными и получить их можно будет только на Пыхконфе (включая пре/афтепати).
- Цена на жетоны немного выше себестоимости. Разница пойдёт на покрытие стоковых неименованных жетонов (необработанных односторонних).
Спасибо всем, кто в прошлый раз скинулся сверх стоимости жетонов — это помогло покрыть часть затрат на общий мерч. В тот раз сбор продлился всего сутки-двое и многие говорили, что увидели, когда уже поздно, в этот раз времени хватит.
На фотке жетоны с PHPRussia: сверху две стороны именованных с ошкуренной поверхностью, снизу два варианта стоковых. Пыхконфовые будут отличаться.
3🔥8💊1