schema-tools
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@schema-toolsGenerate a JSON Schema from the sample data I provided."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-schema-tools
MCP server providing schema validation and generation tools for AI agents.
Tools
generate_json_schema
Generate a JSON Schema from sample JSON data. Infers types, required fields, formats (email, date, URI, UUID), and detects enum patterns from multiple examples.
generate_typescript
Generate TypeScript interfaces and types from JSON data or a JSON Schema. Handles nested objects, arrays, optional fields, enums, and union types.
validate_schema
Validate data against a JSON Schema with detailed error messages including JSON path, expected type, actual value, and the violated constraint keyword.
mock_from_schema
Generate realistic mock data from a JSON Schema. Smart field-name detection produces contextual values: email fields get valid emails, name fields get realistic names, phone fields get formatted numbers, etc.
diff_schemas
Compare two JSON Schemas to find added, removed, and changed fields. Identifies type changes, constraint changes, and classifies each difference as breaking or non-breaking for backwards compatibility analysis.
Related MCP server: mock-mcp
Setup
npm install
npm run buildUsage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"schema-tools": {
"command": "node",
"args": ["path/to/mcp-schema-tools/dist/index.js"]
}
}
}License
MIT
Available Tools
5 toolsdiff_schemasA
Compare two JSON Schemas and identify all differences: added/removed/changed fields, type changes, constraint changes (min/max, patterns, enums). Classifies each change as breaking or non-breaking for backwards compatibility analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| new_schema | Yes | The updated (new) JSON Schema | |
| old_schema | Yes | The original (old) JSON Schema |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden of behavioral disclosure. It does this well by stating the operation is comparative (no side effects implied), listing the categories of differences detected, and explicitly saying each change is classified as breaking or non-breaking. It does not describe the exact return format, but the behavioral essence is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences carry all essential information: what the tool does, what kinds of differences it catches, and what classification it produces. Every clause earns its place, and the primary purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only comparison tool with two well-described parameters and no output schema, the description is nearly complete. It explains the inputs, the diff dimensions, and the breaking/non-breaking classification. A slightly more concrete statement of the return structure would make it fully complete, but nothing critical is missing for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter descriptions already define old_schema and new_schema. The tool description adds value by clarifying the relationship between them ('original' vs 'updated') and framing their use in a comparison, so the agent understands the temporal/directional semantics beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb 'Compare' and a precise resource ('two JSON Schemas'), then enumerates exactly what kind of differences are identified (fields, types, constraints, enums) and what output classification is produced (breaking/non-breaking). This fully distinguishes it from sibling tools like generate_json_schema, validate_schema, or mock_from_schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended usage obvious: call this when you need to compare an old and new JSON Schema and understand what changed and whether those changes are backwards-compatible. It does not explicitly name alternatives or exclusions, but the use case is clear enough that an agent can select it correctly without additional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_json_schemaA
Generate a JSON Schema from one or more sample JSON values. Infers types, required fields, formats (email, date, URI, UUID), and detects enum patterns from multiple examples.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Optional title for the generated schema | |
| samples | Yes | Array of sample JSON values to infer the schema from. More samples produce a more accurate schema. | |
| detect_enums | No | Whether to detect enum values from string fields across samples (default: true, requires >= 3 samples) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It states that it infers types, required fields, formats, and enum patterns, which is good. However, it does not discuss error handling (e.g., invalid JSON input), output format specifics (e.g., JSON Schema draft version), or potential incompleteness for complex schemas.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the core purpose and immediately describe inferable features. No redundant words or irrelevant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main capabilities and parameter behavior well, given the tool's moderate complexity and complete parameter schema. It could mention output schema draft standard or validation of input samples, but these are minor gaps. The absence of an output schema is acceptable because the tool's output is a JSON Schema, which is self-describing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% – all parameters have descriptions. The description adds no parameter-specific detail beyond what the schema provides, but it does reinforce that more samples improve accuracy, which aligns with the samples parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a JSON Schema from sample JSON values, with specific capabilities (type inference, required fields, formats, enums). This uniquely distinguishes it from siblings like generate_typescript (TypeScript generation) and validate_schema (validation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use it (when you have sample data and need a schema), but there is no explicit guidance on when not to use it or how it compares to alternative tools like generate_typescript. It does not mention any prerequisites or limitations on input samples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_typescriptA
Generate TypeScript interfaces and types from JSON data or a JSON Schema. Handles nested objects, arrays, optional fields, enums, union types, and Record types.
| Name | Required | Description | Default |
|---|---|---|---|
| json | No | Sample JSON data to convert to TypeScript types. Provide either this or 'schema'. | |
| schema | No | A JSON Schema to convert to TypeScript types. Provide either this or 'json'. | |
| root_name | No | Name for the root interface/type (default: 'Root') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It adds meaningful behavioral detail by listing supported constructs (nested objects, arrays, optional fields, enums, unions, Record types), but it does not explain behavior when both json and schema are provided, what the exact output artifact is, or any edge-case behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action, then a compact capability list. No filler words or redundant restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three simple parameters, full schema description coverage, and no output schema, the definition is largely complete: an agent knows the purpose, inputs, and optional root name. The only meaningful gap is the missing precedence/conflict behavior for supplying both inputs, which is a common edge case for this kind of tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters, including the either/or intent on json/schema and root_name's default, so the description does not need to repeat parameter details. It does add a little context by implying the parsed structures may include nested/enum/union constructs, but that is not parameter-specific, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Generate'), a resource ('TypeScript interfaces and types'), and two supported input forms ('JSON data or JSON Schema'). The direction is clear enough to distinguish it from siblings like generate_json_schema, which produces schemas rather than TS types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: provide JSON or a JSON Schema and receive TypeScript types. However, there is no explicit 'use this instead of X' guidance, no mention of when to choose generate_json_schema, validate_schema, mock_from_schema, or diff_schemas, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mock_from_schemaA
Generate realistic mock data from a JSON Schema. Uses smart field-name detection to produce contextual values: email fields get valid emails, name fields get realistic names, dates get ISO strings, etc. Supports all JSON Schema types and constraints.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Random seed for reproducible output. Same seed + same schema = same data. | |
| count | No | Number of mock objects to generate (default: 1). If > 1, returns an array. | |
| schema | Yes | The JSON Schema to generate mock data from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool uses smart field detection and supports all JSON Schema types and constraints, which is useful. However, it does not mention error handling, edge cases, or the exact structure of the returned data beyond what the parameter descriptions imply. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose and then adding a distinguishing feature. Every word earns its place; no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, but the description and parameter docs together cover most needs: it returns mock data, count controls array output, seed ensures reproducibility. Complex behaviors like format constraints are hinted at ('supports all JSON Schema types and constraints'). Missing explicit error behavior, but for a generator tool it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra semantic detail beyond what parameters already state, such as seed behavior or count semantics. Baseline 3 applies since the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates mock data from a JSON Schema, with a specific verb ('Generate') and resource ('mock data from a JSON Schema'). It also highlights the smart field-name detection feature, making its purpose precise and easily distinguishable from sibling tools like generate_typescript or validate_schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to get sample data from a schema) but does not explicitly contrast it with alternatives. Sibling tools are semantically different, making the choice obvious, yet there is no direct 'when not to use' guidance. It relies on the reader to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_schemaA
Validate data against a JSON Schema. Returns detailed error messages with JSON path, expected type, actual value, and the violated keyword (type, required, format, pattern, minimum, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | The data to validate | |
| schema | Yes | The JSON Schema to validate against |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Because no annotations are provided, the description carries the full burden of behavioral disclosure. It goes beyond a basic statement by explaining what the return value contains: 'detailed error messages with JSON path, expected type, actual value, and the violated keyword.' This gives the agent a clear picture of the tool's behavior and output format, though it does not mention possible side effects (e.g., that it is read-only).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by a concise explanation of the return value. Every word earns its place; there is no repetition of schema details or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a validation tool with two well-documented parameters and no output schema, this description is complete. It explains both the action and the nature of the response, so an agent knows exactly what to expect and does not need additional context to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% description coverage for the two parameters (data and schema). The description does not add specific parameter-level meaning beyond what the schema states, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Validate data against a JSON Schema.' This is a specific verb and resource, and it is immediately distinguishable from sibling tools like generate_json_schema or diff_schemas. The description also mentions the detailed error output, which further clarifies its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly say when to use this tool versus alternatives, nor does it mention exclusions. However, the name and purpose make the use case obvious, and the sibling tools are distinctly different. The usage context is implied rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
diff_schemas - First observed
generate_json_schema - First observed
generate_typescript - First observed
mock_from_schema - First observed
validate_schema
TDQS
Each tool has a clearly distinct purpose: generation from data, generation from schema, validation, mocking, and diffing. No overlap or ambiguity between tool responsibilities, so an agent should reliably select the correct tool for a given task.
All tool names follow a consistent verb_noun pattern (generate_, validate_, mock_, diff_). The verbs are specific and descriptive, and the noun consistently refers to the primary artifact (schema or types). No mixed conventions or vague naming.
With exactly 5 tools covering the core schema lifecycle, the count is tight and focused. Each tool earns its place, and the number is within the ideal range for a utility server without being overly minimal or bloated.
The set covers the major schema operations: creating schemas from data, generating types for coding, validating data, generating mocks, and comparing schemas for evolution. Together they form a coherent, end-to-end toolkit with no obvious dead ends or missing critical operations.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Convert JSON samples into TypeScript interfaces and Zod schemas, with inference caveats.
- typeshipOAuthdev.typeship
Generate a typed SDK, CLI, and MCP server from any OpenAPI or GraphQL spec, and keep them current.
Deploy production REST APIs from JSON schemas in seconds. Manage projects, schemas, and deployments.
Detect breaking changes, generate changelogs, diff, and validate OpenAPI specs.
Related MCP Servers
- AlicenseAqualityCmaintenanceDetects schema mismatches between data producers and consumers through static analysis, supporting extraction, comparison, code generation, and automated validation with watch mode for MCP tools, APIs, and service contracts.1128MIT
- AlicenseAqualityCmaintenanceGenerates schema-compliant mock data from OpenAPI JSON Schema definitions using AI, enabling seamless testing without manual fixtures.6299MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to generate TypeScript types, Zod schemas, TypeBox, and JSON Schema from any API endpoint or JSON.15MIT
- FlicenseNot gradedqualityBmaintenanceValidates OpenAPI documents, JSON Schemas, and JSON payloads. Also compares OpenAPI specs and displays breaking changes.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rog0x/mcp-schema-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server