APITemplate.io MCP by usefulapi

Generate PDFs and images with APITemplate.io from templates, HTML, Markdown or a URL.

Sollte ich dies verwenden

Qualität und Sicherheit

B
Qualität der Beschreibung
96%
Vollständigkeit des Schemas
91%
Qualität der Benennung
74%
Risiko der Vergiftung
60%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (8)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'apitemplate_create_pdf_from_html' description contains placeholder textin apitemplate_create_pdf_from_html
  • MEDIUMTool 'apitemplate_create_pdf_from_markdown' description contains placeholder textin apitemplate_create_pdf_from_markdown
  • LOWTool 'apitemplate_create_pdf_from_html' name length outside 3-30 rangein apitemplate_create_pdf_from_html
  • LOWTool 'apitemplate_create_pdf_from_markdown' name length outside 3-30 rangein apitemplate_create_pdf_from_markdown
  • LOWTool 'apitemplate_create_pdf_from_url' name length outside 3-30 rangein apitemplate_create_pdf_from_url
  • INFOTool description contains placeholder or incomplete textin apitemplate_create_pdf_from_html
  • INFOTool description contains placeholder or incomplete textin apitemplate_create_pdf_from_markdown

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~4,491Tokens (Tool-Definitionen)
~3.8 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.51% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "apitemplate": {
      "url": "https://apitemplate.usefulapi.io/mcp"
    }
  }
}

Remote-Endpunkte

https://apitemplate.usefulapi.io/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (10)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢apitemplate_get_account

The APITemplate.io account behind this key: plan, subscription status and period, and the quota: api_quota, api_used, api_remaining (generations), plus the template quota and count. Check api_remaining before generating. GET /v2/account-information.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢apitemplate_list_templates(limit, offset, format, group_name, template_id)

