Skip to main content
Glama

review_writing

Read-only

Writing Agent review of ANY text or public URL — Pro plan; deterministic, no credits, no brief needed. Returns a slop index (0–100, lower is better), five component scores (correctness, redundancy, genericness, evidence, structure, cadence) and findings with exact spans and fixes: filler phrases, paragraphs with no specifics, numbers/percentages/studies with no source in the paragraph, superlatives with no basis, placeholders left in copy, repeated sentences and openers, headings whose section opens with preamble or does not answer its question, dense sentences. A leading YAML front-matter block (title, meta_description, slug, target_keyword, internal_links, faq, schema) is parsed as the SEO head and scored separately (seo_score 0–100, seo.* findings, never blockers); pass site_domain for same-site link checks and expect_front_matter=true for a draft meant to publish. BLOCKERS are what publish_content_brief refuses. It measures the writing, never who wrote it. Run it before you show a draft to the user and after every revision; read the writing_guardrails prompt before drafting. On error=plan_required, tell the user it is a Pro feature (/pricing).

Input Schema

NameRequiredDescriptionDefault
urlNoOr a public page URL to fetch and review (main text only)
textNoMarkdown or plain text to review (≥ 40 chars, ≤ 200k)
shapeNotrue also returns `shape`: the same text after the deterministic SHAPE PASS — paragraph rhythm (a one-line paragraph where a short sentence closes a long one; two short neighbours joined), bold lead sentences un-bolded — with the word sequence unchanged (asserted), plus slop_index_after. Free. Apply `shape.text` when `changed` is true; it is the fix for cadence.uniform_paragraphs and bold_lead_paragraphs without rewriting a word.
site_idNoApply the brand's voice profile (create_voice_profile): the response gains a `voice` block — the draft's distance from the author's own writing, feature by feature, in the author's numbers. Also defaults site_domain.
originalNoThe text this is a REVISION of (the version before your edit, a paraphraser pass, or the live page). The response gains a `fidelity` block and fidelity.* findings: figures that changed or appeared in the author's sentences and flipped negations are BLOCKERS; dropped figures, weakened/strengthened hedges (show→suggest), quotes that lost their marks and dropped names are review. Pass it after every revision pass.
page_typeNoOverride the detected page type: comparison | roundup | howto | glossary | local | pricing | service | casestudy | article. Health/money/legal topics add a YMYL overlay automatically. The response reports the profile used.
site_domainNoOptional site domain (e.g. qapilot.io) so listed internal_links are checked to be same-site
target_keywordNoOptional target keyword (checks the H1 carries it)
expect_front_matterNotrue for a publishable draft: a missing YAML SEO head becomes a finding (default false)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-destructive/idempotent=false, and the description adds substantial behavioral context beyond them: deterministic, no credit cost, Pro-plan gate with error=plan_required messaging, and the meaning of a BLOCKER. It stops short of describing pagination or rate limits, but the safety and cost profile is well covered.

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 prose is dense and long, but front-loaded with the core purpose and cost/plan facts, and nearly every sentence adds actionable detail (output shape, conditional blocks, prereq, error handling). Given 9 parameters and no output schema, the length is largely justified, though some return-value enumeration borders on redundant with the schema.

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 fully carries the burden: it documents the slop index scale, the five component scores, findings with spans, the SEO head handling, and the conditional shape/voice/fidelity blocks. An agent has enough to call it correctly and interpret the result.

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 the baseline is 3, but the description adds genuine usage guidance beyond the schema: passing site_domain for same-site link checks, expect_front_matter=true for a publishable draft, and the conditional response blocks that site_id, original, and shape produce. This helps select parameters, though it largely mirrors schema-specified behavior.

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 ('review of ANY text or public URL') and immediately scopes what it returns (slop index, component scores, findings) and its constraints (deterministic, no credits, no brief needed). An agent can distinguish it from rewrite_content or score_content_draft because it positions itself as a measurement-only reviewer with a defined output shape.

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?

Explicit when-to-use is given: 'Run it before you show a draft to the user and after every revision', plus a prerequisite ('read the writing_guardrails prompt before drafting'). It also handles the plan_required error path and clarifies that BLOCKERS are what publish_content_brief refuses, routing the agent downstream.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources