UNPKG

marketing-post-generator-mcp

Version:

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

69 lines 2.02 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 BlogPostGeneratorToolArgs { narrativeId?: string; title?: string; topic?: string; keywords?: string[]; wordCount?: number; style?: 'informative' | 'persuasive' | 'storytelling' | 'technical' | 'conversational'; updateExisting?: boolean; } export interface BlogPostResult { id: string; title: string; topic: string; keywords: string[]; wordCount: number; style: string; narrativeId: string | null; createdAt: string; excerpt: string; filePath: string; metadataPath: string; } export interface NarrativeData { postId: string; title: string; style: string; narrative: { introduction: string; mainSections: { title: string; content: string; }[]; conclusion: string; keyPoints: string[]; callToAction: string; wordCount: number; }; rawNarrative: string; domain: string; toneAnalysis: any; createdAt: string; } export interface PostgenConfig { domain: string; initialized: boolean; createdAt: string; } export declare class BlogPostGeneratorTool { private readonly logger; constructor(_searchService: SearchService, logger?: winston.Logger); getToolDefinition(): Tool; execute(args: BlogPostGeneratorToolArgs, claudeService: IClaudeService): Promise<string>; private validatePostgenDirectory; private getPostgenConfig; private getNarrative; private extractKeywordsFromNarrative; private getExistingToneAnalysis; private createDomainMatcher; private generateBlogPost; private buildBlogPostPrompt; private saveBlogPost; private estimateWordCount; private formatResponse; } //# sourceMappingURL=BlogPostGeneratorTool.d.ts.map