UNPKG

@tanstack/ai-mcp

Version:

Host-side Model Context Protocol client for TanStack AI: discover and run MCP server tools, resources, and prompts in any adapter's chat() loop, with generated end-to-end types.

29 lines (27 loc) 983 B
import type { ModelMessage } from '@tanstack/ai' /** * Convert an MCP GetPromptResult into an array of ModelMessages suitable for * passing to `chat()` or any TanStack AI adapter. * * @param prompt - An object with a `messages` array as returned by the MCP * `prompts/get` endpoint. * @returns An array of {@link ModelMessage} values. */ export function mcpPromptToMessages(prompt: { messages: Array<{ role: string content?: { type: string; text?: string } | null }> }): Array<ModelMessage> { return prompt.messages.map((m) => { const role: 'user' | 'assistant' = m.role === 'assistant' ? 'assistant' : 'user' const content = m.content?.type === 'text' && m.content.text !== undefined ? m.content.text : // `?? null` so absent content stringifies to 'null' rather than // producing `undefined` (invalid for ModelMessage['content']). JSON.stringify(m.content ?? null) return { role, content } }) }