Skip to main content
Glama

humanizer_humanize_file

Rewrite PDF, DOCX, Markdown, or text files to remove AI-sounding text, saving a humanised copy next to the original without changing the source.

Instructions

Rewrite a PDF, DOCX, Markdown or text file on the server and save the result next to it.

PDF input is saved as .docx unless output_format is pdf. The original file is never changed. Default output is .humanised..

Args: path: Absolute path to the source file. output_path: Optional absolute output path (.docx, .pdf, .md or .txt). output_format: docx, pdf, md or txt. Default follows the source (PDF sources become docx). level: light, standard or deep. backend: auto, claude-cli, anthropic or mock. locale: For example "British English". style_sample: A sample of the author's own writing to match. overwrite: Replace an existing output file. assess: Also run the AI assessor for a before and after score (slower). also_pdf: Also save a PDF copy next to the output. voice: Match the writing samples in the voice folder. semantic: Add an AI pass that catches meaning-level tells (slower). local_model: Model name for the ollama or openai-compatible backends.

Input Schema

NameRequiredDescriptionDefault
pathYes
levelNostandard
voiceNo
assessNo
localeNo
backendNo
also_pdfNo
semanticNo
overwriteNo
local_modelNo
output_pathNo
style_sampleNo
output_formatNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full load and does reasonably well: it discloses that the original file is never changed, that output defaults to <name>.humanised.<ext>, that PDF sources are converted to .docx, and that overwrite is required to replace an existing file. It also flags the slower options (assess, semantic). It stops short of describing what happens on failure, whether backend auth is needed, or how long 'deep' level takes.

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 behavioral rules are front-loaded in the first two sentences, followed by a scannable arg list, which is the right structure for a 13-parameter tool. There is minor redundancy, since output_format repeats the PDF-becomes-docx default already stated above, but nothing is 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?

For a 13-parameter mutation tool with no annotations and no output schema, the description covers the essentials an agent needs: file-safety guarantee, default output naming, format coercion, overwrite behavior, and cost flags. The main remaining gap is the return value — the agent is never told the generated path is reported back, despite there being no output schema to supply it.

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 0%, so the description must compensate, and it does by glossing all 13 parameters and supplying the accepted values that the schema lacks as enums (level: light/standard/deep, backend: auto/claude-cli/anthropic/mock, output_format: docx/pdf/md/txt). The glosses are uneven — 'level' values are listed without explaining what depth actually changes, and local_model is not tied to the ollama/openai-compatible backends it belongs to — but the parameter documentation clearly exceeds the bare schema.

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 and resource (rewrite a PDF/DOCX/Markdown/text file) plus the scope constraint that it operates on server files and writes the result alongside the source. That is enough to distinguish it from humanizer_humanize_text, though it never names the sibling explicitly, so the differentiation is inferred rather than stated.

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?

Usage is implied by the description of format handling and defaults, so an agent can infer this is the file-based variant of the humanize operation. However, there is no explicit guidance on when to prefer this over humanizer_humanize_text or humanizer_extract_document, and no declared prerequisites such as whether the path must exist or be readable by the server.

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