UNPKG

marketing-post-generator-mcp

Version:

A powerful MCP server for AI-powered marketing blog post generation with Claude integration

75 lines 2.34 kB
import { Tool } from '@modelcontextprotocol/sdk/types.js'; import { SearchService } from '../services/search/index.js'; import { IClaudeService } from '../services/claude/IClaudeService.js'; import winston from 'winston'; export interface NarrativeGeneratorToolArgs { postId: string; style?: 'concise' | 'detailed' | 'storytelling'; updateExisting?: boolean; } export interface ContentPlanPost { id: string; title: string; description: string; keywords: string[]; category: string; estimatedLength: string; priority: 'high' | 'medium' | 'low'; targetAudience: string; contentType: 'educational' | 'promotional' | 'thought-leadership' | 'case-study' | 'tutorial' | 'news' | 'opinion'; } export interface ContentPlan { domain: string; timeframe: 'week' | 'month' | 'quarter'; plan: ContentPlanPost[]; timestamp: string; } export interface ToneAnalysis { formality: string; emotion: string; style: string; overallTone: string; wordChoicePatterns?: string; sentenceStructure?: string; uniqueCharacteristics?: string; } export interface StructuredNarrative { introduction: string; mainSections: { title: string; content: string; }[]; conclusion: string; keyPoints: string[]; callToAction: string; wordCount: number; } export interface NarrativeResult { postId: string; title: string; style: 'concise' | 'detailed' | 'storytelling'; narrative: StructuredNarrative; rawNarrative: string; domain: string; toneAnalysis: ToneAnalysis | null; createdAt: string; sourceContentPlan: string; } export declare class NarrativeGeneratorTool { private readonly logger; constructor(_searchService: SearchService, logger?: winston.Logger); getToolDefinition(): Tool; execute(args: NarrativeGeneratorToolArgs, claudeService: IClaudeService): Promise<string>; private validatePostgenDirectory; private checkExistingNarrative; private getLatestContentPlan; private getExistingToneAnalysis; private createDomainMatcher; private generateNarrative; private buildNarrativePrompt; private parseNarrative; private estimateWordCount; private saveNarrative; private formatResponse; } //# sourceMappingURL=NarrativeGeneratorTool.d.ts.map