c528067c79
Auto Tag Develop / tag (push) Successful in 11s
Certains clients MCP sérialisent tous les arguments JSON-RPC en string (ex: "22" au lieu de 22). Le SDK valide les arguments contre le schéma JSON AVANT de les caster (CallToolHandler), donc un schéma integer strict rejetait "22" en 422 alors que ReferenceHandler::castArgumentType sait le coercer ensuite. CoercingSchemaGenerator enveloppe le SchemaGenerator du SDK et ajoute "string" aux types scalaires integer/number/boolean (et aux items de tableaux), de sorte que opis accepte la valeur stringifiée ; le type PHP réel du paramètre pilote toujours la coercition. Branché sur le builder MCP via McpSchemaGeneratorPass (enregistrée dans Kernel::build). Corrige le rejet 422 sur groupId/effortId/priorityId/statusId/etc. lors de l'appel des tools depuis Claude.
21 lines
492 B
PHP
21 lines
492 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App;
|
|
|
|
use App\DependencyInjection\Compiler\McpSchemaGeneratorPass;
|
|
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
|
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
|
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
|
|
|
|
class Kernel extends BaseKernel
|
|
{
|
|
use MicroKernelTrait;
|
|
|
|
protected function build(ContainerBuilder $container): void
|
|
{
|
|
$container->addCompilerPass(new McpSchemaGeneratorPass());
|
|
}
|
|
}
|