Skip to main content
Glama

Generate JSON-LD sample

schema_jsonld_sample
Read-onlyIdempotent

Generate a schema.org JSON-LD snippet (Organization, LocalBusiness, Product with Offer, or FAQPage) from your details, with placement tips, so search engines and AI assistants can identify the entity. Use when adding structured data to a page. Do NOT use to check whether a site already has structured data (use check_ai_readiness) or for llms.txt (use llms_txt_draft).

Input Schema

NameRequiredDescriptionDefault
urlYesCanonical page URL including https://, e.g. https://example.com (required; not emitted for faq).
nameYesEntity name, e.g. Reddy Plumbing (required; not emitted for faq).
typeYesEntity type: organization, local_business (adds telephone/address), product (adds price Offer) or faq (requires questions).
priceNoOptional price for product; a 3-letter currency code in it sets priceCurrency (default USD), e.g. '49.00 USD'.
addressNoOptional street address for local_business, e.g. 100 Main St, Austin, TX 78701.
questionsNoQuestion/answer pairs for faq (at least one required when type is faq).
telephoneNoOptional phone for local_business, ideally E.164, e.g. +1-512-555-0100.
descriptionNoOptional one-sentence description (organization, local_business, product).

Output Schema

NameRequiredDescriptionDefault
tipsYesTips for accurate structured data.
jsonldYesPretty-printed JSON-LD object as a string, ready to embed.
placementYesWhere to paste the snippet in the page.
disclaimerYesInformational disclaimer: crawler behaviour can change, verify against provider docs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedInput schema / properties / address / description
      Previous value: -"Address (local_business)"New value: +"Optional street address for local_business, e.g. 100 Main St, Austin, TX 78701."
    • changedInput schema / properties / description / description
      Previous value: -"Short description"New value: +"Optional one-sentence description (organization, local_business, product)."
    • changedInput schema / properties / name / description
      Previous value: -"Entity name"New value: +"Entity name, e.g. Reddy Plumbing (required; not emitted for faq)."
    • changedInput schema / properties / price / description
      Previous value: -"Price (product)"New value: +"Optional price for product; a 3-letter currency code in it sets priceCurrency (default USD), e.g. '49.00 USD'."
    • changedInput schema / properties / questions / description
      Previous value: -"FAQ items (faq)"New value: +"Question/answer pairs for faq (at least one required when type is faq)."
    • removedInput schema / properties / questions / items / additionalProperties
      Removed value: -false
    • changedInput schema / properties / questions / items / properties / answer / description
      Previous value: -"Answer"New value: +"Answer text."
    • changedInput schema / properties / questions / items / properties / question / description
      Previous value: -"Question"New value: +"Question text."
    • changedInput schema / properties / telephone / description
      Previous value: -"Phone (local_business)"New value: +"Optional phone for local_business, ideally E.164, e.g. +1-512-555-0100."
    • changedInput schema / properties / type / description
      Previous value: -"Schema type"New value: +"Entity type: organization, local_business (adds telephone/address), product (adds price Offer) or faq (requires questions)."
    • changedInput schema / properties / url / description
      Previous value: -"Site URL"New value: +"Canonical page URL including https://, e.g. https://example.com (required; not emitted for faq)."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "disclaimer": {
      +      "description": "Informational disclaimer: crawler behaviour can change, verify against provider docs.",
      +      "type": "string"
      +    },
      +    "jsonld": {
      +      "description": "Pretty-printed JSON-LD object as a string, ready to embed.",
      +      "type": "string"
      +    },
      +    "placement": {
      +      "description": "Where to paste the snippet in the page.",
      +      "type": "string"
      +    },
      +    "tips": {
      +      "description": "Tips for accurate structured data.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "jsonld",
      +    "placement",
      +    "tips",
      +    "disclaimer"
      +  ],
      +  "type": "object"
      +}
  2. Changed13 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / address / description
      Previous value: -"Optional street address for local_business, e.g. 100 Main St, Austin, TX 78701."New value: +"Address (local_business)"
    • changedInput schema / properties / description / description
      Previous value: -"Optional one-sentence description (organization, local_business, product)."New value: +"Short description"
    • changedInput schema / properties / name / description
      Previous value: -"Entity name, e.g. Reddy Plumbing (required; not emitted for faq)."New value: +"Entity name"
    • changedInput schema / properties / price / description
      Previous value: -"Optional price for product; a 3-letter currency code in it sets priceCurrency (default USD), e.g. '49.00 USD'."New value: +"Price (product)"
    • changedInput schema / properties / questions / description
      Previous value: -"Question/answer pairs for faq (at least one required when type is faq)."New value: +"FAQ items (faq)"
    • addedInput schema / properties / questions / items / additionalProperties
      Added value: +false
    • changedInput schema / properties / questions / items / properties / answer / description
      Previous value: -"Answer text."New value: +"Answer"
    • changedInput schema / properties / questions / items / properties / question / description
      Previous value: -"Question text."New value: +"Question"
    • changedInput schema / properties / telephone / description
      Previous value: -"Optional phone for local_business, ideally E.164, e.g. +1-512-555-0100."New value: +"Phone (local_business)"
    • changedInput schema / properties / type / description
      Previous value: -"Entity type: organization, local_business (adds telephone/address), product (adds price Offer) or faq (requires questions)."New value: +"Schema type"
    • changedInput schema / properties / url / description
      Previous value: -"Canonical page URL including https://, e.g. https://example.com (required; not emitted for faq)."New value: +"Site URL"
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "disclaimer": {
      -      "description": "Informational disclaimer: crawler behaviour can change, verify against provider docs.",
      -      "type": "string"
      -    },
      -    "jsonld": {
      -      "description": "Pretty-printed JSON-LD object as a string, ready to embed.",
      -      "type": "string"
      -    },
      -    "placement": {
      -      "description": "Where to paste the snippet in the page.",
      -      "type": "string"
      -    },
      -    "tips": {
      -      "description": "Tips for accurate structured data.",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    }
      -  },
      -  "required": [
      -    "jsonld",
      -    "placement",
      -    "tips",
      -    "disclaimer"
      -  ],
      -  "type": "object"
      -}New value: +null
  3. Changed11 schema fields changed
    • changedInput schema / properties / address / description
      Previous value: -"The address for this request."New value: +"Optional street address for local_business, e.g. 100 Main St, Austin, TX 78701."
    • changedInput schema / properties / description / description
      Previous value: -"The description for this request."New value: +"Optional one-sentence description (organization, local_business, product)."
    • changedInput schema / properties / name / description
      Previous value: -"The name for this request."New value: +"Entity name, e.g. Reddy Plumbing (required; not emitted for faq)."
    • changedInput schema / properties / price / description
      Previous value: -"The price for this request."New value: +"Optional price for product; a 3-letter currency code in it sets priceCurrency (default USD), e.g. '49.00 USD'."
    • changedInput schema / properties / questions / description
      Previous value: -"List of questions values."New value: +"Question/answer pairs for faq (at least one required when type is faq)."
    • addedInput schema / properties / questions / items / properties / answer / description
      Added value: +"Answer text."
    • addedInput schema / properties / questions / items / properties / question / description
      Added value: +"Question text."
    • changedInput schema / properties / telephone / description
      Previous value: -"The telephone phone number."New value: +"Optional phone for local_business, ideally E.164, e.g. +1-512-555-0100."
    • changedInput schema / properties / type / description
      Previous value: -"The type for this request."New value: +"Entity type: organization, local_business (adds telephone/address), product (adds price Offer) or faq (requires questions)."
    • changedInput schema / properties / url / description
      Previous value: -"Full url URL including https://."New value: +"Canonical page URL including https://, e.g. https://example.com (required; not emitted for faq)."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "disclaimer": {
      +      "description": "Informational disclaimer: crawler behaviour can change, verify against provider docs.",
      +      "type": "string"
      +    },
      +    "jsonld": {
      +      "description": "Pretty-printed JSON-LD object as a string, ready to embed.",
      +      "type": "string"
      +    },
      +    "placement": {
      +      "description": "Where to paste the snippet in the page.",
      +      "type": "string"
      +    },
      +    "tips": {
      +      "description": "Tips for accurate structured data.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "jsonld",
      +    "placement",
      +    "tips",
      +    "disclaimer"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "jsonld": {
      -      "description": "The generated JSON-LD snippet based on the provided input.",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "jsonld"
      -  ],
      -  "type": "object"
      -}New value: +null
  5. Changed8 schema fields changed
    • addedInput schema / properties / address / description
      Added value: +"The address for this request."
    • addedInput schema / properties / description / description
      Added value: +"The description for this request."
    • addedInput schema / properties / name / description
      Added value: +"The name for this request."
    • addedInput schema / properties / price / description
      Added value: +"The price for this request."
    • addedInput schema / properties / questions / description
      Added value: +"List of questions values."
    • addedInput schema / properties / telephone / description
      Added value: +"The telephone phone number."
    • addedInput schema / properties / type / description
      Added value: +"The type for this request."
    • addedInput schema / properties / url / description
      Added value: +"Full url URL including https://."
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "jsonld": {
      +      "description": "The generated JSON-LD snippet based on the provided input.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "jsonld"
      +  ],
      +  "type": "object"
      +}
  7. First observed

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, covering the safety and determinism profile. The description adds that output includes placement tips and the intended audience (search engines and AI assistants), but most type-specific behavior it mentions (local_business adds telephone/address, product adds Offer, faq requires questions) duplicates the schema's enum description. No additional auth, rate-limit, or failure-mode context is provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first front-loads the action and supported variants; the second carries all when-to-use and when-not-to-use routing. There is no filler, and the exclusions are placed after the positive guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only generator whose annotations cover the safety profile and whose output schema covers return structure, the description supplies purpose, supported variants, usage conditions, exclusions, and sibling routing. The extra output element ('placement tips') is noted, and no essential calling context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 100%, the baseline is 3. The description names the supported entity types but adds no syntax or format detail beyond what the enum's own description and the other parameter descriptions already state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Generate) and resource (schema.org JSON-LD snippet), enumerates the supported entity types, and explicitly names the sibling tools it is not. An agent can distinguish it from check_ai_readiness and llms_txt_draft without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when-to-use condition ('Use when adding structured data to a page') and two explicit when-not-to-use cases routed to named alternatives ('Do NOT use to check whether a site already has structured data (use check_ai_readiness)' and 'for llms.txt (use llms_txt_draft)'). Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources