Razi Tools
이 MCP로 할 수 있는 일
Provides utilities for document and image processing, OCR, screenshots, PDF manipulation, QR generation, text transformation, and related developer workflows.
도구
입력 스키마
{'type': 'object', 'required': ['operation', 'value1', 'value2'], 'properties': {'value1': {'type': 'number', 'description': "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."}, 'value2': {'type': 'number', 'description': "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."}, 'operation': {'enum': ['of', 'increase', 'decrease', 'change'], 'type': 'string', 'description': "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."}}}
입력 스키마
{'type': 'object', 'required': ['text1', 'text2'], 'properties': {'text1': {'type': 'string', 'description': 'The baseline text, reported as `before` in each change.'}, 'text2': {'type': 'string', 'description': 'The revised text, reported as `after` in each change.'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'width': {'type': 'number', 'description': '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.'}, 'format': {'enum': ['webp', 'jpeg', 'png', 'avif'], 'type': 'string', 'description': 'Output container/codec. Default webp; an unrecognised value also falls back to webp. Transparency survives in webp, png and avif but not jpeg.'}, 'height': {'type': 'number', 'description': 'Target height in pixels. Give only one of width/height to scale the other proportionally. Omit both to keep the original dimensions.'}, 'quality': {'type': 'number', 'description': "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."}, 'grayscale': {'type': 'boolean', 'description': 'Drop colour before encoding. Default false.'}, 'keepAspectRatio': {'type': 'boolean', 'description': '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.'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
입력 스키마
{'type': 'object', 'required': ['encoded'], 'properties': {'encoded': {'type': 'string', 'description': "Standard Base64 text. Surrounding whitespace and missing '=' padding are tolerated; the URL-safe alphabet (- and _) is not."}}}
입력 스키마
{'type': 'object', 'required': ['token'], 'properties': {'token': {'type': 'string', 'description': "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."}}}
입력 스키마
{'type': 'object', 'required': ['encoded'], 'properties': {'encoded': {'type': 'string', 'description': '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.'}}}
입력 스키마
{'type': 'object', 'required': ['prompt'], 'properties': {'tone': {'enum': ['formal', 'casual', 'friendly'], 'type': 'string', 'description': 'Register of the writing. Default formal. Passed to the model as an instruction, so it shapes wording rather than enforcing a fixed template.'}, 'prompt': {'type': 'string', 'description': '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.'}}}
입력 스키마
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The plain text to encode, interpreted as UTF-8. Must be a string; raw binary cannot be passed through this parameter.'}}}
입력 스키마
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': "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."}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'language': {'enum': ['eng', 'ara', 'chi_sim', 'fra', 'deu', 'spa', 'jpn', 'kor'], 'type': 'string', 'description': '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.'}}}
입력 스키마
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': '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.'}}}
입력 스키마
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': '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.'}, 'rehost': {'type': 'boolean', 'description': "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."}}}
입력 스키마
{'type': 'object', 'required': ['json'], 'properties': {'json': {'type': 'string', 'description': 'The JSON document as a string. Must be strict JSON — comments and trailing commas are parse errors.'}, 'indent': {'type': 'number', 'description': '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.'}}}
입력 스키마
{'type': 'object', 'required': ['topic'], 'properties': {'topic': {'type': 'string', 'description': '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.'}, 'sections': {'type': 'number', 'description': '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.'}}}
입력 스키마
{'type': 'object', 'required': ['type'], 'properties': {'type': {'enum': ['name', 'email', 'address', 'phone', 'user'], 'type': 'string', 'description': "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."}, 'count': {'type': 'number', 'description': '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.'}}}
입력 스키마
{'type': 'object', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'description': 'What the image should show. Subject, style and composition all help. Required, non-blank, maximum 2,000 characters.'}, 'negativePrompt': {'type': 'string', 'description': "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."}}}
입력 스키마
{'type': 'object', 'required': ['text'], 'properties': {'size': {'type': 'number', 'description': 'Width and height of the output PNG in pixels; the code is always square. Default 300. Only applied when given as a number.'}, 'text': {'type': 'string', 'description': '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.'}, 'errorCorrection': {'enum': ['L', 'M', 'Q', 'H'], 'type': 'string', 'description': 'Declared for compatibility but currently ignored — the code is always generated at the library default, level M (about 15% damage tolerance).'}}}
입력 스키마
{'type': 'object', 'required': ['description'], 'properties': {'dialect': {'enum': ['mysql', 'postgresql', 'sqlite'], 'type': 'string', 'description': '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.'}, 'description': {'type': 'string', 'description': '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.'}}}
입력 스키마
{'type': 'object', 'required': ['type'], 'properties': {'type': {'enum': ['lorem', 'random', 'sentence'], 'type': 'string', 'description': '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.'}, 'count': {'type': 'number', 'description': 'How many separate blocks to return. Default 1. Large values are bounded in practice by the ~1,500 token output cap.'}, 'length': {'type': 'number', 'description': 'Rough size of each block in characters. Default 100. Requested in the prompt, so treat it as a target, not a limit.'}}}
입력 스키마
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The passage to rewrite. Plain text. Maximum 10,000 characters; longer input is rejected with 413.'}, 'level': {'enum': ['light', 'medium', 'strong'], 'type': 'string', 'description': "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."}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'margin': {'type': 'number', 'description': "Blank border in points (72 to the inch) kept clear on every side. Default 0. With 'a4' or 'letter' it shrinks the area the picture is fitted into; with 'fit' it enlarges the page around the picture instead."}, 'pageSize': {'enum': ['fit', 'a4', 'letter'], 'type': 'string', 'description': "Page geometry. 'fit' (default) makes each page exactly as many points as its picture has pixels, preserving the aspect ratio with no empty space. 'a4' (595x842pt) and 'letter' (612x792pt) use a fixed portrait sheet and centre the picture on it, scaling it up or down to fit; the leftover space is blank."}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
입력 스키마
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': '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.'}, 'width': {'type': 'number', 'description': 'Viewport width in pixels. Default 1280; values outside 200-3840 are clamped into that range and fractions are truncated.'}, 'format': {'enum': ['webp', 'png', 'jpeg'], 'type': 'string', 'description': 'Image format. Default webp; an unrecognised value also falls back to webp.'}, 'height': {'type': 'number', 'description': 'Viewport height in pixels. Default 800; values outside 200-4320 are clamped. Ignored when fullPage is true, where the returned height is null.'}, 'delayMs': {'type': 'number', 'description': '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.'}, 'darkMode': {'type': 'boolean', 'description': 'Render with prefers-color-scheme: dark. Default false. Has no effect on sites that do not implement a dark theme.'}, 'fullPage': {'type': 'boolean', 'description': '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.'}}}
입력 스키마
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': '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.'}, 'customCode': {'type': 'string', 'description': "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."}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'cols': {'type': 'number', 'description': '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.'}, 'rows': {'type': 'number', 'description': '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.'}, 'format': {'enum': ['png', 'jpeg', 'webp'], 'type': 'string', 'description': '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.'}}}
입력 스키마
{'type': 'object', 'required': ['ranges'], 'properties': {'ranges': {'type': 'array', 'items': {'type': 'string'}, 'description': "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."}}}
최근 도구 변경
유사한 MCP 서버
Cannon Studio
Manages creative worlds, assets, projects, scenes, and generation requests while providing product, pricing, and developer API in…
Brainiall Image
Processes images and documents through background removal, upscaling, face restoration, OCR, table extraction, document conversio…
Andreax
Offers pay-per-call AI services for inference, agent and workflow design, OCR and transcription, code generation and review, clas…
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
MiOffice — AI-Powered Workspace Studio
Provides browser-based tools for processing PDFs, images, video, and audio, including generation, enhancement, conversion, transc…
BlitzReels Video Editor
Creates and edits short-form videos, including timelines, captions, transitions, AI-generated visuals, music, voiceovers, sound e…
Morpha
Enables creating, animating, and exporting layered short-form video projects.
spriteship
Generates and manages 2D game characters, assets, animations, tilesets, UI packs, maps, and engine-ready exports for multiple gam…