List the templates of the account (PDF and image): template_id, name, format (PDF or JPEG), status, group and dates. Use the template_id with the create tools. Read-only; templates are never changed. GET /v2/list-templates.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Number of records, 1-500 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "offset": {
      "description": "Records to skip (default 0). Next page: offset + limit.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "format": {
      "description": "Only PDF or only image (JPEG) templates.",
      "type": "string",
      "enum": [
        "PDF",
        "JPEG"
      ]
    },
    "group_name": {
      "description": "Only templates of this group.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "template_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{4,64}$",
      "description": "The template id (apitemplate_list_templates, or the web console, Manage Templates)."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢apitemplate_get_template(template_id)

One PDF template's HTML body, CSS and print settings (the vendor marks this endpoint experimental, so it can answer with an error for some accounts or image templates). Read-only. GET /v2/get-template.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "template_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{4,64}$",
      "description": "The template id (apitemplate_list_templates, or the web console, Manage Templates)."
    }
  },
  "required": [
    "template_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢apitemplate_list_objects(limit, offset, template_id, transaction_type)

List the PDFs and images generated so far, newest first: transaction_ref, template_id, type (PDF, JPEG or MERGE), your meta reference, the hosted file URLs (primary_url, secondary_url for the PNG) and dates. Files already deleted or expired have deletion_status set. Read-only. GET /v2/list-objects.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Number of records, 1-500 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "offset": {
      "description": "Records to skip (default 0). Next page: offset + limit.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "template_id": {
      "description": "Only files generated from this template.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{4,64}$"
    },
    "transaction_type": {
      "description": "Only this kind of file.",
      "type": "string",
      "enum": [
        "PDF",
        "JPEG",
        "MERGE"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡apitemplate_create_pdf(template_id, data, filename, expiration, meta, ...)

WRITE: renders one PDF from a saved PDF template and your JSON data (the keys the template uses, e.g. invoice_number, items), and returns the hosted download_url (never the file bytes). Synchronous. COST: uses 1 generation of your APITemplate.io plan quota per call (see apitemplate_get_account). Do not retry or repeat it unless needed; every call is counted. POST /v2/create-pdf (export_type=json).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "template_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{4,64}$",
      "description": "The template id (apitemplate_list_templates, or the web console, Manage Templates)."
    },
    "data": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "JSON data merged into the template, e.g. {\"invoice_number\":\"INV-1\",\"total\":42}. Keys depend on the template."
    },
    "filename": {
      "description": "Custom file name ending in .pdf (default: a random UUID).",
      "type": "string",
      "minLength": 1,
      "maxLength": 150,
      "pattern": "^[\\w .()-]+\\.pdf$"
    },
    "expiration": {
      "description": "Minutes until the hosted file expires: 0 = keep permanently (default), or 1-10080.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10080
    },
    "meta": {
      "description": "Your own reference id for this file; it shows up in apitemplate_list_objects.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "output_html": {
      "description": "Also return html_url, the rendered HTML.",
      "type": "boolean"
    },
    "generation_delay": {
      "description": "Milliseconds to wait before rendering (0-30000), for pages that load content late.",
      "type": "integer",
      "minimum": 0,
      "maximum": 30000
    }
  },
  "required": [
    "template_id",
    "data"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡apitemplate_create_image(template_id, overrides, output_image_type, expiration, meta, ...)

WRITE: renders one image (JPEG and PNG) from a saved image template, changing the named layers with overrides (e.g. [{"name":"text_1","text":"Hello"},{"name":"image_1","src":"https://..."}]), and returns the hosted download URLs (never the file bytes). COST: uses 1 generation of your APITemplate.io plan quota per call (see apitemplate_get_account). Do not retry or repeat it unless needed; every call is counted. POST /v2/create-image.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "template_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{4,64}$",
      "description": "The template id (apitemplate_list_templates, or the web console, Manage Templates)."
    },
    "overrides": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "Layer name in the template, e.g. text_1."
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": {}
      },
      "description": "Layer changes: each item has the layer 'name' and the properties to set (text, src, color, textBackgroundColor ...)."
    },
    "output_image_type": {
      "description": "Which formats to render (default all).",
      "type": "string",
      "enum": [
        "all",
        "jpegOnly",
        "pngOnly"
      ]
    },
    "expiration": {
      "description": "Minutes until the hosted file expires: 0 = keep permanently (default), or 1-10080.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10080
    },
    "meta": {
      "description": "Your own reference id for this file; it shows up in apitemplate_list_objects.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "generation_delay": {
      "description": "Milliseconds to wait before rendering (0-30000), for pages that load content late.",
      "type": "integer",
      "minimum": 0,
      "maximum": 30000
    }
  },
  "required": [
    "template_id",
    "overrides"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡apitemplate_create_pdf_from_html(body, css, data, settings, filename, ...)

WRITE: renders one PDF from HTML (Jinja2 placeholders like {{name}} are filled from data), without a saved template, and returns the hosted download_url (never the file bytes). COST: uses 1 generation of your APITemplate.io plan quota per call (see apitemplate_get_account). Do not retry or repeat it unless needed; every call is counted. POST /v2/create-pdf-from-html (export_type=json).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "body": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000000,
      "description": "HTML body; may use Jinja2 syntax such as {{name}}."
    },
    "css": {
      "description": "CSS including the <style> tag.",
      "type": "string",
      "maxLength": 200000
    },
    "data": {
      "description": "Values for the placeholders in body, e.g. {\"name\":\"Jo\"}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "settings": {
      "description": "PDF print settings.",
      "type": "object",
      "properties": {
        "paper_size": {
          "description": "Paper size; 'custom' needs custom_width and custom_height.",
          "type": "string",
          "enum": [
            "Letter",
            "Legal",
            "Tabloid",
            "Ledger",
            "A0",
            "A1",
            "A2",
            "A3",
            "A4",
            "A5",
            "A6",
            "custom"
          ]
        },
        "custom_width": {
          "description": "Width for paper_size custom, with a unit (mm, px or cm), e.g. 210mm.",
          "type": "string",
          "maxLength": 20
        },
        "custom_height": {
          "description": "Height for paper_size custom, with a unit (mm, px or cm), e.g. 297mm.",
          "type": "string",
          "maxLength": 20
        },
        "orientation": {
          "description": "1 = portrait, 2 = landscape.",
          "type": "string",
          "enum": [
            "1",
            "2"
          ]
        },
        "margin_top": {
          "description": "Top margin, e.g. '40' (the vendor reference says mm).",
          "type": "string",
          "maxLength": 10
        },
        "margin_right": {
          "description": "Right margin.",
          "type": "string",
          "maxLength": 10
        },
        "margin_bottom": {
          "description": "Bottom margin.",
          "type": "string",
          "maxLength": 10
        },
        "margin_left": {
          "description": "Left margin.",
          "type": "string",
          "maxLength": 10
        },
        "print_background": {
          "description": "1 = print background colors and images.",
          "type": "string",
          "enum": [
            "0",
            "1"
          ]
        },
        "displayHeaderFooter": {
          "description": "Show the header and footer.",
          "type": "boolean"
        },
        "custom_header": {
          "description": "Header HTML (with its CSS).",
          "type": "string",
          "maxLength": 20000
        },
        "custom_footer": {
          "description": "Footer HTML (with its CSS).",
          "type": "string",
          "maxLength": 20000
        },
        "header_font_size": {
          "description": "Header font size, e.g. '9px'.",
          "type": "string",
          "maxLength": 10
        },
        "rendering_engine_version": {
          "description": "Rendering engine: 153 (default) or 97 (legacy).",
          "type": "string",
          "enum": [
            "97",
            "153"
          ]
        },
        "preferCSSPageSize": {
          "description": "Let the CSS @page rule set page size and orientation (engine 153 only).",
          "type": "boolean"
        }
      }
    },
    "filename": {
      "description": "Custom file name ending in .pdf (default: a random UUID).",
      "type": "string",
      "minLength": 1,
      "maxLength": 150,
      "pattern": "^[\\w .()-]+\\.pdf$"
    },
    "expiration": {
      "description": "Minutes until the hosted file expires: 0 = keep permanently (default), or 1-10080.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10080
    },
    "meta": {
      "description": "Your own reference id for this file; it shows up in apitemplate_list_objects.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "generation_delay": {
      "description": "Milliseconds to wait before rendering (0-30000), for pages that load content late.",
      "type": "integer",
      "minimum": 0,
      "maximum": 30000
    }
  },
  "required": [
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡apitemplate_create_pdf_from_markdown(body, css, data, settings, filename, ...)

WRITE: renders one PDF from Markdown (Jinja2 placeholders like {{lang}} are filled from data) and returns the hosted download_url (never the file bytes). COST: uses 1 generation of your APITemplate.io plan quota per call (see apitemplate_get_account). Do not retry or repeat it unless needed; every call is counted. POST /v2/create-pdf-from-markdown (export_type=json).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "body": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000000,
      "description": "Markdown text; may use Jinja2 syntax such as {{lang}}."
    },
    "css": {
      "description": "CSS including the <style> tag.",
      "type": "string",
      "maxLength": 200000
    },
    "data": {
      "description": "Values for the placeholders in body.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "settings": {
      "description": "PDF print settings.",
      "type": "object",
      "properties": {
        "paper_size": {
          "description": "Paper size; 'custom' needs custom_width and custom_height.",
          "type": "string",
          "enum": [
            "Letter",
            "Legal",
            "Tabloid",
            "Ledger",
            "A0",
            "A1",
            "A2",
            "A3",
            "A4",
            "A5",
            "A6",
            "custom"
          ]
        },
        "custom_width": {
          "description": "Width for paper_size custom, with a unit (mm, px or cm), e.g. 210mm.",
          "type": "string",
          "maxLength": 20
        },
        "custom_height": {
          "description": "Height for paper_size custom, with a unit (mm, px or cm), e.g. 297mm.",
          "type": "string",
          "maxLength": 20
        },
        "orientation": {
          "description": "1 = portrait, 2 = landscape.",
          "type": "string",
          "enum": [
            "1",
            "2"
          ]
        },
        "margin_top": {
          "description": "Top margin, e.g. '40' (the vendor reference says mm).",
          "type": "string",
          "maxLength": 10
        },
        "margin_right": {
          "description": "Right margin.",
          "type": "string",
          "maxLength": 10
        },
        "margin_bottom": {
          "description": "Bottom margin.",
          "type": "string",
          "maxLength": 10
        },
        "margin_left": {
          "description": "Left margin.",
          "type": "string",
          "maxLength": 10
        },
        "print_background": {
          "description": "1 = print background colors and images.",
          "type": "string",
          "enum": [
            "0",
            "1"
          ]
        },
        "displayHeaderFooter": {
          "description": "Show the header and footer.",
          "type": "boolean"
        },
        "custom_header": {
          "description": "Header HTML (with its CSS).",
          "type": "string",
          "maxLength": 20000
        },
        "custom_footer": {
          "description": "Footer HTML (with its CSS).",
          "type": "string",
          "maxLength": 20000
        },
        "header_font_size": {
          "description": "Header font size, e.g. '9px'.",
          "type": "string",
          "maxLength": 10
        },
        "rendering_engine_version": {
          "description": "Rendering engine: 153 (default) or 97 (legacy).",
          "type": "string",
          "enum": [
            "97",
            "153"
          ]
        },
        "preferCSSPageSize": {
          "description": "Let the CSS @page rule set page size and orientation (engine 153 only).",
          "type": "boolean"
        }
      }
    },
    "filename": {
      "description": "Custom file name ending in .pdf (default: a random UUID).",
      "type": "string",
      "minLength": 1,
      "maxLength": 150,
      "pattern": "^[\\w .()-]+\\.pdf$"
    },
    "expiration": {
      "description": "Minutes until the hosted file expires: 0 = keep permanently (default), or 1-10080.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10080
    },
    "meta": {
      "description": "Your own reference id for this file; it shows up in apitemplate_list_objects.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "generation_delay": {
      "description": "Milliseconds to wait before rendering (0-30000), for pages that load content late.",
      "type": "integer",
      "minimum": 0,
      "maximum": 30000
    }
  },
  "required": [
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡apitemplate_create_pdf_from_url(url, settings, filename, expiration, meta, ...)

WRITE: APITemplate.io opens one public web page URL and prints it to a PDF, and returns the hosted download_url (never the file bytes). The page is fetched by APITemplate.io, not by this server; pages that need a login cannot be printed. COST: uses 1 generation of your APITemplate.io plan quota per call (see apitemplate_get_account). Do not retry or repeat it unless needed; every call is counted. POST /v2/create-pdf-from-url (export_type=json).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 2048,
      "description": "The public http(s) URL of the page to print."
    },
    "settings": {
      "description": "PDF print settings.",
      "type": "object",
      "properties": {
        "paper_size": {
          "description": "Paper size; 'custom' needs custom_width and custom_height.",
          "type": "string",
          "enum": [
            "Letter",
            "Legal",
            "Tabloid",
            "Ledger",
            "A0",
            "A1",
            "A2",
            "A3",
            "A4",
            "A5",
            "A6",
            "custom"
          ]
        },
        "custom_width": {
          "description": "Width for paper_size custom, with a unit (mm, px or cm), e.g. 210mm.",
          "type": "string",
          "maxLength": 20
        },
        "custom_height": {
          "description": "Height for paper_size custom, with a unit (mm, px or cm), e.g. 297mm.",
          "type": "string",
          "maxLength": 20
        },
        "orientation": {
          "description": "1 = portrait, 2 = landscape.",
          "type": "string",
          "enum": [
            "1",
            "2"
          ]
        },
        "margin_top": {
          "description": "Top margin, e.g. '40' (the vendor reference says mm).",
          "type": "string",
          "maxLength": 10
        },
        "margin_right": {
          "description": "Right margin.",
          "type": "string",
          "maxLength": 10
        },
        "margin_bottom": {
          "description": "Bottom margin.",
          "type": "string",
          "maxLength": 10
        },
        "margin_left": {
          "description": "Left margin.",
          "type": "string",
          "maxLength": 10
        },
        "print_background": {
          "description": "1 = print background colors and images.",
          "type": "string",
          "enum": [
            "0",
            "1"
          ]
        },
        "displayHeaderFooter": {
          "description": "Show the header and footer.",
          "type": "boolean"
        },
        "custom_header": {
          "description": "Header HTML (with its CSS).",
          "type": "string",
          "maxLength": 20000
        },
        "custom_footer": {
          "description": "Footer HTML (with its CSS).",
          "type": "string",
          "maxLength": 20000
        },
        "header_font_size": {
          "description": "Header font size, e.g. '9px'.",
          "type": "string",
          "maxLength": 10
        },
        "rendering_engine_version": {
          "description": "Rendering engine: 153 (default) or 97 (legacy).",
          "type": "string",
          "enum": [
            "97",
            "153"
          ]
        },
        "preferCSSPageSize": {
          "description": "Let the CSS @page rule set page size and orientation (engine 153 only).",
          "type": "boolean"
        }
      }
    },
    "filename": {
      "description": "Custom file name ending in .pdf (default: a random UUID).",
      "type": "string",
      "minLength": 1,
      "maxLength": 150,
      "pattern": "^[\\w .()-]+\\.pdf$"
    },
    "expiration": {
      "description": "Minutes until the hosted file expires: 0 = keep permanently (default), or 1-10080.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10080
    },
    "meta": {
      "description": "Your own reference id for this file; it shows up in apitemplate_list_objects.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "generation_delay": {
      "description": "Milliseconds to wait before rendering (0-30000), for pages that load content late.",
      "type": "integer",
      "minimum": 0,
      "maximum": 30000
    }
  },
  "required": [
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡apitemplate_merge_pdfs(urls, expiration, meta)

WRITE: joins 2-20 PDFs (public http(s) URLs, in the given order, e.g. earlier download_url values) into one PDF and returns the hosted primary_url (never the file bytes). The source files are not changed or deleted. COST: uses 1 generation of your APITemplate.io plan quota per call (see apitemplate_get_account). Do not retry or repeat it unless needed; every call is counted. POST /v2/merge-pdfs (export_type=json).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "urls": {
      "minItems": 2,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 2048
      },
      "description": "The PDF URLs to join, in order."
    },
    "expiration": {
      "description": "Minutes until the hosted file expires: 0 = keep permanently (default), or 1-43200.",
      "type": "integer",
      "minimum": 0,
      "maximum": 43200
    },
    "meta": {
      "description": "Your own reference id for this file; it shows up in apitemplate_list_objects.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "urls"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet10 Tools