Skip to main content
Glama
arunai30

@share-html/mcp-server

by arunai30

Publish an HTML-native presentation

publish_presentation

Publish a validated HTML slide deck or pitch deck and get a shareable presentation viewer URL with access controls and CSP applied.

Instructions

Create slides, a slide deck, pitch deck, talk, lesson, or keynote as a first-class HTML presentation. First call get_recipe with recipeId "presentation-deck". Structural validation and DOM checks alone are not visual QA. When browser or rendering tools are available, render and inspect the actual rendered pixels of every slide at the declared desktop canvas, a narrow viewport, and print size; fix the source HTML/CSS and re-render affected slides until the full deck passes before publishing, re-rendering every slide after shared CSS changes. If rendering is unavailable, tell the user that visual QA was not completed; publishing may proceed with that disclosure. ShareHTML sanitizes and validates the deck, persists it, applies access controls and CSP, and returns its presentation viewer URL.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
htmlYesOne complete static HTML document following the presentation-deck recipe.
titleNoA distinctive deck title that will be easy to find later.
sharingNoOptional access policy. Omit it to publish privately.
presentationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare the write profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), and the description adds real pipeline detail: sanitization, validation, persistence, access-control and CSP application, plus the returned viewer URL. It stops short of stating duplicate/re-publish behavior, but this is well above the annotation baseline.

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?

Purpose is front-loaded in the first sentence, and the procedural visual-QA guidance that follows is dense but task-relevant. The middle visual-QA paragraph is long and somewhat repetitive about re-rendering, costing a point, but every section carries operational weight.

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

Completeness4/5

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

For a write tool with no output schema, the description supplies the return value (viewer URL), the pre-step (get_recipe), the QA workflow, and the sanitization/access-control behavior. The nested sharing modes are left to the schema, which is acceptable at 75% coverage, but a brief note on the default private behavior would have completed it.

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?

Schema coverage is 75%, so the schema already documents most parameters, including the nested sharing object. The description only alludes to parameters obliquely ('declared desktop canvas' implying aspectRatio, 'applies access controls' implying sharing) without adding syntax or constraints. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb (create/publish) and resource (HTML presentation deck), enumerating artifact types (slides, pitch deck, keynote) that make the target unambiguous. It does not explicitly contrast with siblings publish_html or publish_page, so it is clear but not sibling-differentiating.

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?

Gives a concrete required precondition (call get_recipe with recipeId "presentation-deck" first) and a conditional path for when rendering tools are unavailable. However, it never routes the agent among the actual sibling publish tools (publish_html, publish_page), so alternatives within the toolset remain unaddressed.

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