optimize_tweet
Optimizes Twitter/X posts by shortening text when exceeding character limits and suggesting improvements to fit platform constraints.
Instructions
Twitter/Xの投稿を最適化します(長すぎる場合は短縮提案など)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | 最適化したいTwitter/Xの投稿テキスト | |
| maxLength | No | 最大文字数(デフォルト: 280) |
Implementation Reference
- src/server.ts:187-233 (handler)Implementation of the optimize_tweet tool handler.
private optimizeTweet(text: string, maxLength: number = 280) { const parsed = twitterText.parseTweet(text); if (parsed.valid && parsed.weightedLength <= maxLength) { return { content: [ { type: 'text', text: JSON.stringify({ original: text, optimized: text, characterCount: parsed.weightedLength, optimization: 'すでに最適化されています', saved: 0, }, null, 2), }, ], }; } // 簡単な最適化: 複数スペースを単一スペースに、改行を整理 let optimized = text .replace(/\s+/g, ' ') .replace(/\n\s*\n/g, '\n') .trim(); const optimizedParsed = twitterText.parseTweet(optimized); return { content: [ { type: 'text', text: JSON.stringify({ original: text, optimized: optimized, originalCount: parsed.weightedLength, optimizedCount: optimizedParsed.weightedLength, saved: parsed.weightedLength - optimizedParsed.weightedLength, valid: optimizedParsed.valid, suggestions: optimizedParsed.weightedLength > maxLength ? ['URLを短縮する', '不要な語句を削除する', '略語を使用する'] : [], }, null, 2), }, ], }; } - src/server.ts:71-88 (registration)Registration of the optimize_tweet tool in the tool list schema.
name: 'optimize_tweet', description: 'Twitter/Xの投稿を最適化します(長すぎる場合は短縮提案など)', inputSchema: { type: 'object', properties: { text: { type: 'string', description: '最適化したいTwitter/Xの投稿テキスト', }, maxLength: { type: 'number', description: '最大文字数(デフォルト: 280)', default: 280, }, }, required: ['text'], }, },