Skip to main content
Glama
prepublish

PrePublish MCP server

Official
by prepublish

prepublish-mcp

Tooling around the hosted PrePublish MCP server. The server itself is not in this package. It lives in the web app and is served at https://prepublish.ai/mcp.

Path

What it is

prepublish-fe/app/mcp/route.ts

The live endpoint. Streamable HTTP, stateless, anonymous-friendly

prepublish-fe/lib/mcp/protocol.ts

JSON-RPC / MCP core

prepublish-fe/lib/mcp/tools.ts

The six tools and their descriptions

prepublish-fe/lib/mcp/limits.ts

Daily spend cap and per-caller burst limit

prepublish-fe/app/mcp-server/

Public documentation page

prepublish-mcp/src/bridge.ts

stdio bridge for clients that cannot use a remote server

prepublish-mcp/test/

Conformance suite driven by the official MCP SDK client

prepublish-mcp/server.json

Registry entry for ai.prepublish/script-audit

One source of truth for tools: the app. The bridge fetches its tool list from the hosted server at startup, so adding a tool needs no release here.

Why the server is hand-rolled rather than SDK-hosted

@modelcontextprotocol/sdk's StreamableHTTPServerTransport speaks Node's IncomingMessage/ServerResponse; a Next App Router route handler speaks Web Request/Response. Shimming one onto the other is more code, and more fragile code, than answering the five JSON-RPC methods a tools-only server needs. Conformance is not taken on trust: test/conformance.test.ts drives the endpoint with the official SDK client over Streamable HTTP, so the wire format is checked against the reference implementation.

Supported protocol 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 down to the newest we implement.

Related MCP server: Content Hooks MCP

Tools

Tool

Cost

Purpose

audit_script

AI-backed

Full audit of a finished draft. Scores, attention-risk map, per-passage rewrites. Polls to completion, then returns the analysis and its id

get_audit

free

Collect an audit by analysis_id

audit_hook

AI-backed

Per-sentence attention pull, curiosity gap, payoff distance, grade, rewrites

check_authenticity

AI-backed

Reused / templated / mass-produced content risk with quotes and remediation

policy_preflight

AI-backed

YouTube advertiser and monetisation policy exposure, each category citing YouTube's own page. Quoted passages are the paid half

script_runtime

free, local

Words ↔ runtime from measured speaking rates (160 / 181 / 201 wpm across 349 videos)

Every AI-backed response carries the same notice: the check is text-only, it maps relative attention risk inside an unrecorded script, and it does not measure or predict published YouTube retention. That sentence is repeated to the user by the model, so it is in the tool descriptions as well as the payloads.

Failures return the next action rather than a stack trace: 402 asks the user for an email, 401/403 points at the plan, 429 says the allowance is spent and not to retry, 503 says try later.

Limits

Set on the web app, visible at GET https://prepublish.ai/mcp:

Variable

Default

Meaning

MCP_DAILY_CALL_CAP

100

AI-backed calls per UTC day across the whole endpoint

MCP_CALLER_CALL_LIMIT

6

AI-backed calls per caller per 10 minutes

Both counters are in-process. One web container, small numbers, and a restart resets a counter rather than wrongly blocking someone. Move them to Valkey if the app ever runs replicas.

The backend's own limiter keys on client IP, and every MCP call reaches it from the web container's single IP, which is exactly why the per-caller limit exists here.

Local development

# 1. run the app (serves /mcp)
cd ../prepublish-fe && npm run build && npm run start -- --port 4910

# 2. conformance suite against it
cd ../prepublish-mcp && npm install && npm run build && npm test

npm test 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, 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.

Verify a deployment:

MCP_URL=https://prepublish.ai/mcp npm run test:conformance

The bridge

For clients that require a local stdio command:

{
  "mcpServers": {
    "prepublish": { "command": "npx", "args": ["-y", "prepublish-mcp"] }
  }
}

PREPUBLISH_MCP_URL overrides the upstream endpoint; PREPUBLISH_TOKEN forwards a bearer token. The bridge adds and hides nothing: a test asserts its tool list equals the hosted one.

Registry

server.json claims the DNS-verified namespace ai.prepublish/script-audit with a remote-only entry. Two ways to prove the domain, both documented in ops/mcp/launch-2026-09-10.md: a DNS TXT record, or the MCP_REGISTRY_PUBLIC_KEY environment variable, which makes https://prepublish.ai/.well-known/mcp-registry-auth serve the same value. The route 404s until that variable is set, so an unconfigured deployment cannot advertise a half-finished claim.

Known gaps

  • Protocol revision lag. The revision in force is 2026-07-28; this server implements up to 2025-11-25, which the SDK also treats as latest. Newer clients are required to handle older dialects. Revisit when the SDK ships 2026-07-28.

  • No OAuth 2.1. Anonymous plus optional bearer token. OAuth is only needed for per-user identity and verified-directory status.

  • No per-user API keys. Authenticated use means an existing magic-link JWT. Real API keys are the prerequisite for selling MCP access.

  • Path, not subdomain. mcp.prepublish.ai needs a DNS record and a Dokploy service; when it exists, only the URL in server.json, the docs page and the card change.

Available Tools

6 tools
audit_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoOnly needed once the free anonymous hook check for the day is used. Ask the user; never invent it.
nicheNoChannel niche, only if the user said it. Sharpens the comparison.
hook_textYesThe opening lines exactly as written, ideally the first 15 to 30 seconds of speech.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoWhere the free result is sent. Required for every anonymous audit: the backend rejects the request without it. Ask the user; never invent it.
audienceNoTarget audience, only if the user said it.
categoryNoVideo category, only if the user said it.
script_textYesThe script text as the user wrote it. Paste it verbatim; do not rewrite, summarise or clean it first.
video_titleYesThe title the user plans to publish under. The audit checks whether the script delivers this promise.
video_duration_secondsNoIntended runtime in seconds, only if the user stated one. Used for pacing; never assumed.

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
script_textYesThe script text as the user wrote it. Paste it verbatim; do not rewrite, summarise or clean it first.
video_titleYesThe planned title.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 idA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe analysis_id returned by audit_script.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoThe planned title, if the user has one. Titles are checked too.
scriptYesThe script text as written, at least 200 characters. Below that there is not enough context for a policy read.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 runtimeA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
word_countNoA word count, if the user already knows it.
script_textNoA script to count. Provide this or word_count or target_minutes.
target_minutesNoA target runtime in minutes, to convert into a word budget.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

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, 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 6 tool updatesv1.0.1
    • First observedaudit_hook
    • First observedaudit_script
    • First observedcheck_authenticity
    • First observedget_audit
    • First observedpolicy_preflight
    • First observedscript_runtime

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides 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.
    7
    24 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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.
    11 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Checks 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.
    1
    27 npm
    MIT