{
  "slug": "word-counter",
  "mcpServerUrl": "https://plugins-worker.demos.42a.ai/word-counter/mcp",
  "interface": {
    "displayName": "Handy Word Counter",
    "shortDescription": "Exact counts and post limits",
    "longDescription": "Count words, characters, sentences and paragraphs exactly, and check text against the real limits of the platforms you post to.\n\nPaste anything from a tweet to a 15,000-word chapter. The card shows the word count, characters with and without spaces (emoji and accented letters count as one, the way you see them), sentences, paragraphs, lines, reading and speaking time, average word and sentence length, Flesch reading ease and Flesch-Kincaid grade, and the top keywords with their density.\n\nCheck limits the way each platform counts them: X (Twitter) post 280, Threads post 500, LinkedIn post 3000, LinkedIn headline 220, Instagram caption 2200, TikTok caption 4000, YouTube title 100, YouTube description 5000, Google title tag 60, Meta description 160, Google Ads headline 30, Google Ads description 90, SMS text message 160, App Store subtitle 30, Amazon product title 200, Common App essay 650. X posts use the weighted count (links count 23, emoji 2), SMS shows GSM-7 or Unicode encoding and how many segments it sends as, and Google Ads counts double-width characters twice. Add your own word or character limits too. When you are over, the card shows exactly where the cut falls and the text that fits.\n\nYour text is counted and not stored.",
    "category": "Productivity",
    "defaultPrompt": [
      "How many words and characters is this? [paste your text]",
      "Will this fit in a tweet and a LinkedIn headline? [paste text]",
      "Is my college essay under 650 words? [paste essay]"
    ],
    "capabilities": [
      "Exact word, character, sentence and paragraph counts (Unicode-aware)",
      "Checks X, Threads, LinkedIn, Instagram, TikTok, YouTube, SEO and Google Ads limits",
      "SMS encoding (GSM-7 or Unicode) and segment count",
      "Shows where the cut falls and the text that fits",
      "Reading time, speaking time, Flesch reading ease and grade level",
      "Top keywords with density"
    ],
    "logo": "https://plugins-worker.demos.42a.ai/word-counter/icon.svg",
    "websiteURL": "https://plugins-worker.demos.42a.ai/word-counter/",
    "supportURL": "https://plugins-worker.demos.42a.ai/support",
    "privacyPolicyURL": "https://plugins-worker.demos.42a.ai/privacy",
    "termsOfServiceURL": "https://plugins-worker.demos.42a.ai/terms",
    "developerName": "42a"
  },
  "keywords": [
    "word counter",
    "character counter",
    "how many words is this",
    "count characters with spaces",
    "twitter character counter",
    "meta description length checker",
    "sms character counter",
    "essay word count 650",
    "reading time calculator"
  ],
  "tools": [
    {
      "name": "count_words",
      "title": "Count words and check limits",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    }
  ],
  "dataSources": [],
  "review": {
    "positiveTestCases": [
      {
        "description": "Contractions, a hyphenated word, numbers and an emoji",
        "prompt": "How many words and characters is this: I can't believe it's already 2026! Our well-known café opened in 1998, and we've served 12,500 cups since. 😀 Come visit.",
        "tools_triggered": [
          "count_words"
        ],
        "expected_behavior": "Card shows 20 words, 120 characters (100 without spaces) and 3 sentences: contractions, \"well-known\" and \"12,500\" each count once, the emoji counts as one character."
      },
      {
        "description": "X post with a link and an emoji, plus Threads",
        "prompt": "Will this fit on X and Threads? \"Just shipped v2.0 of our open-source parser! Read the release notes: https://github.com/example/parser/releases/tag/v2.0.0 🚀\"",
        "tools_triggered": [
          "count_words"
        ],
        "expected_behavior": "12 words (the link counts as one); X counts 95 of 280 (the link counts 23, the rocket 2), 185 left; Threads 124 of 500. Both fit."
      },
      {
        "description": "Meta description and Google Ads description over the limit",
        "prompt": "Check this meta description length: Learn how to brew perfect pour-over coffee at home with our step-by-step guide, covering grind size, water temperature, ratios, and the gear you actually need to get started today.",
        "tools_triggered": [
          "count_words"
        ],
        "expected_behavior": "180 characters, 29 words: 20 over the ~160 meta description guideline (the cut falls in \"need to\", so what fits ends at \"actually need\"), and 90 over a Google Ads description."
      },
      {
        "description": "SMS forced into Unicode by one en dash",
        "prompt": "How many SMS segments is this? Hi Maria, your table for 4 is booked for Friday at 7:30 pm. Reply YES to confirm or call us to change it – thank you!",
        "tools_triggered": [
          "count_words"
        ],
        "expected_behavior": "117 characters and 25 words; the en dash is not in the GSM-7 alphabet, so it sends as Unicode (70 per SMS) in 2 segments. A plain hyphen would make it 1 SMS."
      },
      {
        "description": "A custom word limit with keywords",
        "prompt": "Does this fit a 25-word limit? Cold brew coffee is smooth and sweet. To make cold brew coffee, steep coarse grounds in cold water for 16 hours. Strain it, chill it, and serve the coffee over ice.",
        "tools_triggered": [
          "count_words"
        ],
        "expected_behavior": "31 words in 3 sentences, 6 over the 25-word limit (what fits ends at \"Strain it, chill it\"); top keywords \"coffee\" and \"cold\" (3 each, 9.7%)."
      }
    ],
    "negativeTestCases": [
      {
        "prompt": "Write me a 280-character tweet announcing our new product.",
        "expected_behavior": "Does not call Handy Word Counter: Writing new text is the model's job; counting only applies once there is text to check."
      },
      {
        "prompt": "Translate this paragraph into Spanish.",
        "expected_behavior": "Does not call Handy Word Counter: Translation needs no counting."
      },
      {
        "prompt": "How many items are on my grocery list: eggs, milk, bread?",
        "expected_behavior": "Does not call Handy Word Counter: Counting list items is trivial and not a text-length question."
      }
    ]
  }
}