UNPKG

@stakpak/mcp

Version:

An MCP server that connects to Stakpak

44 lines (43 loc) • 1.46 kB
import { request as apiRequest } from "./client.js"; export const generateCommand = async (apiKey, request, version = "v1") => { const response = await apiRequest(`commands/${request.provisioner}/generate`, apiKey, version, { method: "POST", body: JSON.stringify(request) }); return { content: process.env.OUTPUT === "resource" ? formatResponseToResources(response) : formatResponseToText(response) }; }; const formatResponseToResources = (response) => { const documents = {}; for (const block of response.result.created_blocks) { if (documents[block.document_uri]) { documents[block.document_uri] += `${block.code}\n`; } else { documents[block.document_uri] = `${block.code}\n`; } } return Object.entries(documents).map(([uri, code]) => ({ type: "resource", resource: { text: code, uri } })); }; const formatResponseToText = (response) => { const documents = {}; for (const block of response.result.created_blocks) { if (documents[block.document_uri]) { documents[block.document_uri] += `${block.code}\n\n`; } else { documents[block.document_uri] = `# ${block.document_uri}\n\n${block.code}\n\n`; } } return Object.entries(documents).map(([uri, code]) => ({ type: "text", text: code })); };