Skip to main content
Glama

social_generate_tweet

Generate high-engagement tweets in tech/crypto voice for topics using data-driven, contrarian, breaking, thread-opener, or punchline styles.

Instructions

Generate a high-engagement tweet in tech/crypto voice (no emojis, no hashtags)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
topicYesTopic for the tweet
styleNoTweet styledata-driven

Implementation Reference

  • Tool handler implementation for social_generate_tweet.
    server.tool("social_generate_tweet", "Generate a high-engagement tweet in tech/crypto voice (no emojis, no hashtags)", {
      topic: z.string().describe("Topic for the tweet"),
      style: z.enum(["data-driven", "contrarian", "breaking", "thread-opener", "punchline"]).default("data-driven").describe("Tweet style")
    }, async ({ topic, style }) => {
      const templates: Record<string, string> = {
        "data-driven": `${topic} is moving faster than most realize\n\n- [data point 1]\n- [data point 2]\n- [data point 3]\n\nThe numbers don't lie`,
        "contrarian": `Everyone is talking about ${topic}\n\nAlmost nobody understands why it actually matters\n\nHere's what they're missing`,
        "breaking": `${topic} just changed everything\n\nWhile most were sleeping, this happened\n\nAnd it's only the beginning`,
        "thread-opener": `I spent 100 hours studying ${topic}\n\nHere's everything I learned (thread)`,
        "punchline": `${topic}\n\nNo marketing budget\nNo VC funding\nNo team of 50\n\nJust one builder and an AI agent\n\nThis is what the future looks like`
      };
      return { content: [{ type: "text", text: `**Generated Tweet (${style})**\n\n${templates[style]}\n\n---\n*Customize the [bracketed] parts with real data. Keep under 280 chars. No emojis, no hashtags, no period at end.*` }] };
    });
  • Registration of the social_generate_tweet tool.
    server.tool("social_generate_tweet", "Generate a high-engagement tweet in tech/crypto voice (no emojis, no hashtags)", {
      topic: z.string().describe("Topic for the tweet"),
      style: z.enum(["data-driven", "contrarian", "breaking", "thread-opener", "punchline"]).default("data-driven").describe("Tweet style")
    }, async ({ topic, style }) => {
      const templates: Record<string, string> = {
        "data-driven": `${topic} is moving faster than most realize\n\n- [data point 1]\n- [data point 2]\n- [data point 3]\n\nThe numbers don't lie`,
        "contrarian": `Everyone is talking about ${topic}\n\nAlmost nobody understands why it actually matters\n\nHere's what they're missing`,
        "breaking": `${topic} just changed everything\n\nWhile most were sleeping, this happened\n\nAnd it's only the beginning`,
        "thread-opener": `I spent 100 hours studying ${topic}\n\nHere's everything I learned (thread)`,
        "punchline": `${topic}\n\nNo marketing budget\nNo VC funding\nNo team of 50\n\nJust one builder and an AI agent\n\nThis is what the future looks like`
      };
      return { content: [{ type: "text", text: `**Generated Tweet (${style})**\n\n${templates[style]}\n\n---\n*Customize the [bracketed] parts with real data. Keep under 280 chars. No emojis, no hashtags, no period at end.*` }] };
    });
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Successfully discloses output voice/style constraints and content restrictions. However, fails to clarify critical behavioral ambiguity: whether the tool merely returns text for review or automatically posts to Twitter/X. Also omits rate limits or length constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action verb. Every clause earns its place: 'high-engagement' sets expectation, 'tech/crypto voice' defines tone, and parenthetical constraints prevent misuse. Zero redundancy or wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, description should indicate return format (string text? JSON object?), but omits this. Adequately covers generation logic and voice constraints for a 2-parameter tool, but missing output behavior leaves agents uncertain about how to handle results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both 'topic' and 'style' well-documented), establishing baseline 3. Description adds context that 'style' maps to 'tech/crypto voice' and implies topic should fit that domain, but does not elaborate on parameter syntax, format examples, or enum value meanings beyond schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb 'Generate', resource 'tweet', and clear scope 'tech/crypto voice'. Effectively distinguishes from siblings: contrasts with social_thread_builder (single vs thread), social_hashtag_research (no hashtags vs hashtag research), and social_content_calendar (generation vs scheduling).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides implicit usage guidance through voice constraints ('tech/crypto voice') and format restrictions ('no emojis, no hashtags'), which signal when NOT to use it. However, lacks explicit 'when to use' guidance or named alternatives versus social_thread_builder or other content tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/ElromEvedElElyon/claw-mcp-toolkit'

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