Skip to main content
Glama

Draft a Social Media Post

draft_post
Read-only

Create social media posts for LinkedIn, Instagram, X/Twitter, or TikTok following StressZero brand guidelines with specified topics, formats, and tones.

Instructions

Generate a post for a specific social platform (LinkedIn, Instagram, X/Twitter, TikTok). Uses StressZero brand rules: tutoiement, max 3 emojis, 3-5 hashtags, phrases courtes. Identity: Emmanuel Gomes Soares, Coach burnout entrepreneur.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
topicYesPost topic (e.g., 'burnout entrepreneur', 'gestion du stress')
platformYesTarget platform
formatYesPost format/structure
toneNoWriting toneempathique
cta_typeNoCTA intensity: soft (question), medium (free resource), hard (booking/DM)soft

Implementation Reference

  • src/index.ts:765-786 (registration)
    The "draft_post" tool is registered here with its schema.
    server.registerTool(
      "draft_post",
      {
        title: "Draft a Social Media Post",
        description:
          "Generate a post for a specific social platform (LinkedIn, Instagram, X/Twitter, TikTok). " +
          "Uses StressZero brand rules: tutoiement, max 3 emojis, 3-5 hashtags, phrases courtes. " +
          "Identity: Emmanuel Gomes Soares, Coach burnout entrepreneur.",
        inputSchema: {
          topic: z.string().describe("Post topic (e.g., 'burnout entrepreneur', 'gestion du stress')"),
          platform: z.enum(["linkedin", "instagram", "x", "tiktok"]).describe("Target platform"),
          format: z.enum([
            "hook_story", "stat_choc", "question", "framework",
            "temoignage", "mythe_realite", "behind_scenes",
          ]).describe("Post format/structure"),
          tone: z.enum(["empathique", "direct", "inspirant"]).default("empathique").describe("Writing tone"),
          cta_type: z.enum(["soft", "medium", "hard"]).default("soft").describe(
            "CTA intensity: soft (question), medium (free resource), hard (booking/DM)",
          ),
        },
        annotations: { readOnlyHint: true, openWorldHint: false, destructiveHint: false },
      },
  • The handler function for "draft_post" tool, which calls `generatePost`.
      async ({ topic, platform, format, tone, cta_type }) => {
        const post = generatePost(topic, platform, format, tone, cta_type);
    
        return {
          content: [{ type: "text" as const, text: post }],
        };
      },
    );
Behavior4/5

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

Adds substantial behavioral context beyond annotations: specifies StressZero brand rules (tutoiement, max 3 emojis, 3-5 hashtags, short phrases) and persona identity (Emmanuel Gomes Soares). These constraints critically affect output generation. Aligns with readOnlyHint=true as generation is non-mutating. Does not mention output format or length limits.

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?

Two sentences with zero waste. First sentence establishes core function and scope; second sentence delivers essential brand/identity constraints. Information density is optimal—every word influences generation behavior or platform targeting.

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

Completeness4/5

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

Given 5 parameters with 100% schema coverage and no output schema, description successfully covers brand identity and platform constraints necessary for correct invocation. Minor gap: does not explicitly state that tool returns drafted post text (though implied by name), nor mentions if output includes suggested media or just copy.

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%, providing baseline 3. Description adds semantic context by mapping parameters to brand constraints (e.g., 'tutoiement' affects tone parameter, '3-5 hashtags' constrains platform formatting), but does not explain specific parameter syntax or relationships between format/topic/cta_type.

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?

Description uses specific verb 'Generate' with resource 'post' and lists exact platforms (LinkedIn, Instagram, X/Twitter, TikTok). Singular 'post' clearly distinguishes from sibling tools generate_thread (multi-post) and generate_carousel (multi-slide), while 'Draft' in title differentiates from schedule_content (publishing) and analyze_post_performance (analytics).

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 implied usage through the format enum options (hook_story, stat_choc, etc.) and brand constraints, but lacks explicit guidance on when to choose this over generate_thread for longer content or repurpose_content for existing material. No 'when not to use' exclusions stated.

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/gomessoaresemmanuel-cpu/content-distribution-mcp'

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