TGViewer
PHP Fart Time PHP Fart Time @php_fart · 1.95K subscribers
Post #256 2.65K
#ТоксикСреда, фартаны.

Всех нас уже изрядно заебдостали отовсюду вылезающие конструкторы 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 — от Романа Пронского.
По доке выглядит удобно и минималистично, но не для сложных задач.
Рома хайпнул, разработка заморожена. Сделано поверх 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-схему ебани массивом". И вот уже сам сидишь и переписываешь пол пакета.

В общем, спасибо всем пацанам, которые тащат нормальные пакеты, и тем, кто им помогает ❤️
  • 🔥 35
  • 😁 6
More from @php_fart
  1. Sep 9, 2026Попрошу перенести старт на конец сентября этого года. Лишь бы не жрать лимон 🍋
  2. Sep 9, 2026Если по моему промокоду придёт 50 фартанов, то я сожру лимон в прямом эфире перед докладом…
  3. Sep 9, 2026А у меня для вас вот такой промокод на Пыхник: PHPFART-26. Приходите смотреть, как я облаж…
  4. Sep 8, 2026Кстати, Роман и из JetBrains ушёл. Так что этот тред посвящён оплакиванию PHPStorm. Хороша…
  5. Sep 3, 2026Post #380
  6. Sep 2, 2026Роман Пронский окончательно уходит из PHPF. На его место заступает Брент (тоже JetBrains),…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →