import { Prompt, PromptContext, App, FrontMcp } from '@frontmcp/sdk';
@Prompt({
name: 'sql-query-builder',
title: 'SQL Query Builder',
description: 'Build SQL queries from natural language',
arguments: [
{ name: 'request', description: 'Natural language query request', required: true },
{ name: 'tables', description: 'Available table names (comma-separated)', required: true },
{ name: 'dialect', description: 'SQL dialect (mysql, postgres, sqlite)', required: false },
],
})
class SqlQueryBuilderPrompt extends PromptContext {
async execute(args: Record<string, string>) {
const dialect = args.dialect || 'postgres';
const tables = args.tables.split(',').map(t => t.trim());
return {
description: `SQL query for: ${args.request}`,
messages: [
{
role: 'user',
content: {
type: 'text',
text: `You are an expert ${dialect} SQL developer. You have access to these tables: ${tables.join(', ')}.
Generate a SQL query that accomplishes the following:
${args.request}
Requirements:
- Use ${dialect} syntax
- Include appropriate JOINs if needed
- Add comments explaining complex parts
- Optimize for readability
Return only the SQL query with comments.`,
},
},
],
};
}
}
@Prompt({
name: 'commit-message',
title: 'Git Commit Message',
description: 'Generate a commit message from changes',
arguments: [
{ name: 'diff', description: 'Git diff output', required: true },
{ name: 'style', description: 'Commit style (conventional, simple)', required: false },
],
})
class CommitMessagePrompt extends PromptContext {
async execute(args: Record<string, string>) {
const style = args.style || 'conventional';
const styleGuide = style === 'conventional'
? 'Use conventional commit format: type(scope): description'
: 'Use a simple, descriptive format';
return {
description: 'Generate commit message',
messages: [
{
role: 'user',
content: {
type: 'text',
text: `Analyze these code changes and generate a commit message.
${styleGuide}
Changes:
\`\`\`diff
${args.diff}
\`\`\`
Generate a concise, descriptive commit message.`,
},
},
],
};
}
}
@App({
name: 'dev-prompts',
prompts: [SqlQueryBuilderPrompt, CommitMessagePrompt],
})
class DevPromptsApp {}
@FrontMcp({
info: { name: 'Developer Prompts', version: '1.0.0' },
apps: [DevPromptsApp],
})
export default class DevPromptsServer {}