`registerPrompt()` silently drops `icons` from PromptDefinition config

Abierto Apto para principiantes
#2,054 1 comentario 0 reacciones 0 asignados Ver en GitHub

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

potentially close

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

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de modelcontextprotocol/typescript-sdk

Todos los issues de modelcontextprotocol/typescript-sdk

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.