marketing-post-generator-mcp
Version:
A powerful MCP server for AI-powered marketing blog post generation with Claude integration
109 lines • 2.81 kB
TypeScript
export interface ServerConfig {
server: {
mode: 'local' | 'remote';
transport: 'stdio' | 'http';
port?: number;
host?: string;
http?: {
enableJsonResponse?: boolean;
enableDnsRebindingProtection?: boolean;
allowedHosts?: string[];
allowedOrigins?: string[];
sessionIdGenerator?: (() => string) | undefined;
};
};
postgen: {
dataDir: string;
cacheEnabled: boolean;
cacheTtl: number;
};
claude: {
apiKey: string;
baseUrl?: string;
maxRetries?: number;
timeout?: number;
rateLimit?: {
requestsPerMinute: number;
tokensPerMinute: number;
};
};
search: {
defaultAdapter: string;
fallbackAdapters: string[];
adapterConfigs: Record<string, Record<string, any>>;
};
logging: {
level: 'error' | 'warn' | 'info' | 'debug' | 'trace';
format: 'simple' | 'json' | 'pretty';
};
errorHandling: {
enableErrorReporting: boolean;
enableStackTrace: boolean;
maxRecentErrors: number;
excludeStackTraceForCodes: string[];
notificationEnabled: boolean;
};
rateLimit: {
enableRateLimit: boolean;
defaultWindowMs: number;
defaultMaxRequests: number;
enableStandardHeaders: boolean;
enableLegacyHeaders: boolean;
};
cors?: {
allowedOrigins: string[];
allowedHeaders: string[];
credentials?: boolean;
};
}
export interface MCPTool {
name: string;
description: string;
parameters: any;
handler: (params: any, context: any) => Promise<any>;
}
export interface MCPPrompt {
name: string;
description: string;
parameters: Array<{
name: string;
description: string;
required: boolean;
}>;
}
export interface ToolFactory {
createTool(): MCPTool;
getToolName(): string;
getToolDescription(): string;
}
export interface PromptFactory {
createPrompt(): MCPPrompt;
getPromptName(): string;
getPromptDescription(): string;
}
export interface GenerationContext {
domain?: string;
contentType: ContentType;
parameters: Record<string, any>;
}
export declare enum ContentType {
BLOG_POST = "blog_post",
NARRATIVE = "narrative",
SUMMARY = "summary",
CONTENT_PLAN = "content_plan",
TONE_ANALYSIS = "tone_analysis"
}
export interface UsageMetadata {
promptTokens?: number;
completionTokens?: number;
totalTokens?: number;
}
export interface GeneratedContent {
content: string;
metadata: {
model?: string;
usage?: UsageMetadata;
duration: number;
};
}
//# sourceMappingURL=index.d.ts.map