DS4AI MCP
This server lets an AI agent audit and generate web deliverables across findability, delivery, and accessibility/contrast using DS4AI primitives.
Audit shipped web surfaces:
audit_surfacechecks a live URL or raw HTML across six invisible-correctness axes, declaring axes that static checks cannot judge.Generate findability assets:
generate_head,generate_jsonld,generate_sitemap,generate_robotscreate head tags, JSON-LD, sitemaps, and robots.txt.Audit findability:
audit_findabilityreviews a page's HTML for head essentials, Open Graph, Twitter, JSON-LD validity, and canonical/og:url agreement.Generate delivery assets:
generate_image_markupandgenerate_cache_configproduce responsive image/picture markup and host-specific cache-header configs.Audit delivery:
audit_deliverychecks HTML for unsized images, lazy-loaded first images, render-blocking scripts, and font-display issues.Solve and check palettes:
solve_palettebuilds contrast-verified semantic tokens for a mode/notch/family/vision, andcheck_contrastcomputes WCAG 2.1 contrast ratios against AA thresholds.Expose resources: the server provides
ds4ai://manifest,ds4ai://agents, andds4ai://standardresources for agent guidance and standards reference.
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., "@DS4AI MCPAudit https://example.com for conformance and suggest improvements."
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.
DS4AI MCP server
The aggregate endpoint of DS4AI, the Design Suite for AI, from Polymathie-Studio. It serves the suite as callable MCP tools, so a person working with an AI reaches the conformance auditor and the generators through their agent, without calling a function. Unlike the @proof-of-coord standards servers, which point at canonical source, this server runs the primitives, and because it is a process rather than a browser it can fetch a URL and audit the served HTML.
Use it
This server is hosted as a public HTTP endpoint, and is published to npm and JSR as @polymathie/ds4ai. Connect the hosted server with nothing to install:
{
"mcpServers": {
"ds4ai": { "type": "http", "url": "https://ds4ai-production.up.railway.app/mcp" }
}
}Or run it locally, no clone:
npx @polymathie/ds4ai # from npm
deno run -A jsr:@polymathie/ds4ai # from JSR (Deno)Add it to an MCP client (Claude Code, Cursor, and the rest) either as the hosted HTTP server above, or as a stdio server whose command is npx @polymathie/ds4ai. The four MCP servers are listed at integritysuite.org/built, and the full reference for every connection method is Using the MCP servers.
Related MCP server: TrueSource GEO MCP Server
Tools
audit_surface
{ url? , html? }: audit a shipped surface across all six invisible-correctness axes with the MISSING conformance auditor. Give a URL and it fetches and audits the served HTML. Declares the axes a static check cannot judge rather than reporting them clean.generate_head, generate_jsonld, generate_sitemap, generate_robots, audit_findability (BEACON): findability head tags, JSON-LD, sitemap, robots.txt, and the depth findability audit.
generate_image_markup, generate_cache_config, audit_delivery (FLEET): responsive image and picture markup, cache-header config per host, and the depth delivery audit.
solve_palette, check_contrast (TEMPER): solve a full palette to contrast floors for a mode, and check the WCAG contrast between two colors.
Every result carries a provenance stamp declaring the server and bundled primitive versions.
Resources
ds4ai://manifest: the DS4AI family manifest (read generically, so it tracks the manifest as its data source).ds4ai://agents: the agent-instruction (AGENTS.md), so a connected agent gets the compose-the-suite instruction for free.ds4ai://standard: the MISSING standard.
How it is built
TypeScript on the MCP SDK with zod schemas, provenance-stamped, following the @proof-of-coord pattern. The zero-dependency primitives (TEMPER, BEACON, FLEET, and the MISSING conformance auditor) are bundled in, so the server is self-contained, and each tool stamps the primitive version it bundled. Published to npm and JSR under @polymathie.
Security
The URL-auditing path (audit_surface fetching a live URL) is built to a defensive threat model and is adversarially tested and hardened before release against server-side request forgery, denial-of-service, and resource-exhaustion attacks. Fetched content is treated as untrusted input: it is parsed, never executed, and the fetcher connects only to validated public addresses. The implementation is open for review under Apache-2.0.
Part of DS4AI
DS4AI, the Design Suite for AI, from Polymathie-Studio, joins PT4AI and PC4AI in the family of corpora served to an AI. The instruments and the MISSING standard live at Polymathie-Studio.
License
Apache-2.0 for the server. Copyright 2026 Regis Lloyd Chapman. See LICENSE and NOTICE.
The bundled resources keep their own licenses, from the Polymathie-Studio/missing repository: resources/standard.md (the MISSING standard) is dual-licensed CC-BY-4.0; the manifest and AGENTS.md are Apache-2.0. The vendored primitive source under src/vendor/ is Apache-2.0, from its instrument repository.
Available Tools
11 toolsaudit_deliveryB
Audit a page HTML string for delivery in depth (FLEET): unsized images, a lazy-loaded first image, render-blocking head scripts, and inline @font-face without font-display.
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral aspects such as side effects, read-only nature, or rate limits. It simply says 'Audit' without clarifying whether it modifies anything or is purely observational.
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 a single, concise sentence with no redundant or filler content. It efficiently lists the key audit areas without unnecessary elaboration.
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 provides specific details about what the audit covers, which is sufficient for a simple one-input tool. However, it does not mention what the output looks like or any edge cases, but given the absence of an output schema, the provided scope is mostly adequate.
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 schema has a single 'html' parameter with 100% coverage, and the description mentions 'page HTML string', which adds minimal clarity. Since coverage is high, the baseline is 3, and the description does not significantly exceed that baseline.
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 audits an HTML string for delivery performance, listing specific checks (unsized images, lazy-loaded first image, render-blocking head scripts, inline @font-face without font-display). It distinguishes from sibling audit tools by focusing on delivery-specific issues.
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 provide any guidance on when to use this tool versus other audit tools (e.g., audit_surface or audit_findability). There is no explicit scenario or condition suggesting when delivery auditing is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_findabilityA
Audit a page HTML string for findability in depth (BEACON): head essentials, Open Graph, Twitter, JSON-LD validity, and the canonical-versus-og:url agreement invariant.
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It details what the audit checks (head essentials, Open Graph, Twitter, JSON-LD, canonical agreement), which is useful, but it does not describe the return format, whether it is read-only, or any side effects. The agent cannot predict output structure or potential errors.
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 a single front-loaded sentence that states the primary purpose first, then lists specific audit dimensions. Every word adds value with no redundant phrases or unnecessary detail.
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 audits multiple complex aspects but has no output schema and only one parameter. The description enumerates the audit scope but omits any explanation of the output format, scoring, or return structure. For a tool with this complexity and no structured return definition, additional detail on the result is needed.
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 0%, so the description must compensate. It identifies the sole parameter as a 'page HTML string', which clarifies the expected content type and purpose. However, it does not specify whether the string must be a full document or fragment, nor any formatting constraints.
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 states a specific action (audit) on a specific resource (page HTML string) and enumerates exact audit dimensions (head essentials, Open Graph, Twitter, JSON-LD validity, canonical-og:url agreement). This clearly distinguishes it from sibling tools like generate_head or audit_surface.
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 use when you have an HTML string and need to assess findability, but it provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like audit_surface or audit_delivery. The context for choosing this tool over siblings is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_surfaceA
Audit a shipped web surface across all six invisible-correctness axes (perceivable, operable, off-happy-path, key-private, findable, fast-and-stable) with the MISSING conformance auditor. Pass a url to fetch and audit the served HTML, or pass html directly. Returns a per-axis report that declares the axes a static check cannot judge rather than reporting them clean.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| html | No |
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 a key behavioral trait: the report 'declares the axes a static check cannot judge rather than reporting them clean,' providing honesty about limitations. It also mentions fetching served HTML, implying a network request. It doesn't discuss safety or side effects, but as an audit tool, the implied read-only nature is acceptable.
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 each clause adds value. It lists the six axes compactly and explains the output behavior without redundancy. No wasted words.
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 no output schema, the description appropriately outlines the return value ('per-axis report') and its honesty about unjudgeable axes. It covers inputs and output behavior. It references 'MISSING conformance auditor' without explanation, but that's a tool-specific detail. The absence of rate limits or auth notes is minor for an audit tool, and complexity is low with only two string parameters.
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 schema only defines url and html as optional strings with no descriptions. The description adds meaning: 'Pass a url to fetch and audit the served HTML, or pass html directly.' This explains the semantics of each parameter and their mutual exclusivity (implied by 'or'). It doesn't cover edge cases like providing both or none, but for two simple parameters this is adequate.
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 audits a 'shipped web surface' across six specific axes with the MISSING conformance auditor. The verb 'audit' and resource are precise, and the listed axes distinguish it from narrower siblings like audit_findability or audit_delivery.
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?
It explicitly explains how to invoke the tool: pass a url to fetch and audit, or pass html directly. This gives clear input guidance. However, it doesn't explicitly contrast with sibling tools (e.g., when to use this general audit vs audit_findability), though the scope (all six axes) implies broader use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_contrastA
Check the WCAG 2.1 contrast ratio between two hex colors and whether it clears the AA thresholds (4.5:1 for normal text, 3:1 for large text or non-text).
| Name | Required | Description | Default |
|---|---|---|---|
| background | Yes | ||
| foreground | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavior. It states the tool computes the ratio and checks thresholds, which is the core action. However, it does not specify the return format (e.g., does it return a boolean, the ratio, or a pass/fail object?) or any error handling for invalid hex inputs. This is a gap given the lack of annotations.
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 a single, well-structured sentence that front-loads the purpose with the verb 'Check' and efficiently includes the key thresholds. It is concise with no unnecessary words, earning a perfect score.
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 is simple (two parameters, no output schema), but the description does not fully explain what the tool returns. Since there is no output schema, the description should clarify the return value, which it only implies by saying 'whether it clears'—it doesn't explicitly state the output format or any additional information like the ratio itself. Some context is provided (WCAG 2.1, AA thresholds), but completeness suffers from missing return details.
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 schema has 0% description coverage, so the description must compensate. It adds that the parameters are hex colors and mentions the AA thresholds, which provides context beyond the parameter names. However, it does not detail the exact format (e.g., with or without '#') or clarify which parameter is foreground vs. background beyond the names themselves. This is some added meaning but not comprehensive.
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 checks WCAG 2.1 contrast ratio between two hex colors and evaluates against AA thresholds. The verb 'Check' and specific resource (contrast ratio) make the purpose unambiguous, and it is distinct from sibling tools like generate_sitemap or solve_palette.
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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., having hex colors), when not to use it, or mention any related tools. This leaves the agent to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_cache_configA
Generate cache-header config for a named host (netlify, vercel, nginx): revalidate HTML, cache content-hashed assets for a year as immutable.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | ||
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It describes the output content (revalidating HTML, caching assets as immutable), giving some transparency about what the generated config will do. However, it does not mention whether the tool writes files, returns a string, or has side effects on the target host. This is a partial disclosure but not comprehensive.
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 a single, dense sentence that conveys the core purpose and key behavior without any redundant words. It is appropriately front-loaded and earns every word, making it highly concise and well-structured.
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 the lack of annotations, no output schema, and an undocumented nested 'options' parameter, the description is insufficiently complete. It does not explain what the tool returns, how to use options, or any edge cases. For a tool generating configuration, the user needs to know the output format and how to customize behavior via options, both of which are absent.
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 schema description coverage is 0%, so the description must compensate for parameter documentation. It does indirectly reference the 'target' enum by naming the hosts, but it provides no explanation of the 'options' object or its possible properties. The description adds minimal value beyond the schema for the 'target' and none for 'options'.
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 cache-header configuration for a specific set of hosts (netlify, vercel, nginx) and specifies the caching rules (revalidate HTML, cache content-hashed assets as immutable for a year). This is a specific verb+resource action, and it distinguishes itself from sibling tools that handle other aspects like head tags, JSON-LD, sitemaps, and robots.
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 the tool is used when generating cache headers for these hosts, but it does not explicitly state when to use it versus alternatives, nor does it provide any exclusions or prerequisites. The scope is clear from the description, but there is no direct guidance on selection among nearby tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_headA
Generate the findability head tags (title, description, canonical, Open Graph, Twitter card) for a page from a flat metadata object, as an SSR/build-time string. Also returns the html lang attribute.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It states that it returns a string and includes the lang attribute, implying a pure, read-only generation operation. It does not mention any side effects, permissions, or error conditions, but for a generator that creates a string, this is acceptable.
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 a single, front-loaded sentence that immediately states the tool's primary function, then adds the lang attribute detail. There is no fluff or redundancy; every part contributes to understanding the tool.
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 the tool's simplicity—one parameter, no output schema—the description provides sufficient context about what it returns and the SSR/build-time context. It could have mentioned potential errors or how missing metadata fields are handled, but for a basic generator, it covers the essentials.
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 0%, so the description must compensate. It briefly mentions 'flat metadata object' and lists the output tags, but does not explain the purpose of each input property (e.g., lang, image, title, siteName, canonical, description) or which are required. The schema lists properties and types, but the description adds minimal value beyond what the schema exposes.
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 identifies the tool's purpose: generating head tags (title, description, canonical, Open Graph, Twitter card) for a page. It specifies the output as an SSR/build-time string and mentions the additional lang attribute, distinguishing it from sibling tools like generate_jsonld, generate_sitemap, and generate_robots, which cover different outputs.
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 provides clear context (for a page, SSR/build-time) and implies when it might be used. Without explicit alternatives or exclusions, it doesn't fully guide the user away from or toward other tools, but the context is enough for most scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_image_markupA
Generate responsive or markup with reserved dimensions and correct scheduling. Mark the LCP image priority (eager, high fetchpriority); mark offscreen images lazy. Pass avif/webp for format negotiation to get a .
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behaviors: reserving dimensions, setting loading=lazy for offscreen images, using eager+high fetchpriority for LCP, and generating <picture> when avif/webp are provided. It does not mention handling of srcset or sizes, but the core behavior is clearly articulated.
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 specific behavioral notes. Every sentence contributes value, with no filler or redundancy.
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 tool with a nested object schema and no output schema, the description covers the main purpose, behavioral details, and key parameters. It doesn't elaborate on srcset/sizes behavior or output format, but as a markup generator, the output is implicitly the HTML string. The description is adequate for a capable agent, though leaving a few details to standard HTML knowledge.
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 0%, so the description must add meaning. It explains the role of avif/webp (trigger <picture>), priority (LCP eager), lazy (offscreen), and dimensions (reserved). While srcset, sizes, and alt are not explicitly explained, their names are self-explanatory in web context, and the description covers the most critical parameters.
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 explicitly states the tool generates responsive <img> or <picture> markup, with a specific verb (Generate) and resource (markup). It clearly distinguishes from sibling tools like audit_surface or generate_sitemap by focusing on image markup generation and optimization.
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 provides clear usage context: it instructs to mark LCP images with priority and offscreen images as lazy, and explains that passing avif/webp yields <picture>. While it doesn't explicitly exclude alternatives, there is no overlapping sibling tool, and these instructions give actionable when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_jsonldA
Serialize one or several schema.org objects into a JSON-LD script tag, with the sequence escaped. Pass a schema object or an array of them.
| Name | Required | Description | Default |
|---|---|---|---|
| schema | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It mentions the escaping of </script>, which is a valuable detail, but it does not specify the return format (e.g., string vs. DOM node), error handling, or side effects. The tool appears safe, but the description lacks comprehensive behavioral disclosure.
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 a single, well-structured sentence that conveys the action, input, output, and an important safety detail (escaping). It is concise, front-loaded, and contains no unnecessary words, making it highly scannable for an agent.
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 core functionality but leaves gaps. There is no output schema, so the description should specify what is returned (e.g., a string containing the script tag). It also does not address error conditions or usage prerequisites. For a simple one-parameter tool, this is adequate but not fully 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?
The input schema has no description on the schema property, so the description compensates by explaining that it accepts a schema object or an array of them. This adds semantic meaning beyond the schema's type declaration, clarifying what kind of objects are expected. It covers the single parameter adequately, though it could elaborate on the structure of the schema.org objects.
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 function: it serializes schema.org objects into a JSON-LD script tag. It specifies the input format (single object or array) and a key output detail (escaping </script>). This distinguishes it from siblings like generate_head or generate_sitemap, which serve different purposes.
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 usage when JSON-LD output is needed but does not explicitly state when to use this tool versus alternatives. Since the tool name and purpose are self-evident, the usage context is clear, but there is no explicit guidance on when to prefer it or when not to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_robotsA
Serialize a robots.txt for crawl control. Pass allow/disallow (string or array) and one or more sitemap URLs. Index control belongs in the head robots directive, not here.
| Name | Required | Description | Default |
|---|---|---|---|
| options | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It communicates core behavior (serialization) and accepted input shapes, but does not disclose output format, potential side effects, or default handling of omitted fields. No contradiction exists, but behavioral coverage is only partially complete.
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 compact and front-loaded with the tool's core purpose. Both sentences earn their place: the first states what the tool does, and the second provides essential parameter and exclusion guidance.
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 the sparse schema, absent annotations, and no output schema, the description provides helpful but incomplete context. It covers the main inputs and an important exclusion, yet the 'groups' property is unexplained, and behavior like return value or output destination is not stated.
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 0% and the schema properties are empty, so the description must compensate. It usefully explains allow/disallow accept a string or array and sitemap accepts one or more URLs, but it does not mention the 'groups' parameter at all, leaving its meaning ambiguous.
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 identifies a specific action ('Serialize a robots.txt') and resource, and states it is for crawl control. It also distinguishes itself by explicitly excluding index control, which belongs in a head robots directive, reinforcing separation from generate_head and generate_sitemap.
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?
It tells the agent exactly what to pass: allow/disallow as string or array and one or more sitemap URLs. It also gives a clear when-not-to-use instruction by directing index control to the head robots directive, providing an explicit exclusion boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_sitemapA
Serialize a sitemap.xml from a list of canonical URLs (strings, or objects with loc, lastmod, changefreq, priority).
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states the transformation (serialize) but omits behavioral details such as output format specifics (XML declaration, encoding), error handling for invalid URLs, or whether it validates input. The operation is simple and read-only in nature, so a score of 3 reflects adequate disclosure for a pure function.
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 a single sentence, front-loaded with the main purpose and input details. There is no redundancy or filler, making it highly concise and structured.
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 is simple with one parameter, and the description covers the input adequately. However, there is no output schema and the description does not clarify the exact return format beyond implying a serialized XML string (e.g., whether it includes XML declaration, pretty printing, or encoding). This gap in output specification keeps it from being fully 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?
The schema provides zero coverage and only defines 'urls' as an array of strings or objects. The description compensates well by explicitly listing accepted formats: strings or objects with loc, lastmod, changefreq, priority. This adds meaningful semantics beyond the schema.
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 serializes a sitemap.xml from a list of canonical URLs, distinguishing it from sibling tools like generate_robots and generate_head. It uses a specific verb (Serialize) and resource (sitemap.xml) with input format details.
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 usage for generating sitemap.xml but offers no explicit guidance on when to use this tool versus alternatives like generate_robots or generate_head. There is no when-not-to-use or alternative mention, so it only meets the implied usage level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solve_paletteA
Solve a full TEMPER palette to verified contrast floors for a mode. mode is light, soft-light, soft-dark, or dark; notch is 0 (brighter), 1 (middle), or 2 (deeper); family is a color family key (for example iron, oxblood, moss); vision constrains for a color-vision deficiency (default, rg, by, mono). Returns the semantic token set.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| notch | No | ||
| family | No | ||
| vision | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it returns the semantic token set, but provides no information about side effects, errors, or permissions. With no annotations, more behavioral detail would be beneficial.
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 a single, efficient sentence that packs all necessary parameter explanations and the return type without redundancy.
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 adequately covers parameters and return, but lacks deeper context on what 'verified contrast floors' entails or any constraints, though it's reasonably complete for a domain-specific 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 description clarifies each parameter (mode, notch, family, vision) with enums and examples, adding meaning beyond the schema's bare types and enums, though not exhaustive.
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 solves a TEMPER palette to verified contrast floors, which is specific and distinct from sibling tools like audit_surface or generate_head.
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 mention when to use this tool over alternatives, nor does it provide usage context beyond the operation itself.
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.
11 tool updates
v0.1.0- First observed
audit_delivery - First observed
audit_findability - First observed
audit_surface - First observed
check_contrast - First observed
generate_cache_config - First observed
generate_head - First observed
generate_image_markup - First observed
generate_jsonld - First observed
generate_robots - First observed
generate_sitemap - First observed
solve_palette
TDQS
Each tool names a distinct artifact or audit focus (head, JSON-LD, sitemap, robots, images, cache, palette, contrast). The only mild overlap is audit_surface versus audit_findability/audit_delivery, but the descriptions clearly differentiate a broad holistic audit from in-depth single-axis audits.
Tool names consistently follow a verb_noun pattern: generate_* for output serializers, audit_* for auditors, plus solve_palette and check_contrast. There is no mixed casing or vague verb style, making the naming pattern predictable and readable.
11 tools is well within the ideal scope for a web-correctness toolkit. Each generator and auditor addresses a distinct deliverable or audit pass, and none feels redundant or out of place.
The set covers core generation (head, structured data, sitemap, robots, images, cache) and auditing (surface, findability, delivery) plus color accessibility. The main gap is that index/noindex control is mentioned as living in the head, but no tool directly emits that meta robots directive.
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
Robots-aware website audits, pre-crawl quotes, and structured evidence for people and agents.
Full AI visibility audits: schema, citations, agentic readiness, agent journeys, WordPress deploys.
Agent-readiness scanner (0-5 score), robots.txt + llms.txt generators, managed agent enablement.
Scan any public site for AI-agent visibility; get scored findings, a machine-readable fix pack, and
Related MCP Servers
AlicenseAqualityBmaintenanceLets any AI agent audit any website for SEO, GEO/AEO, and speed problems, reporting issues and recommendations without modifying the site.4MIT- AlicenseAqualityDmaintenanceEnables AI assistants to audit websites for AI-readiness, generate AI-optimized robots.txt and llms.txt files, and create VibeTags for emotional AI brand resonance.421MIT
- AlicenseAqualityAmaintenanceEnables AI agents to check whether a public website is crawlable, understandable, and ready for AI search workflows through local-only audits of robots.txt, sitemaps, metadata, and llms.txt.32501MIT

SitePulsar MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceMeasures and improves how findable, readable, and usable a website is to AI answer engines and autonomous AI agents through hosted AEO audit tools.MIT
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/Polymathie-Studio/ds4ai-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server