feat(mcp): advertise the MCP Apps extension when a resource serves an app
Mantenedores costumam responder em até 2 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 52/100
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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?
- Linguagem predominante
- PHP
- Estrelas
- 2.6k
- Forks
- 985
- Merge médio
- 4d 16h
- PRs com merge (30d)
- 118
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de api-platform/core
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
api-platform/core#8835 ·
Mantenedores costumam responder em até 2 dias
-
API Platform ignores array shapes in the JSON SchemaTalvez já em andamento @afraca assumiu há 15 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
api-platform/core#8766 ·
Mantenedores costumam responder em até 2 dias
-
JSON:API: resource schemas (`*.jsonapi`) have `properties` but no `type: object`Talvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 Menos de uma hora Facilidade para iniciantes 80/100
api-platform/core#8701 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 57/100
api-platform/core#8834 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
api-platform/core#8816 ·
Mantenedores costumam responder em até 2 dias
Todas as issues de api-platform/core
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Codeinwp/themeisle-companion#1014 ·
Mantenedores costumam responder em até 1 dia
-
sync-en
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 71/100
Mantenedores costumam responder em até 1 dia
-
sync-en
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
repo:cms
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
craftcms/cms#20596 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Перевод устарел
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 61/100
Mantenedores costumam responder em até 1 dia