`registerPrompt()` silently drops `icons` from PromptDefinition config
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 70/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- typescript
- Área
- api
Línea de trabajo
Comienza en registerPrompt() en dist/cjs/server/mcp.js:734 y sigue cómo se serializan los prompts registrados para las respuestas de prompts/list. Compara los campos de PromptDefinition con la definición de prompt de MCP 2025-11-25 y verifica después que un prompt configurado con iconos los devuelve en la respuesta wire.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
server.registerPrompt() accepts a config object but destructures only { title, description, argsSchema } before storing the prompt. Any additional fields — including icons: Icon[], which the MCP 2025-11-25 spec explicitly allows on prompt definitions — are silently discarded. Clients calling prompts/list never receive icons.
SDK Version
@modelcontextprotocol/sdk 1.29.0
Affected Line
dist/cjs/server/mcp.js:734:
const { title, description, argsSchema } = config; // ← icons dropped here
Spec Reference
MCP 2025-11-25 server/prompts.md — prompts can have icons?: Icon[]. The Icon interface (spec.types.d.ts:449–487) has src, mimeType, sizes, and optional theme.
Reproduction
server.registerPrompt('my_prompt', {
description: 'A prompt with an icon',
argsSchema: {},
icons: [{ src: 'data:image/svg+xml;base64,...', mimeType: 'image/svg+xml', sizes: ['24x24'] }],
}, async () => ({ messages: [] }));
// prompts/list response: icons field is absent
Expected Behavior
icons in registerPrompt() config should be stored and returned in prompts/list wire responses.
Workaround
Intercept prompts/list via server.server.setRequestHandler(ListPromptsRequestSchema, ...) and inject icons from a parallel Map<name, Icon[]>.
Fix Suggestion
// In registerPrompt():
const { title, description, argsSchema, icons } = config; // include icons
registeredPrompt.icons = icons; // persist
// In prompts/list serializer: include icons if present
- Lenguaje dominante
- TypeScript
- Estrellas
- 13.4k
- Forks
- 2.2k
- Merge medio
- 3 d 12 h
- PR fusionados (30 d)
- 3
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 modelcontextprotocol/typescript-sdk
-
Auth metadata discovery: fallback URL built on resource host instead of authorization-server host Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
modelcontextprotocol/typescript-sdk#2783 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
modelcontextprotocol/typescript-sdk#2766 · 1 comentario ·
-
Dificultad 2/5 1-2 días Aptitud para principiantes 72/100
Todos los issues de modelcontextprotocol/typescript-sdk
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
[Bug]: Matrix progress drafts fail with "Matrix runtime not initialized" during tool activity Abiertobug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Client support matrix inclusion Abiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
calcite-components needs triage refactor
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Esri/calcite-design-system#15203 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
fullcalendar/fullcalendar#8106 ·