poml-mcp
Version:
MCP server that enhances user prompts using POML-style structure
55 lines (47 loc) • 1.67 kB
JavaScript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
async function main() {
const transport = new StdioClientTransport({
command: process.execPath, // node
args: ["index.mjs"],
cwd: process.cwd(),
});
const client = new Client({ name: "poml-agentflow-test-client", version: "0.1.0" });
await client.connect(transport);
const toolResult = await client.callTool({
name: "enhance_prompt",
arguments: {
user_request: "Escribe un resumen ejecutivo de media página sobre el impacto de POML en flujos de prompting empresariales",
audience: "Directores de producto",
style: "Profesional pero claro",
domain: "IA aplicada a productividad",
include: ["Beneficios cuantificables", "Riesgos y mitigaciones"],
constraints: ["Sin datos sensibles", "Referencias si se citan números"],
},
});
// Print textual content for compatibility
if (Array.isArray(toolResult.content)) {
for (const part of toolResult.content) {
if (part.type === "text") console.log(part.text);
}
}
// Print structuredContent if available (preferred)
if (toolResult.structuredContent) {
console.log("\n=== structuredContent ===");
const { enhanced, poml, rendered } = toolResult.structuredContent;
if (enhanced) {
console.log("[enhanced]\n" + enhanced);
}
if (poml) {
console.log("\n[poml]\n" + poml);
}
if (rendered) {
console.log("\n[rendered]\n" + rendered);
}
}
await client.close();
}
main().catch((e) => {
console.error(e);
process.exit(1);
});