Skip to main content
Glama

Server Details

PDF, image, video, OCR, screenshot, SQL, QR and text tools for agents. No API key, no signup.

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
88.8% over 60 days
Last Tested
Transport
Streamable HTTP
URL
ChatGPT
–
Claude
–

TDQS

A4.3/5.0

Scored across 28 tools

Disambiguation5/5

Every tool has a clearly distinct purpose, and the descriptions explicitly cross-reference sibling tools to prevent confusion (e.g., parse_document versus extract_text_ocr, fetch_page_metadata versus fetch_site_logo, generate_text versus draft_email). The encode/decode and generate_* clusters are differentiated by output type and use case.

Naming Consistency4/5

The vast majority of tools follow a consistent snake_case verb_noun pattern: decode_base64, compress_pdf, fetch_site_logo, split_pdf. The only notable deviation is images_to_pdf, which reads as a noun phrase rather than a verb-led command, so the naming is highly consistent but not perfect.

Tool Count2/5

At 28 tools, this exceeds the 25-tool threshold that the rubric flags as too many, even though the server's broad utility purpose partially justifies the size. The tools are individually useful, but the surface is heavy for an agent to scan and select from efficiently.

Completeness3/5

The toolkit covers many utility clusters well, but there are notable dead ends: parse_document directs scanned PDFs to extract_text_ocr while that tool only accepts images, and there is no PDF-to-image conversion, QR decoding, or short-link management. These are workable gaps for a general-purpose server, but they will cause agent failures in specific workflows.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Addedimages_to_pdf
  2. 4 tool updates
    • Changedfetch_page_metadata1 field changed
      • changedInput schema / properties / url / description
        Previous value: -"The page to read, e.g. https://stripe.com/pricing. A bare domain is accepted and assumed to be https."New value: +"The page to read, e.g. https://stripe.com/pricing. A bare domain is accepted and assumed to be https. It is the cache key verbatim, so two spellings of the same page are fetched twice."
    • Changedfetch_site_logo2 fields changed
      • changedInput schema / properties / rehost / description
        Previous value: -"Copy the top candidates to razi.pro's CDN and expose them as `rehostedUrl` (default true). Prefer these for downloading or embedding: many origins block hotlinking or omit CORS headers, so the original URL can fail in a browser. Set false to skip the copy and get origin URLs only."New value: +"Copy the top 3 fetchable candidates to razi.pro's CDN and expose them as `rehostedUrl` (default true). Prefer these for downloading or embedding: many origins block hotlinking or omit CORS headers, so the original URL can fail in a browser. Set false to skip the copy and get origin URLs only. A copy that fails is dropped silently, leaving that candidate with its origin URL only, and the two settings are cached separately."
      • changedInput schema / properties / url / description
        Previous value: -"The website to inspect, e.g. https://stripe.com. A bare domain is accepted and assumed to be https."New value: +"The website to inspect, e.g. https://stripe.com. A bare domain is accepted and assumed to be https. Up to 3 redirects are followed; more is refused with 400."
    • Changedscreenshot_url7 fields changed
      • changedInput schema / properties / darkMode / description
        Previous value: -"Render with prefers-color-scheme: dark. Has no effect on sites that do not implement a dark theme."New value: +"Render with prefers-color-scheme: dark. Default false. Has no effect on sites that do not implement a dark theme."
      • changedInput schema / properties / delayMs / description
        Previous value: -"Extra wait after load, in milliseconds (max 5000). Use for pages with entrance animations or slow client-side rendering."New value: +"Extra wait after load, in milliseconds. Default 0, clamped to 0-5000. Use for pages with entrance animations or slow client-side rendering; it comes out of the same 50-second render budget."
      • changedInput schema / properties / format / description
        Previous value: -"Image format (default webp)"New value: +"Image format. Default webp; an unrecognised value also falls back to webp."
      • changedInput schema / properties / fullPage / description
        Previous value: -"Capture the entire scrollable page rather than just the viewport. Pages taller than 12000px are truncated at 12000px, which is a browser encoding limit, so a very long article returns only its top portion."New value: +"Capture the entire scrollable page rather than just the viewport. Default false. Pages taller than 12000px are truncated at 12000px, which is a browser encoding limit, so a very long article returns only its top portion."
      • changedInput schema / properties / height / description
        Previous value: -"Viewport height in pixels (200-4320, default 800). Ignored when fullPage is true."New value: +"Viewport height in pixels. Default 800; values outside 200-4320 are clamped. Ignored when fullPage is true, where the returned height is null."
      • changedInput schema / properties / url / description
        Previous value: -"The page to capture. Must be publicly reachable over http(s)."New value: +"The page to capture. Must be publicly reachable over http or https; the scheme is required. Part of the cache key, so two spellings of the same page render twice."
      • changedInput schema / properties / width / description
        Previous value: -"Viewport width in pixels (200-3840, default 1280)"New value: +"Viewport width in pixels. Default 1280; values outside 200-3840 are clamped into that range and fractions are truncated."
    • Changedshorten_url2 fields changed
      • changedInput schema / properties / customCode / description
        Previous value: -"Vanity code to use as the last path segment, e.g. 'launch' for razi.pro/launch. 3-32 characters, letters, digits, hyphen and underscore only. Fails with 409 if already taken and 400 if it collides with a reserved site path such as 'api', 'blog' or 'tools'. Omit to get a random 8-character code."New value: +"Vanity code to use as the last path segment, e.g. 'launch' for razi.pro/launch. 3-32 characters, letters, digits, hyphen and underscore only. Fails with 409 if already taken and 400 if it is malformed or collides with a reserved site path such as 'api', 'blog' or 'tools'. Omit to get a random 8-character code drawn from an alphabet with no 0, O, 1 or l."
      • changedInput schema / properties / url / description
        Previous value: -"The absolute destination URL to redirect to, including the scheme. Only http:// and https:// are accepted; anything else is rejected with 400."New value: +"The absolute destination URL to redirect to, including the scheme. Only http:// and https:// are accepted; anything that is not an absolute URL in one of those schemes is rejected with 400. It is normalised by the URL parser before being stored, so the redirect target may differ cosmetically from what you sent."
  3. 23 tool updates
    • Changedcalculate_percentage3 fields changed
      • changedInput schema / properties / operation / description
        Previous value: -"Calculation type"New value: +"Which calculation to run. 'of' = value1 percent OF value2. 'increase' = value1 raised BY value2 percent. 'decrease' = value1 reduced BY value2 percent. 'change' = the percentage change going FROM value1 TO value2, which errors when value1 is 0. Required; any other value is rejected."
      • changedInput schema / properties / value1 / description
        Previous value: -"First value"New value: +"For 'of', the percentage itself (25 means 25%). For 'increase' and 'decrease', the base amount being adjusted. For 'change', the original value. Must be a finite number."
      • changedInput schema / properties / value2 / description
        Previous value: -"Second value"New value: +"For 'of', the amount the percentage is taken from. For 'increase' and 'decrease', the percentage to apply (10 means 10%). For 'change', the new value. Must be a finite number."
    • Changedcompare_text2 fields changed
      • changedInput schema / properties / text1 / description
        Previous value: -"First text"New value: +"The baseline text, reported as `before` in each change."
      • changedInput schema / properties / text2 / description
        Previous value: -"Second text"New value: +"The revised text, reported as `after` in each change."
    • Changedcompress_image6 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"Output format"New value: +"Output container/codec. Default webp; an unrecognised value also falls back to webp. Transparency survives in webp, png and avif but not jpeg."
      • changedInput schema / properties / grayscale / description
        Previous value: -"Convert image to grayscale"New value: +"Drop colour before encoding. Default false."
      • changedInput schema / properties / height / description
        Previous value: -"Target height in pixels (optional)"New value: +"Target height in pixels. Give only one of width/height to scale the other proportionally. Omit both to keep the original dimensions."
      • changedInput schema / properties / keepAspectRatio / description
        Previous value: -"Maintain aspect ratio when resizing. Set false for square crop."New value: +"Only has an effect when BOTH width and height are given. Default false, which centre-crops the image to fill the box exactly. Set true to fit the whole image inside the box instead, so the result may be smaller than the box in one dimension."
      • changedInput schema / properties / quality / description
        Previous value: -"Quality from 0.1 to 1.0, default 0.9"New value: +"Encoder quality as a fraction from 0.1 to 1.0, scaled to the encoder's 0-100 range. Default 0.9. Higher means larger and closer to the original."
      • changedInput schema / properties / width / description
        Previous value: -"Target width in pixels (optional)"New value: +"Target width in pixels. Give only one of width/height to scale the other proportionally. Omit both to keep the original dimensions. Enlarging is allowed."
    • Removedcompress_video
    • Changeddecode_base641 field changed
      • changedInput schema / properties / encoded / description
        Previous value: -"Base64 encoded text"New value: +"Standard Base64 text. Surrounding whitespace and missing '=' padding are tolerated; the URL-safe alphabet (- and _) is not."
    • Changeddecode_jwt1 field changed
      • changedInput schema / properties / token / description
        Previous value: -"JWT token to decode"New value: +"The full JWT: three base64url segments separated by dots (header.payload.signature). Surrounding whitespace is trimmed; a 'Bearer ' prefix is not stripped and will fail. Anything without exactly three segments is rejected."
    • Changeddecode_url1 field changed
      • changedInput schema / properties / encoded / description
        Previous value: -"URL encoded string"New value: +"A percent-encoded string, such as one query-string value taken from a URL. Every %XX sequence must be well formed UTF-8 or the call fails."
    • Changeddraft_email2 fields changed
      • changedInput schema / properties / prompt / description
        Previous value: -"Email purpose or content description"New value: +"What the email needs to say: purpose, recipient context, and any facts to include. A sentence or two is enough. Required and must not be blank."
      • changedInput schema / properties / tone / description
        Previous value: -"Email tone"New value: +"Register of the writing. Default formal. Passed to the model as an instruction, so it shapes wording rather than enforcing a fixed template."
    • Changedencode_base641 field changed
      • changedInput schema / properties / text / description
        Previous value: -"Text to encode"New value: +"The plain text to encode, interpreted as UTF-8. Must be a string; raw binary cannot be passed through this parameter."
    • Changedencode_url1 field changed
      • changedInput schema / properties / url / description
        Previous value: -"URL to encode"New value: +"The value to percent-encode, typically one query-string value or path segment. Everything outside A-Z a-z 0-9 - _ . ! ~ * ' ( ) is escaped, including slashes and colons."
    • Changedextract_text_ocr1 field changed
      • changedInput schema / properties / language / description
        Previous value: -"Language of the text (default: eng)"New value: +"ISO 639-2 style code for the language the recogniser should expect: eng English, ara Arabic, chi_sim Simplified Chinese, fra French, deu German, spa Spanish, jpn Japanese, kor Korean. Default eng. One language per call; naming the wrong one badly degrades accuracy."
    • Changedformat_json2 fields changed
      • changedInput schema / properties / indent / description
        Previous value: -"Indentation spaces (default 2)"New value: +"Spaces per indent level in `formatted`, 0 to 10. Default 2; a value outside that range or a non-number silently falls back to 2. Use 0 for newlines with no indentation, or read `minified` for no whitespace at all."
      • changedInput schema / properties / json / description
        Previous value: -"JSON string to format"New value: +"The JSON document as a string. Must be strict JSON — comments and trailing commas are parse errors."
    • Changedgenerate_blog_outline2 fields changed
      • changedInput schema / properties / sections / description
        Previous value: -"Number of sections (default 5)"New value: +"How many main sections to plan between the introduction and the conclusion. Default 5; a non-numeric or zero value also falls back to 5."
      • changedInput schema / properties / topic / description
        Previous value: -"Blog topic or keywords"New value: +"The subject of the post, or a comma-free keyword phrase to build it around. The first thing supplied is treated as the primary keyword and the rest as secondary keywords to work in."
    • Changedgenerate_fake_data2 fields changed
      • changedInput schema / properties / count / description
        Previous value: -"Number of records (default 1)"New value: +"How many records to return. Default 1, clamped to the range 1-100, and truncated to a whole number. Records are always the same sequence, so count 10 is the first 5 of count 5 plus 5 more."
      • changedInput schema / properties / type / description
        Previous value: -"Data type"New value: +"Shape of each record. 'name', 'email', 'address' and 'phone' each return a plain string; 'user' returns an object with all four fields. Required; any other value is rejected."
    • Changedgenerate_image2 fields changed
      • changedInput schema / properties / negativePrompt / description
        Previous value: -"What to avoid in the image (optional)"New value: +"What to keep out of the image, e.g. 'text, watermark, blurry'. Maximum 2,000 characters. Only the Replicate fallback provider honours it, so on the usual path it has no effect."
      • changedInput schema / properties / prompt / description
        Previous value: -"Text description of the image to generate"New value: +"What the image should show. Subject, style and composition all help. Required, non-blank, maximum 2,000 characters."
    • Changedgenerate_qr_code3 fields changed
      • changedInput schema / properties / errorCorrection / description
        Previous value: -"Error correction level"New value: +"Declared for compatibility but currently ignored — the code is always generated at the library default, level M (about 15% damage tolerance)."
      • changedInput schema / properties / size / description
        Previous value: -"QR code size in pixels (default 256)"New value: +"Width and height of the output PNG in pixels; the code is always square. Default 300. Only applied when given as a number."
      • changedInput schema / properties / text / description
        Previous value: -"Text or URL to encode"New value: +"The exact payload to encode. A URL must include its scheme to be actionable when scanned. Very long values force a denser code that is harder to scan."
    • Changedgenerate_sql2 fields changed
      • changedInput schema / properties / description / description
        Previous value: -"Natural language query description"New value: +"What the query should do, in plain language. Include the table and column names you want used, otherwise the model invents plausible ones. Required and must not be blank."
      • changedInput schema / properties / dialect / description
        Previous value: -"SQL dialect"New value: +"Intended SQL dialect. Accepted for forward compatibility but NOT currently passed to the model, so the generated SQL is generic and may need adjusting for your engine."
    • Changedgenerate_text3 fields changed
      • changedInput schema / properties / count / description
        Previous value: -"Number of text blocks to generate (default 1)"New value: +"How many separate blocks to return. Default 1. Large values are bounded in practice by the ~1,500 token output cap."
      • changedInput schema / properties / length / description
        Previous value: -"Length of text in characters (default 100)"New value: +"Rough size of each block in characters. Default 100. Requested in the prompt, so treat it as a target, not a limit."
      • changedInput schema / properties / type / description
        Previous value: -"Type of text to generate"New value: +"Flavour of filler to ask for: classic latin lorem ipsum, arbitrary English copy, or standalone sentences. Default lorem. Used as a prompt hint, so it steers the style rather than guaranteeing it."
    • Changedhumanize_text2 fields changed
      • changedInput schema / properties / level / description
        Previous value: -"Humanization level"New value: +"How far the rewrite may drift from the original voice. 'light' strips AI tells but stays professional, 'medium' (the default, also used for any unrecognised value) turns it conversational with contractions, 'strong' rewrites it casually with short punchy sentences."
      • changedInput schema / properties / text / description
        Previous value: -"Text to humanize"New value: +"The passage to rewrite. Plain text. Maximum 10,000 characters; longer input is rejected with 413."
    • Changedshorten_url2 fields changed
      • changedInput schema / properties / customCode / description
        Previous value: -"Optional custom short code"New value: +"Vanity code to use as the last path segment, e.g. 'launch' for razi.pro/launch. 3-32 characters, letters, digits, hyphen and underscore only. Fails with 409 if already taken and 400 if it collides with a reserved site path such as 'api', 'blog' or 'tools'. Omit to get a random 8-character code."
      • changedInput schema / properties / url / description
        Previous value: -"The URL to shorten"New value: +"The absolute destination URL to redirect to, including the scheme. Only http:// and https:// are accepted; anything else is rejected with 400."
    • Changedsplit_image3 fields changed
      • changedInput schema / properties / cols / description
        Previous value: -"Number of columns (optional, auto-detected if not provided)"New value: +"Number of equal-width columns in the grid. Only takes effect when rows is also given. Omit both rows and cols to have the panels detected automatically."
      • changedInput schema / properties / format / description
        Previous value: -"Output image format (default: png)"New value: +"Encoding for each extracted panel and its file extension inside the ZIP. Default png, which is lossless; jpeg and webp are written at quality 90."
      • changedInput schema / properties / rows / description
        Previous value: -"Number of rows (optional, auto-detected if not provided)"New value: +"Number of equal-height rows in the grid. Only takes effect when cols is also given; supplying both switches off vision detection and divides the image evenly, ignoring any borders or gaps."
    • Changedsplit_pdf1 field changed
      • changedInput schema / properties / ranges / description
        Previous value: -"Array of page ranges (e.g., '1-2', '3-5')"New value: +"Page ranges to extract, 1-based and inclusive, one output file per entry. Use 'first-last' for a span ('1-2', '3-5'), a bare number for one page ('7'), or a comma-separated combination in one entry ('1-3,7'). Spans are clamped to the document length and pages that do not exist are dropped; an entry that selects no page produces no output file."
    • Removedupload_file
  4. 4 tool updates
    • Addedfetch_page_metadata
    • Addedfetch_site_logo
    • Removedfetch_site_metadata
    • Changedscreenshot_url5 fields changed
      • changedInput schema / properties / darkMode / description
        Previous value: -"Render with prefers-color-scheme: dark"New value: +"Render with prefers-color-scheme: dark. Has no effect on sites that do not implement a dark theme."
      • changedInput schema / properties / delayMs / description
        Previous value: -"Extra wait after load, in milliseconds (max 5000)"New value: +"Extra wait after load, in milliseconds (max 5000). Use for pages with entrance animations or slow client-side rendering."
      • changedInput schema / properties / fullPage / description
        Previous value: -"Capture the entire scrollable page rather than just the viewport"New value: +"Capture the entire scrollable page rather than just the viewport. Pages taller than 12000px are truncated at 12000px, which is a browser encoding limit, so a very long article returns only its top portion."
      • changedInput schema / properties / height / description
        Previous value: -"Viewport height in pixels (200-4320, default 800)"New value: +"Viewport height in pixels (200-4320, default 800). Ignored when fullPage is true."
      • changedInput schema / properties / url / description
        Previous value: -"The page to capture"New value: +"The page to capture. Must be publicly reachable over http(s)."
  5. 28 tool updates
    • First observedcalculate_percentage
    • First observedcompare_text
    • First observedcompress_image
    • First observedcompress_pdf
    • First observedcompress_video
    • First observeddecode_base64
    • First observeddecode_jwt
    • First observeddecode_url
    • First observeddraft_email
    • First observedencode_base64
    • First observedencode_url
    • First observedextract_text_ocr
    • First observedfetch_site_metadata
    • First observedformat_json
    • First observedgenerate_blog_outline
    • First observedgenerate_fake_data
    • First observedgenerate_image
    • First observedgenerate_qr_code
    • First observedgenerate_sql
    • First observedgenerate_text
    • First observedhumanize_text
    • First observedmerge_pdf
    • First observedparse_document
    • First observedscreenshot_url
    • First observedshorten_url
    • First observedsplit_image
    • First observedsplit_pdf
    • First observedupload_file

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources