Overview
Emoji Decorator uses the open-source emoji-whisperer package. Your `text` is first split into keyword phrases with a RAKE-style pass: the text is broken on spaces, and runs of words between common stopwords become candidate phrases, each scored by how its words co-occur. The service calls the decorator with full density, so every extracted phrase is considered rather than only the top-scoring few.
For each phrase, the package lowercases and stems the words, ignores URLs and hashtags, and looks them up in a bundled index that maps words to emoji groups, scoring the matching emoji groups and keeping the five highest-scoring ones. One of those five is picked at random and inserted after the first occurrence of that phrase in the text, separated by a space. A candidate can be a single emoji or a short sequence, which is why some insertions in `decorated` contain two or three emojis together. Phrases with no match in the index are left without an emoji.
The result is that `decorated` always contains your original text in its original order, with emojis added after matched phrases. Nothing is removed or rewritten, and punctuation stays where it was. Because selection is random, output is not deterministic: cache the result if you need the same decoration twice. Matching is word-based and English-oriented; there is no sentiment model or AI call involved, so text in other languages or made of rare words may come back with few or no emojis. The response is identical on every plan.
Live Test Emoji Decorator Skill Skill →
The tool
Once your client is connected to the VerveKit server, this appears in its tool list as EmojiDecoratorSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.
{
"name": "EmojiDecoratorSkill",
"arguments": {
"text": "hello world"
}
}You do not name the tool yourself; the model picks it. Asking about hello world in the terms this skill covers is enough for it to reach for EmojiDecoratorSkill on its own — naming it explicitly also works, and is the way to force the call.
Connecting
One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.
{
"mcpServers": {
"vervekit": {
"url": "https://api.vervekit.com/v1/mcp"
}
}
}https://api.vervekit.com/v1/mcpPer-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.
Arguments
These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.
| Argument | Type | Description |
|---|---|---|
textRequired | string | The text you want decorated with emojis |
What the model gets back
The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.
{
"status": "ok",
"error": null,
"data": {
"decorated": "I am so excited 🥂 to go 😄🙌🏽 to the lake 🤘🏻🇺🇸 and swim 🏊"
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
decorated | string | I am so excited 🥂 to go 😄🙌🏽 to the lake 🤘🏻🇺🇸 and swim 🏊 | Input text enhanced with contextually relevant emojis throughout |
Failure modes
Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.
| Status | What it means |
|---|---|
400 / 422 | The arguments did not validate. The message names the offending one. |
401 | The OAuth session is invalid or expired — reconnect the server. |
403 | Blocked by a key restriction or an IP allow-list. Never a bad identity. |
404 | This skill is not part of VerveKit. Check the catalog. |
429 | Out of credits, or a brief rate limit. The message tells them apart. |
A call costs 2 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.
Use cases
- Social Media Scheduling
- Queue drafts for automated publishing with contextual emojis inserted across captions and promotional posts.
- Push Notification Copy
- Product marketers can spruce up mobile app push notifications to boost click-through rates on feature announcements.
- Chatbot Response Styling
- To make automated support bots sound friendlier, process outbound conversational answers before delivering them to customers.
- Email Subject Formatting
- When sending out marketing newsletters, format subject lines and preview text with relevant icons automatically.
Other ways to use Emoji Decorator Skill
Set up Emoji Decorator Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.
Related
More in Text Processing: