brettapps789's picture
download
raw
2.52 kB
from mcp.server.fastmcp import FastMCP
from modules import planning, creatives, targeting, optimization, knowledge
# Initialize FastMCP server
mcp = FastMCP("Advertising Agent")
# Planning Tools
@mcp.tool()
def plan_campaign_budget(total_budget: float, platforms: list):
return planning.plan_campaign_budget(total_budget, platforms)
@mcp.tool()
def calculate_ad_math(spend: float, clicks: int, conversions: int, revenue: float):
return planning.calculate_ad_math(spend, clicks, conversions, revenue)
# Creative Tools
@mcp.tool()
def generate_meta_ads(product: str, audience: str, hook_type: str = "Benefit"):
return creatives.generate_meta_ads(product, audience, hook_type)
@mcp.tool()
def generate_google_search_ads(product: str, keywords: list):
return creatives.generate_google_search_ads(product, keywords)
@mcp.tool()
def generate_tiktok_script(product: str, trend_style: str = "Voiceover"):
return creatives.generate_tiktok_script(product, trend_style)
@mcp.tool()
def generate_twitter_x_ads(product: str, tone: str = "Punchy"):
return creatives.generate_twitter_x_ads(product, tone)
@mcp.tool()
def generate_creative_brief(product: str, objective: str):
return creatives.generate_creative_brief(product, objective)
# Targeting Tools
@mcp.tool()
def get_targeting_suggestions(platform: str, niche: str):
return targeting.get_targeting_suggestions(platform, niche)
# Optimization Tools
@mcp.tool()
def analyze_competitor_ads(competitor_url: str, observations: str):
return optimization.analyze_competitor_ads(competitor_url, observations)
@mcp.tool()
def generate_email_marketing_copy(objective: str, product: str):
return optimization.generate_email_marketing_copy(objective, product)
@mcp.tool()
def optimize_landing_page_for_ads(page_content: str):
return optimization.optimize_landing_page_for_ads(page_content)
# Knowledge Base Tools
@mcp.tool()
def get_ad_platform_rules(platform: str):
"""Returns character limits and prohibited content rules for Meta, Google, or TikTok."""
return knowledge.get_platform_rules(platform)
@mcp.tool()
def list_copywriting_frameworks():
"""Returns common ad copywriting frameworks (PAS, AIDA, QUEST)."""
return knowledge.list_copywriting_frameworks()
@mcp.tool()
def get_ad_hook_library(style: str = "Benefit"):
"""Returns a collection of high-converting ad hooks based on style (Benefit, Curiosity, Urgency)."""
return knowledge.get_hook_library(style)
if __name__ == "__main__":
mcp.run()

Xet Storage Details

Size:
2.52 kB
·
Xet hash:
a58b664b462a46efa3f09428fcb34fd7f15a90215fb6d30b38e2c6451ad8ca2b

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.