Task402 PDF Tools

Paid PDF generation and deterministic tools for search, citations, comparison, and page rendering.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
80%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,442Tokens (tool definitions)
~1.6 KBTypical response size
Moderate attention impact (1.91% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "x402-docs": {
      "url": "https://task402.xyz/mcp"
    }
  }
}

Remote endpoints

https://task402.xyz/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡generate_pdf(title, markdown, idempotency_key)

Create a professionally formatted, paginated PDF from Markdown. Returns a short-lived download capability.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "markdown": {
      "type": "string",
      "minLength": 1,
      "maxLength": 245760
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128
    }
  },
  "required": [
    "title",
    "markdown",
    "idempotency_key"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_pdf_job(job_id, capability)

Read the status for a PDF job using its unguessable capability.

Input Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "capability": {
      "type": "string",
      "minLength": 40,
      "maxLength": 64
    }
  },
  "required": [
    "job_id",
    "capability"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢inspect_pdf(document_id, capability)

Inspect a previously uploaded PDF using its document capability. Upload binary PDFs through POST /v1/documents; persist both the returned capability and recovery key securely.

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "capability": {
      "type": "string",
      "minLength": 40,
      "maxLength": 64
    }
  },
  "required": [
    "document_id",
    "capability"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_document_map(document_id, capability, page)

Return page labels, sizes, native-text previews, bookmarks, and sparse-text warnings. Set page to include up to 500 positioned text blocks for that page.

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "capability": {
      "type": "string",
      "minLength": 40,
      "maxLength": 64
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "document_id",
    "capability"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_document(document_id, capability, query, page, limit)

Find exact normalized text matches in native PDF text (no OCR). Results and excerpts are bounded.

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "capability": {
      "type": "string",
      "minLength": 40,
      "maxLength": 64
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "required": [
    "document_id",
    "capability",
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢read_document(document_id, capability, pages)

Read extractable native text from up to 10 selected pages. Output is limited to 32,000 characters; scanned pages need OCR, which is not provided.

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "capability": {
      "type": "string",
      "minLength": 40,
      "maxLength": 64
    },
    "pages": {
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 1,
        "maximum": 9007199254740991
      }
    }
  },
  "required": [
    "document_id",
    "capability",
    "pages"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢verify_document_citation(document_id, capability, page, quote)

Check that a quote of 5 to 500 characters appears on the stated page in extracted native text. This does not establish truth or visual reading order.

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "capability": {
      "type": "string",
      "minLength": 40,
      "maxLength": 64
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "quote": {
      "type": "string",
      "minLength": 5,
      "maxLength": 500
    }
  },
  "required": [
    "document_id",
    "capability",
    "page",
    "quote"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢compare_pdfs(left_document_id, left_capability, right_document_id, right_capability)

Compare page count and normalized native text between two separately authorized uploaded PDFs. Image-only and visual differences are not compared.

Input Schema

{
  "type": "object",
  "properties": {
    "left_document_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "left_capability": {
      "type": "string",
      "minLength": 40,
      "maxLength": 64
    },
    "right_document_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "right_capability": {
      "type": "string",
      "minLength": 40,
      "maxLength": 64
    }
  },
  "required": [
    "left_document_id",
    "left_capability",
    "right_document_id",
    "right_capability"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢validate_pdf_text(document_id, capability, page_count, required_text)

Check that the PDF parses, has an optional expected page count, and contains required text. This does not perform PDF/A, signature, visual, or OCR validation.

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "capability": {
      "type": "string",
      "minLength": 40,
      "maxLength": 64
    },
    "page_count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "required_text": {
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 500
      }
    }
  },
  "required": [
    "document_id",
    "capability"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢render_pdf_page_region(document_id, capability, page, x, y, ...)

Render one authorized PDF page crop as PNG. x/y/width/height are normalized 0-1 page fractions; output is bounded to four million pixels.

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "capability": {
      "type": "string",
      "minLength": 40,
      "maxLength": 64
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "x": {
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "y": {
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "width": {
      "type": "number",
      "minimum": 0.001,
      "maximum": 1
    },
    "height": {
      "type": "number",
      "minimum": 0.001,
      "maximum": 1
    },
    "scale": {
      "type": "number",
      "minimum": 0.5,
      "maximum": 3
    }
  },
  "required": [
    "document_id",
    "capability",
    "page",
    "x",
    "y",
    "width",
    "height"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools