feat(mcp): advertise the MCP Apps extension when a resource serves an app
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
Línea de trabajo
Start by reading the MCP bundle Loader and the referenced McpAppPass::extensionAlreadyEnabled() logic, then check how the SDK defines McpApps::MIME_TYPE and McpApps::URI_SCHEME. Trace how registered resources and tools expose those values and how server capabilities are built. Done means app resources or tool metadata enable the extension once per server, including when #[AsMcpApp] is also used.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When an McpResource serves an MCP App (mimeType: 'text/html;profile=mcp-app', ui:// uri) or an McpTool points to one through meta: ['ui' => ['resourceUri' => 'ui://...']], the server should advertise the io.modelcontextprotocol/ui extension in its capabilities. Today we don't, so every app ends up with its own compiler pass:
$container->getDefinition('mcp.server.garage.builder')
->addMethodCall('enableExtension', [new Definition(McpApps::class)]);
The bundle already does this for #[AsMcpApp] (Symfony\AI\McpBundle\DependencyInjection\McpAppPass, see extensionAlreadyEnabled()), and since 2026-07-28 extensions are negotiated through capabilities.extensions, so a host that doesn't see it may not render the app at all.
I think the Loader (or a compiler pass in the bundle integration) could check the operations it registers and call enableExtension(new McpApps()) once per server when one of them is an app, reusing McpApps::MIME_TYPE / McpApps::URI_SCHEME from the sdk. We'd also need to not enable it twice when #[AsMcpApp] is used next to API Platform resources.
Thoughts?
- Lenguaje dominante
- PHP
- Estrellas
- 2.6k
- Forks
- 988
- Merge medio
- 4 d 16 h
- PR fusionados (30 d)
- 118
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de api-platform/core
-
api-platform/doctrine-common requires abandoned doctrine/common but doesn't appear to use itAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
api-platform/core#8835 ·
Los mantenedores suelen responder en 2 días
-
API Platform ignores array shapes in the JSON SchemaPosiblemente ocupada @afraca la tomó hace 14 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
api-platform/core#8766 ·
Los mantenedores suelen responder en 2 días
-
JSON:API: resource schemas (`*.jsonapi`) have `properties` but no `type: object`Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 Menos de una hora Aptitud para principiantes 80/100
api-platform/core#8701 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 57/100
api-platform/core#8834 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
api-platform/core#8816 ·
Los mantenedores suelen responder en 2 días
Todos los issues de api-platform/core
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
bug SH_K
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
McNamara84/ernie#1540 ·
Los mantenedores suelen responder en 1 día
-
Перевод устарел
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
php/frankenphp#2829 ·
Los mantenedores suelen responder en 1 día
-
30-minutes algorithm any-language beginner-friendly c community cpp csharp data-structures go good first issue hacktoberfest help wanted kotlin learning leetcode php ruby rust swift
Dificultad 2/5 Menos de una hora Aptitud para principiantes 85/100
Huerte/algo-solutions-python#211 ·
Los mantenedores suelen responder en 1 día