# io.github.humanpen/humanpen-mcp (npm · humanpen-mcp)

Document-level AI humanizer for .docx/.pptx: whole file, selected passages, or flagged text.

- Trust score: 67/100 (medium)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-19

## Components

- npm · `humanpen-mcp`: 67/100 (this document), [markdown](https://verifymcp.io/servers/humanpen-humanpen-mcp/humanpen-mcp.md), [page](https://verifymcp.io/servers/humanpen-humanpen-mcp/humanpen-mcp)

## Channel facts

- Registry: `npm`
- Package: `humanpen-mcp`
- Version: `1.4.3`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-19.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 30 of 96 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 6 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1472 tokens (~184/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add humanpen-humanpen-mcp -- npx -y humanpen-mcp
```

### Codex

```bash
codex mcp add humanpen-humanpen-mcp -- npx -y humanpen-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "humanpen-humanpen-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "humanpen-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add humanpen-humanpen-mcp --command npx --arg -y --arg humanpen-mcp
```

### Hermes

```yaml
mcp_servers:
  humanpen-humanpen-mcp:
    command: "npx"
    args: ["-y", "humanpen-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "humanpen-humanpen-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "humanpen-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-12 (score 67, +44)

- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: excellent
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100
- [functional] Package version: 1.4.1 → 1.4.3
- [functional] Package version: 1.4.1 → 1.4.2

### 2026-08-11 (score 23)

First indexed and scored.

## MCP tools (8)

### `humanize_document` (~414 tokens)

Humanize a document

Rewrite a .docx or .pptx so it reads as human-written and scores lower on AI detectors, keeping meaning, citations, tables and layout. Optionally pass a Turnitin/iThenticate AI report to rewrite only the passages it flagged. If a fresh report still flags the result, run this tool again on the rewritten file with that new report - only the still-flagged passages are touched, and balanced remains the right strategy for the second pass. Saves the result next to the source and returns its path. COSTS CREDITS at 100 per 1,000 words processed (10 minimum) - say so and get agreement first.

Input parameters:

- `document_path` (string, required): Absolute path to the .docx or .pptx to rewrite
- `instructions` (string): Extra requirements for this job
- `max_words` (integer): Upper word bound for the rewritten document (optional; omit for no limit). Same experimental caveat and exclusivity as min_words.
- `min_words` (integer): Lower word bound for the rewritten document (optional; omit for no limit). Experimental - a word limit noticeably weakens AI-rate reduction, so omit unless the user requires a length. Cannot combine…
- `output_path` (string): Where to write the result; defaults to beside the source
- `report_path` (string): Path to a Turnitin/iThenticate AI report PDF; only its flagged passages are rewritten
- `segments` (array): Per-passage word control (optional): each item is a flagged passage plus its own min_words/max_words. Get the passage texts from read_detection_report and pass report_path alongside so the report def…
- `strategy` (string): Rewriting intensity; balanced is the usual first choice, aggressive rewrites more heavily
- `wait_seconds` (number): How long to wait before returning a job id (default 55)

### `free_rehumanize` (~278 tokens)

Re-humanize a job's still-flagged passages for free

Continue a finished humanize job for FREE. Upload a fresh detection report for that job's result; only the passages it still flags are rewritten, at no credit cost. The server enforces strict limits: one free continuation per job, a per-day cap, the report must be of THAT job's own result (>=90% match) and show >=20% AI, and the result must still exist (kept ~7 days). If a limit is not met it returns a clear reason - relay it and stop; do not retry or silently fall back to a paid job. Pass the job_id a prior humanize_document (or check_job) returned.

Input parameters:

- `instructions` (string): Extra requirements for this job
- `job_id` (string, required): The finished humanize job to continue (its job_id from humanize_document/check_job)
- `output_path` (string): Where to write the result; defaults to beside the report
- `report_path` (string, required): Absolute path to the fresh Turnitin/iThenticate report for that job's result
- `segments` (array): Per-passage word control for the still-flagged passages (optional), same shape and experimental caveat as humanize_document.segments
- `wait_seconds` (number): How long to wait before returning a job id (default 55)

### `fix_citations` (~189 tokens)

Convert citation format

Rewrite a .docx's in-text citations and reference list into one target style, leaving the body text alone. Saves the result next to the source and returns its path. COSTS CREDITS at 100 per 1,000 words processed (10 minimum) - say so and get agreement first.

Input parameters:

- `document_path` (string, required): Absolute path to the .docx
- `instructions` (string): Extra requirements for this job
- `output_path` (string): Where to write the result; defaults to beside the source
- `style` (string, required): Target style: apa7, mla9, harvard, chicago_author_date, chicago_notes, ieee, vancouver, gbt7714, gbt7714_author_year, ama, acs, or oscola
- `wait_seconds` (number): How long to wait before returning a job id (default 55)

### `condense_document` (~149 tokens)

Condense a document

Shorten a .docx to a target word count, keeping meaning, structure and citations. Saves the result next to the source and returns its path. COSTS CREDITS at 100 per 1,000 words processed (10 minimum) - say so and get agreement first.

Input parameters:

- `document_path` (string, required): Absolute path to the .docx
- `instructions` (string): Extra requirements for this job
- `max_words` (integer, required): Target word count for the whole document
- `output_path` (string): Where to write the result; defaults to beside the source
- `wait_seconds` (number): How long to wait before returning a job id (default 55)

### `translate_document` (~197 tokens)

Translate a document

Translate a document into another language while keeping its layout, tables, images and formulas. Takes .docx, .pdf, .pptx, .xlsx, .epub, .html and .txt. Saves the result next to the source and returns its path. COSTS CREDITS at 100 per 1,000 words processed (10 minimum) - say so and get agreement first.

Input parameters:

- `document_path` (string, required): Absolute path to the document
- `output_path` (string): Where to write the result; defaults to beside the source
- `source_lang` (string): Source language, or auto to detect it (the default)
- `target_lang` (string, required): Target language: zh, en, zh-tw, ja, ko, es, fr, pt, ru, de, pl or it
- `wait_seconds` (number): How long to wait before returning a job id (default 55)

### `read_detection_report` (~111 tokens)

Read an AI-detection report

Read a Turnitin or iThenticate AI Writing report PDF: returns the overall AI percentage and the flagged passages. Free - reads the file without starting a job. Pass the same report to humanize_document to rewrite only what was flagged.

Input parameters:

- `include_segments` (boolean): Include the flagged passage texts, which can be long (default false)
- `report_path` (string, required): Absolute path to the report PDF
- `type` (string): Which product exported it; omit to identify it from the file

### `check_job` (~85 tokens)

Check a job

Look up a job by id, and download its result if it has finished. Use this after a tool returned before the job was done.

Input parameters:

- `document_path` (string): The original document, so a downloaded result can be named after it
- `job_id` (string, required): The job id an earlier call returned
- `output_path` (string): Where to write the result

### `get_credit_balance` (~49 tokens)

Check the credit balance

How many credits the account has. 1,000 words costs 100 credits, charged on the words actually processed, with a 10-credit minimum per job. Worth checking before a large document.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/humanpen-humanpen-mcp/humanpen-mcp#diagnostics

## Score history

- 2026-08-19: 67
- 2026-08-18: 67
- 2026-08-17: 67
- 2026-08-16: 67
- 2026-08-15: 67
- 2026-08-14: 67
- 2026-08-13: 67
- 2026-08-12: 67
- 2026-08-11: 23

## Links

- npm package: https://www.npmjs.com/package/humanpen-mcp
- Socket report: https://socket.dev/npm/package/humanpen-mcp
- Repository: https://github.com/humanpen/humanpen-mcp
- Changelog RSS feed: https://verifymcp.io/servers/humanpen-humanpen-mcp/humanpen-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/humanpen-humanpen-mcp/humanpen-mcp.json
- HTML version of this page: https://verifymcp.io/servers/humanpen-humanpen-mcp/humanpen-mcp
