PrePublish MCP server
OfficialThis server audits YouTube scripts before recording, offering AI-backed script analysis and free local tools.
audit_script: Full audit of a finished draft — hook, structure, pacing scores, attention-risk map, flagged passages with rewrites, delivered by email.get_audit: Retrieve an earlier audit by itsanalysis_id(free, no new analysis).audit_hook: Score the opening lines of a script for attention pull, curiosity gap, payoff distance, and rewritten alternatives.check_authenticity: Detect reused, templated, or mass-produced content risk with firing signals and remediation steps.policy_preflight: Check a script against YouTube advertiser/monetisation policy families, citing YouTube's own pages.script_runtime: Convert word count or pasted script to a spoken runtime range, or target runtime to a word budget (free, local arithmetic).
Checks scripts for YouTube advertiser and monetisation policy exposure, citing YouTube's own policy pages and identifying quoted passages.
Click on "Deploy 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., "@PrePublish MCP serverAudit my YouTube script for attention risk and policy issues before recording"
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.
prepublish-mcp
Audit a YouTube script before you record it, from inside your AI client.
Prepublish is a remote MCP server. It reads a draft that does not exist as a video yet and returns hook, structure and pacing scores, the passages most likely to lose viewers, an inauthentic-content check, a YouTube policy pre-flight that cites YouTube's own published pages, and a words-to-runtime calculator built on measured speaking rates.
Every other YouTube MCP server fetches the transcript of a video that is already published. This one reads the script you have not filmed.
Free, anonymous, no API key, no account.
Install
Claude Code, one command:
claude mcp add --transport http prepublish https://mcp.prepublish.aiCursor, VS Code, Windsurf, Claude Code project scope, or anything that
reads an mcpServers object:
{
"mcpServers": {
"prepublish": {
"type": "http",
"url": "https://mcp.prepublish.ai"
}
}
}Claude Desktop: add a custom connector under Customize, then Connectors,
and paste https://mcp.prepublish.ai.
Codex CLI, ~/.codex/config.toml:
[mcp_servers.prepublish]
url = "https://mcp.prepublish.ai"Clients that can only launch a command use the stdio bridge in this repository. It needs Node 20 or newer and forwards to the same endpoint:
{
"mcpServers": {
"prepublish": {
"command": "npx",
"args": ["-y", "prepublish-mcp"]
}
}
}Agents installing this on a user's behalf should read
llms-install.md.
Check it worked
Ask for a runtime estimate: "Use prepublish to convert 1500 words into a
runtime range." script_runtime is local arithmetic, never rate limited, and
returns three estimates. If that answers, the connection is good.
Related MCP server: Content Hooks MCP
Tools
Tool | Cost | What it returns |
| AI-backed | Full audit of a finished draft: hook, structure and pacing scores, an attention-risk map naming the passages most likely to lose viewers, and a rewrite. Returns the analysis and its id |
| free | Collect an earlier audit by |
| AI-backed | Per-sentence attention pull across the opening, curiosity gap, payoff distance, a grade, and rewritten alternatives |
| AI-backed | Reused, templated or mass-produced content risk, with the quotes that fired each signal |
| AI-backed | Which YouTube policy families a script touches, each citing YouTube's own page |
| free, local | Words to runtime and runtime to a word budget, at 160, 181 and 201 words per minute measured across 349 videos |
audit_script asks for an email address, because the full audit is released by
email. The other five do not.
What it does not do
Every AI-backed response carries the same notice, and it is worth stating here too. These checks are text-only. They map relative attention risk inside an unrecorded script. They do not measure or predict the retention a published video will get, and no output here is a forecast of views, watch time or revenue.
Nothing fetches a video, a transcript or a channel. Every tool reads text you pass it.
Limits
The free tier is published live at GET https://mcp.prepublish.ai, which
returns a machine-readable server card with the current day's usage.
Limit | Default |
AI-backed calls per UTC day, across the whole endpoint | 100 |
AI-backed calls per caller per 10 minutes | 6 |
script_runtime is local arithmetic and never counts against either.
A bearer token in PREPUBLISH_TOKEN raises the limits without changing the
tool list.
When the daily cap is reached the tool returns an error that tells the model not to retry and names the web alternative for that day. Failures return the next action rather than a stack trace.
Transport and protocol
Streamable HTTP, stateless. Supported revisions: 2025-11-25, 2025-06-18,
2025-03-26, 2024-11-05. A client asking for a supported revision gets it
back; anything else negotiates to the newest one implemented, and the
negotiated revision is reported identically in the response header and in the
initialize result.
The endpoint validates the Origin header. Requests without one, which is
every non-browser client, are always served. A browser origin that is not
prepublish.ai is refused with 403, as the transport specification requires.
An unsupported MCP-Protocol-Version header is a 400.
Aliases: https://prepublish.ai/mcp and https://mcp.prepublish.ai/mcp serve
the same handler.
Development
The server itself lives in the Prepublish web application, not in this repository. What is here is the stdio bridge and the conformance suite that holds the hosted endpoint to the specification.
npm install
npm run build
MCP_URL=https://mcp.prepublish.ai npm testThe suite drives the endpoint with the official MCP SDK client over
Streamable HTTP, so the wire format is checked against the reference
implementation rather than against our own assumptions. It covers the
handshake, tool discovery, schema shape, both directions of script_runtime,
unknown-tool errors, the server card, batching rejection, notification
handling, protocol negotiation in both directions, Origin validation, protocol
version validation, and the stdio bridge round trip.
One AI-backed test is skipped unless MCP_TEST_BILLABLE=1, because a real call
costs money and writes a row.
PREPUBLISH_MCP_URL overrides the upstream endpoint for the bridge. The bridge
adds and hides nothing: a test asserts its tool list equals the hosted one, so
adding a tool on the server needs no release here.
Registry
Published to the official MCP registry as ai.prepublish/script-audit, a
remote-only entry under the DNS-verified ai.prepublish namespace. See
server.json.
Links
Documentation: https://prepublish.ai/mcp-server
Privacy: https://prepublish.ai/privacy
Contact: https://prepublish.ai/contact
License
MIT. See LICENSE.
Available Tools
6 toolsaudit_hookScore the opening of a YouTube scriptA
Score just the opening lines of a YouTube script: how much attention each sentence pulls, whether it opens a curiosity gap, how far away the payoff sits, plus the top issues and rewritten alternatives. Choose this when the user shares only a hook or opening paragraph, or wants a fast second opinion before auditing a whole draft. Cheaper and narrower than audit_script. This is a text-only check of an unrecorded script. It maps relative attention risk inside the draft. It does not measure or predict published YouTube retention, and it cannot account for delivery, editing, thumbnail, topic or distribution.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Only needed once the free anonymous hook check for the day is used. Ask the user; never invent it. | ||
| niche | No | Channel niche, only if the user said it. Sharpens the comparison. | |
| hook_text | Yes | The opening lines exactly as written, ideally the first 15 to 30 seconds of speech. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only carry readOnlyHint=false and openWorldHint=true; the description adds genuine value beyond these. The 'text-only check of an unrecorded script' and 'maps relative attention risk... does not measure or predict published retention, cannot account for delivery, editing, thumbnail, topic or distribution' disclosures clarify what the tool will and won't report. The one gap: the schema's email/quota mechanics (free daily check, then email required) are not explained in the description, leaving an operational behavior undocumented. No contradiction with 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?
Lengthy but densely informative — every clause earns its place. The first sentence front-loads purpose with specifics, the second gives usage guidance, and the closing sentences cover scope disclaimers. It could be slightly tighter (the 'Could not account for...' list repeats the thrust of 'does not measure retention'), but nothing is filler.
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?
With no output schema, the description carries the burden of describing return values, and it does: attention pull per sentence, curiosity gap, payoff distance, top issues, and rewritten alternatives. Combined with explicit scope limitations and usage routing, an agent has everything needed to invoke it correctly. Only the email/quota operation is externalized, and the schema handles that.
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 100%, so the baseline is 3 and the schema already documents all three parameters fully (email's conditionality, niche's optionality, hook_text's format and length). The description reinforces hook_text via 'hook or opening paragraph' but adds no parameter semantics beyond what the schema supplies. It correctly meets the baseline without exceeding it.
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?
States a specific verb (score), resource (opening lines of a YouTube script), and enumerates the concrete outputs: per-sentence attention pull, curiosity gap, payoff distance, top issues, and rewritten alternatives. It further carves out its exact scope relative to audit_script, so an agent can distinguish them without inspecting other schemas.
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?
Gives explicit when-to-use conditions ('shares only a hook or opening paragraph', 'wants a fast second opinion'), names the alternative tool audit_script directly, and frames the tradeoff ('Cheaper and narrower'). The scope exclusions (doesn't measure retention, can't see delivery/editing/thumbnail) also steer an agent away from misapplying it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_scriptAudit a YouTube script before recordingA
Run Prepublish's full audit on a YouTube script the user has already written. Returns hook, structure and pacing scores, a script-level attention-risk map naming the passages most likely to lose viewers, and a copy-paste rewrite for each flagged passage. Choose this when the user has a finished or near-finished draft and wants to know what is weak before they record. Do not use it to generate a script, to review a published video, or to check grammar. A free result is released by email, so ask the user for an address rather than guessing one. This is a text-only check of an unrecorded script. It maps relative attention risk inside the draft. It does not measure or predict published YouTube retention, and it cannot account for delivery, editing, thumbnail, topic or distribution.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Where the free result is sent. Required for every anonymous audit: the backend rejects the request without it. Ask the user; never invent it. | ||
| audience | No | Target audience, only if the user said it. | |
| category | No | Video category, only if the user said it. | |
| script_text | Yes | The script text as the user wrote it. Paste it verbatim; do not rewrite, summarise or clean it first. | |
| video_title | Yes | The title the user plans to publish under. The audit checks whether the script delivers this promise. | |
| video_duration_seconds | No | Intended runtime in seconds, only if the user stated one. Used for pacing; never assumed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint false, openWorldHint true, destructiveHint false), and the description adds crucial behavioral context: the result is 'released by email, so ask the user for an address rather than guessing one.' It also clearly scopes the analysis as a 'text-only check of an unrecorded script' that 'does not measure or predict published YouTube retention' and lists factors it cannot account for. No annotation contradiction.
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 long but front-loaded with the action and outputs, and every sentence contributes either selection guidance, an exclusion, or a limitation. Minor redundancy exists in restating 'text-only check' and 'maps relative attention risk,' but overall it is efficient for a tool with this complexity.
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 purpose, selection criteria, outputs, side effects (email), and limitations in detail, compensating for the absence of an output schema. Given the tool's complexity (6 params, no output schema), nothing needed to invoke it correctly is missing.
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 100%, so the schema already documents every parameter's meaning, constraints, and required behavior. The description reinforces the email requirement and verbatim script_text handling, but these are also covered in the schema, so the description adds only marginal semantic value beyond the structured fields.
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?
States a specific verb and resource: 'Run Prepublish's full audit on a YouTube script the user has already written.' It enumerates concrete outputs (hook, structure and pacing scores, attention-risk map, rewrites) and distinguishes itself by excluding script generation, published-video review, and grammar checking, which differentiates it from siblings like audit_hook and policy_preflight.
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?
Explicitly states when to choose it: 'when the user has a finished or near-finished draft and wants to know what is weak before they record.' It also gives clear when-not-to-use guidance: 'Do not use it to generate a script, to review a published video, or to check grammar.' This is direct selection context even without naming sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_authenticityCheck a script for reused or inauthentic content riskA
Check a script against YouTube's inauthentic-content expectations: whether it reads as mass-produced, templated or repetitive, which signals fire, and what to change. Returns a score, a risk level, the firing signals with quotes, and remediation steps. Choose this when the user worries about reused content, AI-sounding scripts, or a channel that repeats a formula. This reports text-level signals only; it is not a monetisation decision and does not speak for YouTube.
| Name | Required | Description | Default |
|---|---|---|---|
| script_text | Yes | The script text as the user wrote it. Paste it verbatim; do not rewrite, summarise or clean it first. | |
| video_title | Yes | The planned title. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly discloses what the tool returns (score, risk level, signals, remediation) and its limits (text-level signals only, not a monetisation decision). It does not mention side effects or external calls, but the verb 'check' plus readOnlyHint=false is not contradicted; a small gap remains about whether any state changes occur.
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 but information-dense, opening with the purpose and then listing output and limits. No redundancy; the only minor cost is having outputs stated in two places, but this is not waste.
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 no output schema, the description supplies the full return contract (score, risk level, signals, remediation). It also gives a usage trigger and a boundary. It lacks edge-case/error behavior, but that is not essential for selection and invocation.
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 100%, and the schema already describes both parameters well, including the 'do not rewrite or summarise' instruction in script_text. The description adds no parameter-specific guidance beyond what the schema provides, so the baseline of 3 applies.
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?
States a specific action ('Check a script against YouTube's inauthentic-content expectations') with a clear object and scope. It enumerates exactly what is evaluated (mass-produced/templated/repetitive text) and what is returned (score, risk level, signals with quotes, remediation), making it easy to select.
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?
Names concrete trigger conditions: 'when the user worries about reused content, AI-sounding scripts, or a formulaic channel.' It gives an exclusion ('not a monetisation decision') but does not name an alternative sibling tool explicitly, so an agent must infer which sibling covers monetization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_auditCollect a Prepublish audit by idARead-only
Fetch the current state of an audit that was started earlier, using the analysis_id that audit_script returned. Use this when a previous audit was still running, or when the user refers back to an audit from earlier in the conversation. It performs no new analysis and costs nothing. This is a text-only check of an unrecorded script. It maps relative attention risk inside the draft. It does not measure or predict published YouTube retention, and it cannot account for delivery, editing, thumbnail, topic or distribution.
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_id | Yes | The analysis_id returned by audit_script. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds real value: it is text-only, costs nothing, works on an unrecorded script, and explicitly scopes what it does NOT measure (retention, delivery, editing, thumbnail, topic, distribution). It stops short of describing return shape or polling/expiry behavior, keeping it below 5.
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?
Front-loads the core action and the id source, then layers usage and scope. Slightly long with several scope-limiting clauses, but each sentence carries distinct routing or boundary information rather than 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 single-param read tool with annotations covering safety and no output schema, the description supplies the needed usage context and the important negative scope. It could note whether results are transient or how to interpret the attention-risk output, a small remaining gap.
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 100%, and the schema already documents analysis_id including its origin from audit_script. The description reinforces the provenance but adds no syntax, format, or constraint beyond the schema, so the baseline 3 applies.
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?
States a specific verb and resource (fetch audit state by analysis_id) and explicitly anchors it to the sibling audit_script that produces the id. An agent can distinguish this from audit_script/audit_hook without opening schemas.
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?
Gives explicit when-to-use conditions (previous audit still running, or user references an earlier audit) and clarifies it performs no new analysis, which routes the agent away from re-running audit_script. 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.
policy_preflightPre-flight a script against YouTube advertiser and monetisation policyA
Check a script before recording for the YouTube policy categories it may touch: which category families are implicated, the consequence family for each, a verdict and flag counts. Each category cites YouTube's own published policy page. Choose this when the user is writing about sensitive subject matter and asks whether it is safe to monetise. The quoted passages and their suggested rewrites are part of the paid audit, so the free result may return counts with locked quotes. It reports risk against published policy text; it is not a monetisation guarantee and does not speak for YouTube.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | The planned title, if the user has one. Titles are checked too. | |
| script | Yes | The script text as written, at least 200 characters. Below that there is not enough context for a policy read. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful context beyond the annotations: the free result may return locked quotes, quoted passages and rewrites belong to the paid audit, and the tool is explicitly not a monetisation guarantee. Nothing contradicts the annotations, though side effects are not elaborated.
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 dense but front-loaded: the first sentence states purpose and outputs, the second gives usage selection, and the rest add necessary caveats about paid/free behaviour and scope. It could slightly tighten the policy-page citation clause, but it is not padded.
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?
Even without an output schema, the description covers the main result elements, the intended use case, the paid/free boundary, and the tool's limitations. It does not spell out an exact response structure, but an agent has enough signal to decide when to call it.
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 100%, so the schema already documents both title and script, including the 200-character minimum. The description adds only minor extra framing about checking before recording and does not need to compensate for missing schema details.
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 ('Check a script before recording') and lists concrete outputs: category families implicated, consequence family, verdict, and flag counts. It also differentiates from the paid audit siblings by describing this as the preflight/free version with locked quotes.
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 gives an explicit selection trigger: choose this when the user discusses sensitive subject matter and asks whether monetisation is safe. It references a paid audit alternative for quoted passages, but it does not explicitly name a sibling tool or provide a clear when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script_runtimeConvert script length to spoken runtimeARead-only
Convert a word count, or a pasted script, into a spoken runtime range, and convert a target runtime back into a word budget. Rates come from Prepublish's own measurement of 349 videos: 25th percentile 160 words per minute, median 181, 75th percentile 201. Choose this for "how long will this script run" or "how many words for a ten-minute video". It is arithmetic on speaking rate only: it excludes pauses, B-roll and demonstrations, so a finished edit usually runs longer.
| Name | Required | Description | Default |
|---|---|---|---|
| word_count | No | A word count, if the user already knows it. | |
| script_text | No | A script to count. Provide this or word_count or target_minutes. | |
| target_minutes | No | A target runtime in minutes, to convert into a word budget. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=true, openWorldHint=false), and the description adds substantial context beyond them: the data provenance (measurement of 349 videos), the rate spread (160/181/201 wpm), and the scope caveat that pauses and B-roll are excluded so real edits run longer. That is exactly the kind of expectation-setting an agent needs before quoting a number to a user.
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?
Front-loaded with the core operation, then usage triggers, then the caveat — a sensible order. The percentile figures are slightly dense but they justify the rate model rather than padding, so every sentence earns its place.
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?
With no output schema, the description does the work of saying what comes back (a runtime range, or a word budget). Combined with the 100%-covered parameter schema, an agent has enough to invoke correctly; only minor detail like exact rounding or whether multiple inputs may be combined is left implicit.
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 100%, so baseline is 3, but the description goes further by explaining the three distinct input modes and what each produces (word count → range, pasted script → range, target minutes → word budget). It doesn't restate the mutual-exclusivity rule, which the schema already handles.
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?
States a specific bidirectional operation: word count/script → runtime range, and target runtime → word budget. An agent can tell exactly what it does without opening the schema, and the purpose is distinct from the audit-oriented siblings.
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?
Gives explicit trigger phrasings ("how long will this script run", "how many words for a ten-minute video") and an explicit exclusion (pauses, B-roll, demonstrations), which tells the agent when the answer will understate a finished edit. No sibling alternative is named, but none of the siblings is a substitute for this arithmetic tool.
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.
6 tool updates
v1.0.1- First observed
audit_hook - First observed
audit_script - First observed
check_authenticity - First observed
get_audit - First observed
policy_preflight - First observed
script_runtime
TDQS
Scored across 6 tools
Each tool targets a clearly separate function: full-script audit, hook-only audit, audit retrieval, authenticity check, policy preflight, and runtime conversion. The descriptions explicitly state when to use each, so an agent is unlikely to confuse them.
Most tools follow a verb_noun pattern like audit_script, audit_hook, get_audit, and check_authenticity, but policy_preflight and script_runtime are noun-first exceptions. The names remain readable and predictable overall, with only minor deviations.
Six tools is well within the ideal range and each tool earns its place by covering a distinct pre-publish analysis need. There is no bloat or redundancy.
The toolset covers the full lifecycle implied by its purpose: creating full or hook audits, retrieving prior audits, and performing supporting checks for authenticity, policy, and runtime. No significant dead ends or missing operations are apparent.
Maintenance
Related MCP Connectors
Audit a YouTube script before recording: hook, pacing, drop-off risk, copy-paste rewrites.
Audit creator scripts for TikTok Shop and Amazon policy violations. Returns flags and safe rewrites.
The all-in-one YouTube content engine: research, ideas, thumbnails, scripts, and video.
Create short-form scripts and paced audio, then hand clips to ScriptSeen's on-device video maker.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables creators and marketers to generate viral social media hooks, format text into Twitter threads with proper character limits, and audit sales copy with actionable feedback on power words and CTAs.3-
- AlicenseAqualityCmaintenanceProvides AI agents with structured short-form content mechanics including hooks, script structures, retention strategies, and CTAs, along with auditing tools to avoid common posting failures.749 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to score drafts for AI-content-spam risk before publishing and scan entire sites, providing a pre-publish QA gate with pass/warn/fail verdicts.7 npmMIT
- AlicenseAqualityBmaintenanceChecks AI-generated social media and ad content against current policies of 8 major platforms, flagging risky phrases and providing compliant rewrites to prevent account restrictions.138 npmMIT