Overview
Password Generator works by generating passwords based on the specified length and complexity. It returns the generated password in a structured format.
Live Test Password Generator Skill Skill →
The tool
Once your client is connected to the VerveKit server, this appears in its tool list as PasswordGeneratorSkill. 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": "PasswordGeneratorSkill",
"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 |
|---|---|---|
countOptional | integer | The number of passwords to generate default 1 · range 1–100 |
lengthOptional | integer | The length of the password to generate default 12 · range 4–128 |
complexityOptional | string | The complexity of the password. Only applies when type is randomsimplemediumstrongmaximumdefault medium |
typeOptional | string | The kind of password to generate. random uses the complexity preset, pronounceable builds readable syllables, passphrase joins dictionary words, and custom honours the include/exclude switches belowrandompronounceablepassphrasecustomdefault random |
includeNumbersOptional | boolean | Include digits. Applies to custom and pronounceable, and to random at simple complexity |
includeSymbolsOptional | boolean | Include punctuation symbols. Applies to custom, and to random at medium complexity |
includeUppercaseOptional | boolean | Include uppercase letters. Applies to custom, and to random at simple complexity |
includeLowercaseOptional | boolean | Include lowercase letters in a custom password. Set false to build from the other character sets only default true |
excludeSimilarOptional | boolean | Exclude characters that are easy to confuse when read aloud or typed (i, l, 1, L, o, 0, O) |
excludeAmbiguousOptional | boolean | Exclude brackets, slashes, quotes and other characters that need escaping in shells and config files |
mixedCaseOptional | boolean | Randomly capitalise letters in a pronounceable password |
strictOptional | boolean | Guarantee at least one character from every enabled set rather than leaving it to chance |
wordCountOptional | integer | How many words a passphrase contains. Only applies when type is passphrase default 4 · range 2–12 |
separatorOptional | string | The character placed between passphrase words. Only applies when type is passphrase default - |
capitalizeOptional | boolean | Capitalise each word of a passphrase. Only applies when type is passphrase |
analyzeOptionalPremium | boolean | Return a strength analysis alongside each password |
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": {
"passwords": [
{
"password": "aOwqDh0ZK*P;!M|%oiFYJ!IK%TMXQO",
"length": 30,
"metadata": {
"type": "random",
"complexity": "strong"
},
"analysis": null
},
{
"password": "Wo:)*V2nMakoVI78[fKu|QDI.E45p|",
"length": 30,
"metadata": {
"type": "random",
"complexity": "strong"
},
"analysis": null
},
{
"password": "%XqlsK2qN.9>*&jk6gYIG.[aE,hiRc",
"length": 30,
"metadata": {
"type": "random",
"complexity": "strong"
},
"analysis": null
},
{
"password": "WQNY0{R~(G99uc&i62Mve).n<|xt=F",
"length": 30,
"metadata": {
"type": "random",
"complexity": "strong"
},
"analysis": null
},
{
"password": "2$m-&z9!5$c3QlxQP{h#@0x~'M/h]T",
"length": 30,
"metadata": {
"type": "random",
"complexity": "strong"
},
"analysis": null
},
{
"password": "y]e_H)/z2yzbr{4C&hHOb[Q:#/$Hml",
"length": 30,
"metadata": {
"type": "random",
"complexity": "strong"
},
"analysis": null
},
{
"password": "+iZ,<<+_MR:jJ,JbXTN*3Z,xLo'=@E",
"length": 30,
"metadata": {
"type": "random",
"complexity": "strong"
},
"analysis": null
},
{
"password": "x=e6H^U;ajD+)h5Z8$7Wy)^Ob8ERw'",
"length": 30,
"metadata": {
"type": "random",
"complexity": "strong"
},
"analysis": null
},
{
"password": "+p!SGSnR*JNl}/[#oVQy~ZxtoZU}F+",
"length": 30,
"metadata": {
"type": "random",
"complexity": "strong"
},
"analysis": null
},
{
"password": "%h:23-bMb0;?QWL)chKm8{>%)mN:EO",
"length": 30,
"metadata": {
"type": "random",
"complexity": "strong"
},
"analysis": null
}
],
"count": 10
}
}
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 |
|---|---|---|---|
passwords | array[10] | Array of generated password objects with details | |
passwords.0.password | string | aOwqDh0ZK*P;!M|%oiFYJ!IK%TMXQO | The generated password string |
passwords.0.length | number | 30 | Length of the generated password |
passwords.0.metadata | object | {…} | Metadata about the password generation |
passwords.0.metadata.type | string | random | Type of password generation method used |
passwords.0.metadata.complexityPremium | string | strong | Complexity level of the password |
passwords.0.analysisPremium | object | null | Strength analysis for the password. Returned only when analyze is true, and holds score, strength, feedback and entropy |
count | number | 10 | Total count of passwords generated |
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
- Employee Account Provisioning
- IT administrators create temporary credentials for new staff accounts matching internal length rules before users complete their initial login.
- Database Credential Rotation
- When rotating secrets in CI/CD pipelines, DevOps engineers produce symbol-free strings to prevent shell escaping errors in connection strings.
- Signup Form Suggestions
- Recommend readable, multi-word passphrases to customers during registration so they adopt strong credentials that remain memorable.
- Help Desk Resets
- Help desk staff generate pronounceable strings for callers locked out of internal systems, avoiding ambiguous characters during phone readbacks.
Other ways to use Password Generator Skill
Set up Password Generator 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 Data Generation: