UNPKG

@andrea9293/mcp-gemini-prompt-enhancer

Version:

A Model Context Protocol (MCP) server that provides a prompt optimization service for Large Language Models (LLMs) using Google Gemini, with advanced prompt engineering thanks to 22365_3_Prompt_Engineering_v7.pdf authored by Lee Boonstra

59 lines (58 loc) 2.07 kB
import * as fs from 'fs'; import * as path from 'path'; import * as https from 'https'; import 'dotenv/config'; /** * A simple service for generating prompts */ export class UtilsService { /** * Enhance a prompt * @param prompt The prompt to enhance * @returns The enhanced prompt */ static async ensurePdfExistsService() { console.error("Ensuring PDF exists asynchronously..."); return await ensurePdfExists(); } } async function ensurePdfExists() { // Get home directory cross-platform const homeDir = process.env.USERPROFILE || process.env.HOME; console.error(`Home directory: ${homeDir}`); if (!homeDir) throw new Error('Unable to determine home directory'); const enhancerDir = path.join(homeDir, '.mcp-enhancer-service'); if (!fs.existsSync(enhancerDir)) { fs.mkdirSync(enhancerDir, { recursive: true }); } const pdfFileName = '22365_3_Prompt_Engineering_v7.pdf'; const pdfPath = path.join(enhancerDir, pdfFileName); if (!fs.existsSync(pdfPath)) { console.error(`PDF not found at ${pdfPath}, downloading...`); // Download PDF const fileUrl = 'https://www.innopreneur.io/wp-content/uploads/2025/04/22365_3_Prompt-Engineering_v7-1.pdf'; await new Promise((resolve, reject) => { const file = fs.createWriteStream(pdfPath); https.get(fileUrl, (response) => { if (response.statusCode !== 200) { reject(new Error(`Failed to download PDF: ${response.statusCode}`)); return; } response.pipe(file); file.on('finish', () => { file.close(); resolve(); }); }).on('error', (err) => { fs.unlinkSync(pdfPath); reject(err); }); }); console.error(`PDF downloaded to ${pdfPath}`); } else { console.error(`PDF already exists at ${pdfPath}`); } return pdfPath; }