Skip to main content
Glama
kitfoxs

HumanizeMCP

by kitfoxs

humanize_and_verify

Rewrites AI-generated text to sound human and iteratively checks against AI detectors until the target score is met.

Instructions

Humanize, then iterate against detectors until a target score is met.

v0.2.0 (Bet 3): wraps :class:pipelines.IterativeHumanizer, which implements the Cheng et al. 2025 detector-guided loop (research/04 section 1.3). Each iteration:

  1. Locates the worst-scoring paragraph in the current text.

  2. Generates candidates_per_iteration stochastic paraphrase candidates of that paragraph (via ParaphrasePass.paraphrase_candidates).

  3. Scores each candidate, keeps the lowest, splices it back in.

  4. Re-scores the whole text. If at or below target_ai_score, returns.

This replaces the v0.1.0 loop, which re-ran the deterministic 9-pass pipeline at ramped intensities. As documented in docs/REVIEW_v0.1.0.md section 2.9, every pass except 9-heavy is idempotent on its own output, so iterations 2-3 of the old loop did no work. The new loop is meaningfully different because it depends on stochastic candidate generation: only non-deterministic search can converge on a lower score after a deterministic fixed point.

The function always returns a result, even if the target was not reached; callers should check target_reached to know.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYesThe input prose to humanize.
styleNoName of a style preset; see :func:`list_styles`.blog
max_iterationsNoHard upper bound on improvement iterations. Must be >= 1. Iteration 0 is always the baseline humanization and does not count against this bound.
target_ai_scoreNoThe aggregate probability_ai value below which the loop exits. Must be in [0, 1]. Cheng et al. 2025 use 0.15 as their stop value; we keep 0.3 ("comfortably human") as the default for backwards compatibility with v0.1.x callers.
target_detectorNoWhich detector field the loop optimizes against. ``"trusted_mean"`` (default) uses the suite's mean over detectors without documented bias caveats. ``"raw_mean"`` uses the unweighted mean across all detectors. Any other value is treated as a specific detector name (e.g. ``"roberta_openai"``).trusted_mean
candidates_per_iterationNoHow many stochastic paraphrase candidates to generate per iteration. The Cheng et al. 2025 paper uses 3-5; we default to 3 as a quality / latency tradeoff. Must be >= 1.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYes
notesNo
iterationsYes
final_scoreYesThe full output of :func:`score_humanity`.
initial_scoreYesThe full output of :func:`score_humanity`.
total_time_msNoTotal wall-clock time including baseline humanization.
target_reachedYes
target_ai_scoreYes
target_detectorNoWhich detector field the loop optimized against. One of "trusted_mean", "raw_mean", or a specific detector name.trusted_mean
per_iteration_scoresNoWhole-text AI probability after iteration 0 (baseline) then after each accepted improvement. Empty if scoring was unavailable.
candidates_per_iterationNoHow many stochastic paraphrase candidates were generated per iteration. 1 reduces the loop to deterministic paraphrasing.
Behavior4/5

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

With no annotations, the description carries the full transparency burden and does well: it explains the stochastic candidate generation, the per-iteration splicing, and the critical behavior that the function always returns a result, requiring the caller to check 'target_reached'. It also discloses the algorithm's reliance on non-determinism to break fixed points, adding meaningful behavioral context.

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 front-loaded with a one-sentence purpose and uses numbered steps for algorithm clarity. The historical comparison to v0.1.0 adds several sentences, but it serves to explain why the loop is stochastic, which is behaviorally relevant. It is longer than strictly necessary but well-structured and justifiable for the tool's complexity.

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?

The description covers the iterative process, parameter behavior, and return-value expectations (checking 'target_reached'). It does not explicitly contrast with sibling tools, but the tool is complex and the description provides enough detail to understand its role. The presence of an output schema also offloads return-structure details.

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% with detailed descriptions for all six parameters, so the schema already provides defaults, constraints, and semantics. The description does mention 'candidates_per_iteration' and 'target_ai_score' in the loop description, but this adds only illustrative context rather than new parameter meaning beyond the schema's own thorough explanation.

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 opening sentence 'Humanize, then iterate against detectors until a target score is met' clearly specifies the verb (humanize and verify), resource (text), and goal (target score). This distinguishes the tool from siblings like 'humanize' by emphasizing the iterative detector-guided loop rather than a single-pass transformation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for cases where a target AI score must be reached, but it never explicitly states when to prefer this over sibling tools such as 'humanize' or 'score_humanity'. It provides no exclusions or alternative conditions, and the 'always returns a result even if target was not reached' note is more behavioral than usage-oriented.

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

Install Server

Other Tools

Latest Blog Posts

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/kitfoxs/humanize-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server