Skip to main content
Glama
MauricioPerera

content-contracts-mcp-server

Generar JSON-LD desde schema: de un SEO.md

export_json_ld
Read-onlyIdempotent

Generate JSON-LD structured data from an SEO.md schema block. Pass YAML config and optional URL, and get a complete script tag for embedding in the head.

Instructions

Genera el bloque JSON-LD () a partir del bloque schema: de un SEO.md — templating puro sobre el YAML, sin LLM de por medio, cero ambigüedad posible (SEO.md, regla 6).

Requiere que schema: tenga default_type, name y description — sin esos dos últimos no hay JSON-LD válido que generar, y el tool falla con un mensaje claro en vez de generar algo incompleto. applicationCategory/operating_system son opcionales.

Args:

  • config (string): frontmatter YAML de tu SEO.md.

  • url (string, opcional): URL de la página específica, se agrega como campo "url" del JSON-LD.

Returns: el objeto JSON-LD y el string del completo, listo para pegar en el .

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoURL de la página, si se quiere incluir un campo url en el JSON-LD.
configYesFrontmatter YAML de un SEO.md con bloque schema:.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
jsonLdYes
scriptTagYes
Behavior5/5

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

The description adds behavioral context beyond annotations: it is 'templating puro sobre el YAML, sin LLM', failure behavior is specified ('el tool falla con un mensaje claro'), and required input fields are listed. Annotations already declare readOnlyHint and idempotentHint, and the description does not contradict them.

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

Conciseness4/5

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

The description is well-structured with args and returns, but includes slightly verbose phrasing like 'cero ambigüedad posible (SEO.md, regla 6)'. It remains efficient and each sentence serves a purpose, earning a 4 rather than lower.

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?

Given the output schema exists and annotations are present, the description is complete: it covers prerequisites, parameter semantics, behavior, and output. No important gaps remain.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds extra semantics by explaining that config must contain a `schema:` block with specific fields (default_type, name, description) and that url is optional to add a "url" field. This enriches understanding beyond the schema descriptions.

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?

The description clearly states the tool's purpose: 'Genera el bloque JSON-LD (<script type="application/ld+json">) a partir del bloque `schema:` de un SEO.md'. This uses a specific verb (genera) and resource (JSON-LD block from SEO.md), and it is clearly differentiated from sibling lint tools.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (to generate JSON-LD from SEO.md), including required fields and failure conditions. However, it does not explicitly mention alternatives or when not to use it, but the context is strong enough to avoid confusion with the lint siblings.

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

Install Server

Other Tools

Latest Blog Posts

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/MauricioPerera/content-contracts-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server