marketing-post-generator-mcp
Version:
A powerful MCP server for AI-powered marketing blog post generation with Claude integration
61 lines • 1.96 kB
TypeScript
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 ContentPlanToolArgs {
domain: string;
timeframe?: 'week' | 'month' | 'quarter';
postCount?: number;
updateExisting?: boolean;
}
export interface ContentPlanPost {
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 ContentPlanResult {
domain: string;
timeframe: 'week' | 'month' | 'quarter';
postCount: number;
posts: ContentPlanPost[];
contentGaps: string[];
trendingTopics: string[];
recommendations: string[];
executionStrategy: string;
timestamp: string;
updatedFrom?: string | undefined;
}
export interface ExistingSample {
title: string;
content: string;
url: string;
categories?: string[];
}
export interface ExistingToneAnalysis {
formality: string;
emotion: string;
style: string;
overallTone: string;
}
export declare class ContentPlanTool {
private readonly logger;
constructor(_searchService: SearchService, logger?: winston.Logger);
getToolDefinition(): Tool;
execute(args: ContentPlanToolArgs, claudeService: IClaudeService): Promise<string>;
private createDomainMatcher;
private validatePostgenDirectory;
private getExistingSamples;
private getExistingToneAnalysis;
private getLatestContentPlan;
private generateContentPlan;
private buildContentPlanPrompt;
private parseContentPlanResponse;
private saveContentPlan;
private formatResponse;
}
//# sourceMappingURL=ContentPlanTool.d.ts.map