generate_caption
Create platform-optimized social media captions for any topic. AI generates captions in multiple languages and tones for Instagram, Facebook, TikTok, or Twitter.
Instructions
Generate an AI-powered social media caption.
Creates engaging, platform-optimized captions using AI. Supports multiple languages and tones.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | What the post is about (e.g., "new summer collection launch") | |
| platform | No | Target platform ("instagram", "facebook", "tiktok", "twitter") | |
| language | No | Caption language ("tr" for Turkish, "en" for English) | tr |
| tone | No | Writing tone ("professional", "casual", "fun", "formal") | professional |
| org_id | No | Organization ID (uses YAPARAI_ORG_ID env var if not provided) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/yaparai/tools/social.py:122-152 (handler)Main handler function for the 'generate_caption' tool. Accepts topic, platform, language, tone, and org_id parameters. Calls the YaparAIClient.social_generate_caption method.
async def generate_caption( topic: str, platform: Platform = "instagram", language: Literal["tr", "en"] = "tr", tone: Literal["professional", "casual", "fun", "formal"] = "professional", org_id: str | None = None, ) -> dict: """ Generate an AI-powered social media caption. Creates engaging, platform-optimized captions using AI. Supports multiple languages and tones. Args: topic: What the post is about (e.g., "new summer collection launch") platform: Target platform ("instagram", "facebook", "tiktok", "twitter") language: Caption language ("tr" for Turkish, "en" for English) tone: Writing tone ("professional", "casual", "fun", "formal") org_id: Organization ID (uses YAPARAI_ORG_ID env var if not provided) Returns: Dict with generated caption text. """ oid = resolve_org_id(org_id) client = YaparAIClient() return await client.social_generate_caption(oid, { "topic": topic, "platform": platform, "language": language, "tone": tone, }) - src/yaparai/server.py:161-161 (registration)Registration of generate_caption as an MCP tool via mcp.tool() decorator in the server setup.
mcp.tool(generate_caption) - src/yaparai/tools/social.py:122-126 (schema)The function signature acts as the input schema: topic (str), platform (Literal instagram/facebook/tiktok/twitter), language (Literal tr/en), tone (Literal professional/casual/fun/formal), org_id (optional str).
async def generate_caption( topic: str, platform: Platform = "instagram", language: Literal["tr", "en"] = "tr", tone: Literal["professional", "casual", "fun", "formal"] = "professional", - src/yaparai/client.py:219-223 (helper)Client helper method social_generate_caption that makes the HTTP POST request to the /api/enterprise/orgs/{org_id}/social/caption/generate endpoint.
async def social_generate_caption(self, org_id: str, payload: dict) -> dict: """Generate AI caption for social post.""" return await self._request( "POST", f"/api/enterprise/orgs/{org_id}/social/caption/generate", json=payload ) - src/yaparai/server.py:70-81 (registration)Import of generate_caption from yaparai.tools.social module into server.py.
from yaparai.tools.social import ( list_social_accounts, create_social_post, list_social_posts, get_social_quota, generate_caption, generate_hashtags, list_inbox, read_conversation, reply_to_message, ai_reply_suggestion, )