Skip to main content
Glama

LinkedIn Content Creation MCP Server

by chrishayuk
engagement_tokens.py8.78 kB
""" Engagement pattern tokens for LinkedIn posts. Based on 2025 algorithm optimization data. """ from typing import Dict, List, Any class EngagementTokens: """Design tokens for engagement optimization""" # Hook types with effectiveness power ratings (0-1 scale) HOOKS: Dict[str, Dict[str, Any]] = { "question": { "power": 0.8, "examples": ["What if...?", "Why do...?", "How can...?"], "best_for": ["polls", "discussion", "community"], "templates": [ "What if {bold_claim}?", "Why do {common_problem}?", "How can {desired_outcome}?" ] }, "stat": { "power": 0.9, "examples": ["95% of...", "Only 3 out of 10...", "2025 data shows..."], "best_for": ["thought_leadership", "credibility", "shock_value"], "templates": [ "{percentage}% of {audience} {surprising_fact}", "Only {number} out of {total} {outcome}", "{year} data shows {insight}" ] }, "story": { "power": 0.85, "examples": ["Last Tuesday changed everything...", "I'll never forget when..."], "best_for": ["personal_brand", "relatability", "emotion"], "templates": [ "{time_reference} changed everything", "I'll never forget when {event}", "{years_ago}, {pivotal_moment}" ] }, "controversy": { "power": 0.95, "examples": ["Unpopular opinion:", "Everyone's wrong about...", "Stop doing..."], "best_for": ["virality", "debate", "attention"], "templates": [ "Unpopular opinion: {contrarian_view}", "Everyone's wrong about {topic}", "Stop {common_practice}. Here's why:", "Hot take: {bold_statement}" ] }, "list": { "power": 0.7, "examples": ["5 ways to...", "The 3 mistakes...", "Here's what works:"], "best_for": ["value", "clarity", "scannability"], "templates": [ "{number} ways to {desired_outcome}", "The {number} mistakes {audience} make", "Here's what works: {promise}" ] }, "curiosity": { "power": 0.75, "examples": ["The secret to...", "What nobody tells you...", "Here's the truth..."], "best_for": ["intrigue", "retention", "click_through"], "templates": [ "The secret to {outcome}", "What nobody tells you about {topic}", "Here's the truth about {controversial_topic}", "The {adjective} way to {goal}" ] } } # Call-to-action styles with use cases CTA_STYLES: Dict[str, Dict[str, Any]] = { "direct": { "examples": ["Comment below", "Share your thoughts", "Let me know"], "best_for": "straightforward_engagement", "power": 0.7, "templates": [ "Comment below with {question}", "Share your thoughts on {topic}", "Let me know {what_to_share}" ] }, "curiosity": { "examples": ["What do you think?", "Am I missing something?", "Agree or disagree?"], "best_for": "opinion_seeking", "power": 0.85, "templates": [ "What do you think about {topic}?", "Am I missing something here?", "Agree or disagree?", "Is this {adjective} or am I crazy?" ] }, "action": { "examples": ["Try this today", "Save this for later", "Tag someone who needs this"], "best_for": "utility_posts", "power": 0.75, "templates": [ "Try this {timeframe}", "Save this for later", "Tag someone who {needs_this}", "Bookmark this if {condition}" ] }, "share": { "examples": ["Tag someone who...", "Share if you...", "Send this to..."], "best_for": "viral_potential", "power": 0.9, "templates": [ "Tag someone who {characteristic}", "Share if you {relate}", "Send this to {person_type}", "Who else needs to see this?" ] }, "poll": { "examples": ["Vote in the poll", "Which option?", "Pick one"], "best_for": "poll_posts", "power": 0.95, "templates": [ "Vote in the poll below", "Which option resonates with you?", "Pick one and tell me why" ] }, "soft": { "examples": ["Thoughts?", "Your take?", "What's your experience?"], "best_for": "natural_conversation", "power": 0.8, "templates": [ "Thoughts?", "Your take?", "What's your experience with {topic}?", "How do you handle this?" ] } } # First-hour engagement targets (critical for algorithm) FIRST_HOUR_TARGETS: Dict[str, int] = { "minimum": 10, # Minimum for algorithm consideration "good": 50, # Good engagement "great": 100, # Great engagement "viral": 200 # Viral potential threshold } # Comment response strategy COMMENT_RESPONSE: Dict[str, Any] = { "timing": { "critical_window": 60, # First 60 minutes "recommended": 30, # Respond within 30 min "maximum": 120 # Don't exceed 2 hours }, "depth": { "minimal": "Thanks!", "standard": "Thanks for sharing! [brief response]", "meaningful": "[Thoughtful response with follow-up question]", "deep": "[Detailed response, acknowledges specific points, asks question]" }, "best_practices": [ "Reply within 60 minutes", "Make it meaningful, not just 'Thanks!'", "Ask follow-up questions", "Tag others when relevant", "Use their name when possible" ] } # Timing optimization (2025 data) TIMING: Dict[str, Any] = { "best_days": ["tuesday", "wednesday", "thursday"], "worst_days": ["saturday", "sunday"], "best_hours": { "morning": (7, 9), # 7-9 AM local time "lunch": (12, 14), # 12-2 PM local time "evening": (17, 18) # 5-6 PM local time }, "posting_frequency": { "minimum": 3, # Posts per week minimum "optimal": (4, 5), # Sweet spot "maximum": 7, # Daily (risk of fatigue) "over_limit": 10 # Definitely too much } } # Formatting for engagement FORMATTING: Dict[str, Any] = { "bold_usage": { "none": 0.0, "key_phrases": 0.05, # 5% of text "emphasis": 0.1, # 10% of text "heavy": 0.15 # Can feel aggressive }, "white_space_ratio": { "dense": 0.1, # 10% white space "balanced": 0.3, # 30% white space (optimal) "airy": 0.5 # 50% white space (very scannable) } } @classmethod def get_hook_power(cls, hook_type: str) -> float: """Get effectiveness rating for a hook type""" return cls.HOOKS.get(hook_type, {}).get("power", 0.5) @classmethod def get_cta_power(cls, cta_type: str) -> float: """Get effectiveness rating for a CTA type""" return cls.CTA_STYLES.get(cta_type, {}).get("power", 0.5) @classmethod def get_hook_examples(cls, hook_type: str) -> List[str]: """Get example hooks for a type""" return cls.HOOKS.get(hook_type, {}).get("examples", []) @classmethod def get_cta_examples(cls, cta_type: str) -> List[str]: """Get example CTAs for a type""" return cls.CTA_STYLES.get(cta_type, {}).get("examples", []) @classmethod def is_optimal_posting_time(cls, day: str, hour: int) -> bool: """Check if a given time is optimal for posting""" if day.lower() in cls.TIMING["worst_days"]: return False for period, (start, end) in cls.TIMING["best_hours"].items(): if start <= hour < end: return True return False

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrishayuk/chuk-mcp-linkedin'

If you have feedback or need assistance with the MCP directory API, please join our Discord server