Skip to main content
Glama
j0hanz

PromptTuner MCP

by j0hanz
llm-responses.ts2.8 kB
// Zod schemas for validating LLM responses import { z } from 'zod'; // Re-export types from centralized types.ts export type { AnalysisCharacteristics, AnalysisResponse, ComparisonResponse, FormatDetectionResponse, OptimizeResponse, OptimizeScore, ValidationIssue, ValidationResponse, } from '../config/types.js'; /** * Schema for score values (0-100). */ const ScoreSchema = z.number().int().min(0).max(100); /** * Schema for optimization scores across dimensions. */ export const OptimizeScoreSchema = z.object({ clarity: ScoreSchema, specificity: ScoreSchema, completeness: ScoreSchema, structure: ScoreSchema, effectiveness: ScoreSchema, overall: ScoreSchema, }); /** * Schema for optimize_prompt LLM response. */ export const OptimizeResponseSchema = z.object({ optimized: z.string().min(1).describe('The fully optimized prompt'), techniquesApplied: z.array(z.string()).min(1).describe('Techniques applied'), improvements: z.array(z.string()).describe('List of improvements made'), beforeScore: OptimizeScoreSchema, afterScore: OptimizeScoreSchema, }); /** * Schema for analysis characteristics. */ export const AnalysisCharacteristicsSchema = z.object({ hasTypos: z.boolean(), isVague: z.boolean(), missingContext: z.boolean(), hasRoleContext: z.boolean(), hasExamples: z.boolean(), hasStructure: z.boolean(), hasStepByStep: z.boolean(), wordCount: z.number().int().min(0), detectedFormat: z.enum(['claude', 'gpt', 'json', 'auto']), estimatedComplexity: z.enum(['simple', 'moderate', 'complex']), }); /** * Schema for analyze_prompt LLM response. */ export const AnalysisResponseSchema = z.object({ score: OptimizeScoreSchema, characteristics: AnalysisCharacteristicsSchema, suggestions: z.array(z.string()).describe('Improvement suggestions'), }); /** * Schema for comparison response. */ export const ComparisonResponseSchema = z.object({ winner: z.enum(['A', 'B', 'tie']), scoreA: OptimizeScoreSchema, scoreB: OptimizeScoreSchema, improvements: z.array(z.string()), regressions: z.array(z.string()), recommendation: z.string(), }); /** * Schema for validation issue. */ export const ValidationIssueSchema = z.object({ type: z.enum(['error', 'warning', 'info']), message: z.string(), suggestion: z.string().optional(), }); /** * Schema for validate_prompt LLM response. */ export const ValidationResponseSchema = z.object({ isValid: z.boolean(), tokenEstimate: z.number().int().min(0), issues: z.array(ValidationIssueSchema), }); /** * Schema for format detection response. */ export const FormatDetectionResponseSchema = z.object({ detectedFormat: z.enum(['claude', 'gpt', 'json', 'auto']), confidence: z.number().int().min(0).max(100), recommendation: z.string(), });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/j0hanz/prompt-tuner-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server