Zovo Name Wheel
Spin the wheel right in the chat.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"name-wheel": {
"url": "https://name-wheel.zovo.one/mcp"
}
}
}Remote endpoints
https://name-wheel.zovo.one/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢spin_wheel(entries, weights, count, remove_winners, title)
Use this when the user wants to spin the wheel, use a wheel spinner or random name picker, pick a random name or option from a list (wheel spinner with names, yes or no wheel, food wheel, custom wheel), or call on people one at a time. Draws 1 or more different winners with cryptographic, unbiased randomness and shows an animated wheel that lands on the winner. Repeated entries (matched ignoring case) or weights give bigger slices. Returns the winners, each entry's chance, and the remaining entries when remove_winners is true. For fun, classroom, and team decisions only; not for lotteries, gambling, or prize draws that have legal requirements. Does not store results between calls.
Input Schema
{
"type": "object",
"properties": {
"entries": {
"maxItems": 1000,
"type": "array",
"items": {
"type": "string",
"maxLength": 500
},
"description": "The names or options on the wheel, 2 to 200, e.g. [\"Ana\", \"Ben\", \"Chloe\"]. A repeated entry gets a bigger slice: [\"Pizza\", \"Pizza\", \"Tacos\"] gives Pizza 2 of 3 slots."
},
"weights": {
"description": "Optional whole-number weight (1-1000) per entry, same order and length as entries, e.g. [3, 1, 1] makes the first entry three times as likely. Leave out for equal chances.",
"maxItems": 1000,
"type": "array",
"items": {
"type": "number"
}
},
"count": {
"description": "How many different winners to draw in this spin, a whole number from 1 to 50, default 1, e.g. 3 to pick 3 students.",
"type": "number"
},
"remove_winners": {
"description": "If true, the winners are taken off the wheel and the remaining entries are returned for the next spin, e.g. true for calling on each student once.",
"type": "boolean"
},
"title": {
"description": "Optional wheel title shown above the wheel, e.g. \"Who presents first?\".",
"type": "string",
"maxLength": 80
}
},
"required": [
"entries"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "wheel"
},
"title": {
"type": "string"
},
"entries": {
"type": "array",
"items": {
"type": "string"
}
},
"weights": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
}
},
{
"type": "null"
}
]
},
"equal_chance_percent": {
"type": [
"number",
"null"
]
},
"chance_percent": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
}
},
{
"type": "null"
}
]
},
"winners": {
"type": "array",
"items": {
"type": "string"
}
},
"winner_indexes": {
"type": "array",
"items": {
"type": "number"
}
},
"removed": {
"type": "boolean"
},
"remaining": {
"type": "array",
"items": {
"type": "string"
}
},
"remaining_weights": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
}
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"title",
"entries",
"weights",
"equal_chance_percent",
"chance_percent",
"winners",
"winner_indexes",
"removed",
"remaining",
"remaining_weights"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢make_teams(names, team_count, team_size, keep_apart, keep_together, ...)
Use this when the user wants a random team generator: split a list of names into random teams or groups by number of teams or by team size, for a class, a game, a workshop, or a sports session. Team sizes differ by at most 1. Optional rules keep certain pairs apart or groups together. Returns each team's members. Does not balance by skill or rating (assignment is random), and is not for scheduling or seating charts. For fun, classroom, and team decisions only; not for lotteries, gambling, or prize draws that have legal requirements.
Input Schema
{
"type": "object",
"properties": {
"names": {
"maxItems": 1000,
"type": "array",
"items": {
"type": "string",
"maxLength": 500
},
"description": "Everyone to split into teams, 2 to 200 names, e.g. [\"Ana\", \"Ben\", \"Chloe\", \"Dev\"]."
},
"team_count": {
"description": "Number of teams to make, a whole number from 2 up to the number of names, e.g. 3. Use this or team_size. Default 2.",
"type": "number"
},
"team_size": {
"description": "Target people per team, e.g. 4. Makes as many teams as needed so no team is larger than this; sizes differ by at most 1.",
"type": "number"
},
"keep_apart": {
"description": "Optional pairs who must be on different teams, e.g. [[\"Ana\", \"Ben\"], [\"Chloe\", \"Dev\"]].",
"maxItems": 1000,
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"keep_together": {
"description": "Optional groups who must be on the same team, e.g. [[\"Eli\", \"Fay\"]].",
"maxItems": 1000,
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"team_names": {
"description": "Optional team names in order, e.g. [\"Red\", \"Blue\", \"Green\"]. Missing names default to Team 1, Team 2, ...",
"maxItems": 1000,
"type": "array",
"items": {
"type": "string",
"maxLength": 500
}
}
},
"required": [
"names"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "teams"
},
"teams": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"members": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"members"
],
"additionalProperties": false
}
},
"team_count": {
"type": "number"
},
"people": {
"type": "number"
},
"sizes": {
"type": "array",
"items": {
"type": "number"
}
},
"keep_apart": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"keep_together": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"renamed_duplicates": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"kind",
"teams",
"team_count",
"people",
"sizes",
"keep_apart",
"keep_together",
"renamed_duplicates"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢pick_random_number(min, max, count, unique)
Use this when the user wants a random number generator or number wheel: pick one or more random whole numbers between a min and a max (inclusive), with or without repeats, e.g. a random student number or who goes next. Uses cryptographic, unbiased randomness. Do not use for lottery or Powerball numbers, betting, or login credentials and security codes. For fun, classroom, and team decisions only; not for lotteries, gambling, or prize draws that have legal requirements.
Input Schema
{
"type": "object",
"properties": {
"min": {
"description": "Smallest possible whole number, inclusive, -1000000000 to 1000000000, default 1, e.g. 1.",
"type": "number"
},
"max": {
"description": "Largest possible whole number, inclusive, -1000000000 to 1000000000, default 100, e.g. 30 for a class of 30.",
"type": "number"
},
"count": {
"description": "How many numbers to pick, a whole number from 1 to 500, default 1, e.g. 5.",
"type": "number"
},
"unique": {
"description": "If true (default) no number repeats, e.g. false to allow repeats like dice rolls.",
"type": "boolean"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "numbers"
},
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"count": {
"type": "number"
},
"unique": {
"type": "boolean"
},
"numbers": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"kind",
"min",
"max",
"count",
"unique",
"numbers"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Community
Evidence