Overview
Characters come with names, racial traits, class abilities, personality traits, and motivations for rich storytelling.
Live Test RPG Character Skill Skill →
The tool
Once your client is connected to the VerveKit server, this appears in its tool list as RPGCharacterSkill. 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": "RPGCharacterSkill",
"arguments": {}
}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 |
|---|---|---|
raceOptional | string | Character race: Human, Elf, Dwarf, Halfling, Orc, Gnome, Tiefling, Dragonborn, Half-Elf, Goblin length 0–40 |
classOptional | string | Character class: Warrior, Mage, Rogue, Cleric, Ranger, Paladin, Barbarian, Bard, Druid, Monk, Warlock, Necromancer length 0–40 |
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": {
"name": "Nimara Goldenbough",
"race": {
"name": "Elf",
"traits": [
"Graceful",
"Keen Senses",
"Long-lived"
]
},
"class": {
"name": "Mage",
"description": "Wielder of arcane magic",
"primaryStat": "intelligence",
"hitDie": "d6"
},
"background": "Criminal",
"personality": "Ambitious and driven",
"motivation": "Protect the innocent",
"stats": {
"strength": {
"value": 13,
"modifier": 1
},
"dexterity": {
"value": 12,
"modifier": 1
},
"constitution": {
"value": 9,
"modifier": -1
},
"intelligence": {
"value": 11,
"modifier": 0
},
"wisdom": {
"value": 4,
"modifier": -3
},
"charisma": {
"value": 8,
"modifier": -1
}
},
"hp": 5,
"totalStatPoints": 57,
"highestStat": "strength",
"lowestStat": "wisdom"
}
}
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 |
|---|---|---|---|
name | string | Nimara Goldenbough | Generated character name combining race and fantasy elements |
race | object | {…} | The character's race, with its traits |
race.name | string | Elf | Character race type selected from available options |
race.traits | array | ["Graceful","Keen Senses","Long-lived"] | Array of racial traits and bonuses specific to race |
class | object | {…} | The character's class, with its description and primary attribute |
class.name | string | Mage | Character class determining abilities and role |
class.description | string | Wielder of arcane magic | Character class role and primary purpose description |
class.primaryStat | string | intelligence | Primary ability score stat for class abilities |
class.hitDiePremium | string | d6 | Hit die size determining health points per level |
backgroundPremium | string | Criminal | Character background determining skills and expertise |
personality | string | Ambitious and driven | Character personality traits and behavioral characteristics |
motivation | string | Protect the innocent | Character motivation driving actions and goals |
stats | object | {…} | Rolled ability scores, each with its value and derived modifier |
stats.strength | object | {…} | Strength score and modifier |
stats.strength.value | number | 13 | Strength ability score (base 3-18 from 3d6) |
stats.strength.modifier | number | 1 | Strength modifier derived from ability score |
stats.dexterity | object | {…} | Dexterity score and modifier |
stats.dexterity.value | number | 12 | Dexterity ability score (base 3-18 from 3d6) |
stats.dexterity.modifier | number | 1 | Dexterity modifier derived from ability score |
stats.constitution | object | {…} | Constitution score and modifier |
stats.constitution.value | number | 9 | Constitution ability score (base 3-18 from 3d6) |
stats.constitution.modifier | number | -1 | Constitution modifier derived from ability score |
stats.intelligence | object | {…} | Intelligence score and modifier |
stats.intelligence.value | number | 11 | Intelligence ability score (base 3-18 from 3d6) |
stats.intelligence.modifier | number | 0 | Intelligence modifier derived from ability score |
stats.wisdom | object | {…} | Wisdom score and modifier |
stats.wisdom.value | number | 4 | Wisdom ability score (base 3-18 from 3d6) |
stats.wisdom.modifier | number | -3 | Wisdom modifier derived from ability score |
stats.charisma | object | {…} | Charisma score and modifier |
stats.charisma.value | number | 8 | Charisma ability score (base 3-18 from 3d6) |
stats.charisma.modifier | number | -1 | Charisma modifier derived from ability score |
hp | number | 5 | Hit points determined by class hit die and constitution |
totalStatPointsPremium | number | 57 | Sum of all six ability scores combined |
highestStatPremium | string | strength | Name of the ability score with highest value |
lowestStatPremium | string | wisdom | Name of the ability score with lowest value |
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
- Tabletop Gaming
- Quickly generate NPCs or backup characters
- Game Development
- Create diverse character rosters for games
- Creative Writing
- Generate character concepts for stories
- Teaching
- Demonstrate character creation mechanics
Other ways to use RPG Character Skill
Set up RPG Character 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 Games: