content-contracts-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| lint_web_contentA | Valida una o más páginas HTML contra los techos/pisos duros declarados en un SEO.md (protocolo: github.com/MauricioPerera/seo-md). No escribe contenido — solo verifica lo que ya se escribió. Chequea: / dentro de sus presupuestos de caracteres (max_chars, y min_chars si está declarado), contra locale, que cada página no-pilar linkee a una pillar_page, títulos duplicados entre páginas, términos prohibidos bloqueados en / (informados, no bloqueados, si aparecen en el body — evita falsos positivos en frases comparativas), techo de densidad de keywords (nunca exige presencia), forbidden_structure (solo "table" tiene sentido en HTML), y validez del JSON-LD si está presente. Args:
Returns: texto "PASS"/"FAIL" seguido del detalle por página (✗ = gate duro que bloquea, · = señal blanda informativa que nunca bloquea), más structuredContent con el resultado crudo. Errores: si |
| lint_producthunt_postA | Valida un tagline + descripción de lanzamiento de Product Hunt contra los techos duros declarados en un PRODUCTHUNT.md. A diferencia de lint_web_content, los términos prohibidos (negative.terms) se bloquean en TODO el post, no solo en una superficie corta — no existe un uso legítimo de "votá por nosotros" en tu propio tagline o descripción (Product Hunt lo prohíbe sin matices y remueve el post). Args:
Returns: texto "PASS"/"FAIL" con el detalle, más structuredContent. |
| lint_linkedin_contentA | Valida un copy de feed y/o un artículo de newsletter de LinkedIn contra los techos duros de un LINKEDIN.md. Los dos formatos son schemas separados (feed_copy / newsletter_article) porque casi no comparten restricciones reales — mandá al menos uno de los dos, podés mandar ambos. El contenido del artículo es estructurado (title, seoDescription, hook, contextParagraph, sections: [{heading, body}], closing), no texto libre a re-parsear con regex de headings — contar secciones es leer la longitud del array. forbidden_structure en LinkedIn SÍ chequea "table", "raw_html" y "literal_markdown" (a diferencia de lint_web_content, donde el medio ya es HTML y solo "table" aplica) — el editor de LinkedIn no renderiza ninguno de los tres. Args:
Returns: texto "PASS"/"FAIL" con el detalle de cada pieza enviada, más structuredContent. |
| export_json_ldA | Genera el bloque JSON-LD () a partir del bloque Requiere que Args:
Returns: el objeto JSON-LD y el string del completo, listo para pegar en el . |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool targets a distinct platform or purpose: web content, Product Hunt posts, LinkedIn content, and JSON-LD export. There is no overlap in what they validate or generate, making selection unambiguous.
All tools follow a consistent verb_noun pattern: lint_* for validation across three different content types, and export_json_ld for generation. The naming is predictable and clearly denotes the action and target.
With exactly 4 tools, the set is well-scoped and avoids redundancy. Each tool covers a necessary function for content contract validation and schema export without excess.
The tool surface fully covers the stated domain: validating against SEO.md, PRODUCTHUNT.md, and LINKEDIN.md, plus generating JSON-LD. There are no obvious missing operations that would cause agent failures or dead ends.