Overview
JSON Schema Generator works by analyzing the structure and data types in sample JSON to produce a valid JSON Schema. It detects formats like date, email, and URI automatically and marks all fields as required.
Live Test JSON Schema Generator Skill Skill →
The tool
Once your client is connected to the VerveKit server, this appears in its tool list as JSONSchemaGeneratorSkill. 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": "JSONSchemaGeneratorSkill",
"arguments": {
"json": "{\"name\":\"John\",\"age\":30,\"email\":\"[email protected]\"}"
}
}You do not name the tool yourself; the model picks it. Asking about {"name":"John","age":30,"email":"[email protected]"} in the terms this skill covers is enough for it to reach for JSONSchemaGeneratorSkill 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 |
|---|---|---|
jsonRequired | object | The sample JSON data to generate a schema from |
titleOptional | string | The title for the generated schema (default: 'Generated Schema') default Generated Schema |
descriptionOptional | string | Optional description for the schema |
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": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "User Schema",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer"
},
"email": {
"type": "string",
"format": "email"
},
"active": {
"type": "boolean"
}
},
"required": [
"name",
"age",
"email",
"active"
]
}
}
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 |
|---|---|---|---|
$schema | string | http://json-schema.org/draft-07/schema# | JSON Schema version URI (e.g., Draft-07) |
title | string | User Schema | Title of the generated schema definition |
type | string | object | Root schema type (e.g., object, array) |
properties | object | {…} | Field definitions with inferred types and formats |
properties.name | object | {…} | |
properties.name.type | string | string | Root schema type (e.g., object, array) |
properties.age | object | {…} | |
properties.age.type | string | integer | Root schema type (e.g., object, array) |
properties.email | object | {…} | |
properties.email.type | string | string | Root schema type (e.g., object, array) |
properties.email.format | string | email | |
properties.active | object | {…} | |
properties.active.type | string | boolean | Root schema type (e.g., object, array) |
required | array | ["name","age","email"] | Array of field names marked as required |
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
- API Documentation
- Generate JSON schemas for API request/response documentation automatically from sample data
- Data Validation
- Create validation schemas for JSON data in applications, APIs, or configuration files
- Contract Testing
- Generate schemas from API responses to use in contract testing and API monitoring
- Code Generation
- Use generated schemas as input for code generation tools to create type-safe data models
Other ways to use JSON Schema Generator Skill
Set up JSON Schema 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: