/**
* Creative Brainstorm Prompt
*
* A prompt template for requesting human creativity and brainstorming
* on topics that benefit from human intuition and lateral thinking.
*/
import {
type PromptMessage,
type GetPromptResult,
type PromptArgument
} from '@modelcontextprotocol/sdk/types.js';
/**
* Arguments for the creative brainstorm prompt template
*/
export interface CreativeBrainstormArgs {
challenge: string;
goal?: string;
constraints?: string;
target_audience?: string;
inspiration_sources?: string;
idea_count?: number;
}
/**
* Prompt definition for creative brainstorming
*/
export const CREATIVE_BRAINSTORM_PROMPT = {
name: 'creative-brainstorm',
description: 'Request human creativity and brainstorming for challenges that benefit from intuitive and lateral thinking',
arguments: [
{
name: 'challenge',
description: 'The creative challenge or problem to solve',
required: true
},
{
name: 'goal',
description: 'The desired goal or outcome',
required: false
},
{
name: 'constraints',
description: 'Any constraints or limitations to consider',
required: false
},
{
name: 'target_audience',
description: 'The target audience or users',
required: false
},
{
name: 'inspiration_sources',
description: 'Sources of inspiration or reference points',
required: false
},
{
name: 'idea_count',
description: 'Number of ideas desired (defaults to 5-10)',
required: false
}
] as PromptArgument[]
} as const;
/**
* Generate the creative brainstorm prompt content
*
* @param args Arguments for prompt generation
* @returns Formatted prompt with messages
*
* @example
* ```typescript
* const result = await generateCreativeBrainstormPrompt({
* challenge: "Design a mobile app for busy parents",
* goal: "Help parents manage family schedules and tasks more efficiently",
* constraints: "Limited screen time, must work offline",
* target_audience: "Working parents with children aged 5-15",
* inspiration_sources: "Successful productivity apps, family organizers",
* idea_count: 8
* });
* ```
*/
export async function generateCreativeBrainstormPrompt(args: CreativeBrainstormArgs): Promise<GetPromptResult> {
const {
challenge,
goal,
constraints,
target_audience,
inspiration_sources,
idea_count = 7
} = args;
let promptText = `I need your creative thinking and brainstorming skills for the following challenge:
**Creative Challenge:** ${challenge}`;
if (goal) {
promptText += `\n\n**Goal:** ${goal}`;
}
if (target_audience) {
promptText += `\n\n**Target Audience:** ${target_audience}`;
}
if (constraints) {
promptText += `\n\n**Constraints/Limitations:** ${constraints}`;
}
if (inspiration_sources) {
promptText += `\n\n**Inspiration Sources:** ${inspiration_sources}`;
}
promptText += `\n\n**Request:** Please generate ${idea_count} creative ideas or approaches.
For each idea, please provide:
- A clear, concise description
- What makes it unique or innovative
- How it addresses the challenge
- Any potential benefits or advantages
Feel free to think outside the box and explore unconventional approaches. The goal is to generate diverse, creative solutions that leverage human intuition and lateral thinking.
Don't worry about immediate feasibility - focus on creativity and innovation. We can refine and evaluate the ideas later.`;
const messages: PromptMessage[] = [
{
role: 'user',
content: {
type: 'text',
text: promptText
}
}
];
return {
description: `Creative brainstorming for: ${challenge}`,
messages
};
}