SafeResize
Server Details
Passport and visa photo rules for 110 documents in 60 countries, and upload limits as exact numbers.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
The four tools are mostly distinct: check_file_numbers validates a known file's metrics, interpret_upload_rules parses raw website rule text, and find/get_photo_requirements pair a search step with an ID-based retrieval. The only mild overlap is between find_photo_requirements (search/discovery) and get_photo_requirements (retrieve one document), but the descriptions clarify the boundary.
All four names use a consistent snake_case verb_noun pattern (check_file_numbers, find_photo_requirements, get_photo_requirements, interpret_upload_rules). Verbs are specific and the structure is entirely predictable.
Four tools is lean but appropriate for a narrowly scoped passport/visa photo-requirements helper, and each covers a distinct step. It sits at the thin end of the ideal range, with no redundant tools.
The set covers the requirements lifecycle well: discover documents, fetch their rules, interpret a site's raw rules, and validate known file metrics. A minor gap exists in that there's no tool to inspect an actual file directly (only user-supplied numbers) or to perform the resize itself, though the latter is delegated to saferesize.com.
Available Tools
4 toolscheck_file_numbersCheck file numbers against upload rulesARead-onlyInspect
Check a file's size in bytes, pixels and type against a website's upload rules, without sending the file. Use when you already know the numbers (e.g. from the file's properties).
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| format | No | jpg, png, webp or pdf | |
| height | No | ||
| rules_text | Yes | The website's rules as written | |
| file_size_bytes | No | Exact size in bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false and openWorldHint=false. The description adds genuinely new context beyond them: the file itself is never sent, so the agent knows this is a pure local computation over supplied values rather than an upload or inspection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler, with the core capability front-loaded and the usage condition immediately after.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of describing the return value, yet it never says what a check produces (pass/fail, which rule was violated, how the free-form rules_text is matched). The usage hint partially compensates, but the result contract is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60% (only format, rules_text and file_size_bytes are documented). The description usefully maps its three concepts onto parameters ('size in bytes', 'pixels', 'type') and hints where the values come from, but adds no syntax, ranges, unit or enum detail beyond that mapping.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check) and resource (file size in bytes, pixels, type) against website upload rules, and clarifies it does so without sending the file. It does not name a sibling such as interpret_upload_rules, so differentiation is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear triggering condition: 'Use when you already know the numbers (e.g. from the file's properties).' It does not name the alternative tools to use when the numbers are unknown, nor state any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_photo_requirementsFind a passport or visa photo documentARead-onlyInspect
Search SafeResize's verified list of 110 passport and visa photo documents (60 countries and regions) by country, document or form name, e.g. "US visa", "DS-160", "Schengen", "India OCI", "Dubai". Returns matching documents with their document_id.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default 8) | |
| query | Yes | Country, document or form, e.g. "UK passport" or "DS-160" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds that the list is 'verified' and returns document_id, which is useful context, but it doesn't disclose pagination behavior or what happens for no-match queries. With annotations doing heavy lifting, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first states scope and examples, the second states the return value. Front-loaded with the search scope and effectively sized, though the example list is slightly redundant with the schema's own examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search with full schema coverage and no output schema, the description covers scope, examples, and return value. It lacks only usage guidance relative to siblings, but the structured fields carry most of the remaining load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, documenting both query (with examples) and limit (default 8, max 25). The description repeats query examples ('US visa', 'DS-160', 'Schengen') but adds no syntax or format details beyond the schema. Baseline 3 is correct when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Search SafeResize's verified list of 110 passport and visa photo documents'. It quantifies scope (110 documents, 60 countries) and describes the return value (matching documents with their document_id), making it clearly distinguishable from siblings like get_photo_requirements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through examples ('US visa', 'DS-160') which clarify the input format, but it never states when to use this tool versus get_photo_requirements or check_file_numbers. No explicit when-not or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_photo_requirementsGet the official photo rules for a documentBRead-onlyInspect
Official photo rules for one document: printed size, pixel rule, file size in KB, file type, background, head size, other rules, whether a self-made photo is accepted, the official source URL and the date SafeResize checked it, plus a link to make the photo free at saferesize.com.
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | From find_photo_requirements, e.g. "us-visa", "uk-passport", "schengen-visa", "in-oci" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. Because there is no output schema, the enumerated return fields (size, pixel rule, file size, background, self-made acceptance, source URL, verification date) do add real value, but no behavioral traits such as freshness guarantees or failure modes are described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single sentence, but it is a long comma-spliced list that mixes legitimate return-field information with promotional content ("a link to make the photo free at saferesize.com"). Front-loading is fine, yet not every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining the return payload and does so fairly thoroughly for a one-parameter read tool. What is missing is usage context relative to the sibling tools rather than any return-value detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter's description already supplies example values ("us-visa", "uk-passport") and points to find_photo_requirements as the source. The description text adds nothing about document_id, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource — official photo rules for one document — and enumerates the fields returned, so an agent knows exactly what comes back. It does not, however, name or contrast with the sibling find_photo_requirements (that link only appears in the schema), so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no stated relationship to find_photo_requirements (which supplies the document_id) or to interpret_upload_rules. The only usage-adjacent text is a promotional pointer to saferesize.com, which does not help selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interpret_upload_rulesRead a website's upload rulesARead-onlyInspect
Turn the upload rules a website shows (e.g. "JPG only, 10 KB to 50 KB, 200 x 230 pixels" or "PDF not more than 1 MB") into exact numbers: KB limits, a byte range that passes whether the site counts 1 KB as 1,000 or 1,024 bytes, pixels, file type, and the SafeResize tool that fixes the file.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The rules exactly as the website writes them |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuine value by disclosing the KB 1,000-vs-1,024 byte ambiguity handling and that it recommends a downstream tool. It still omits behavior on malformed/ambiguous input and says nothing about error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence with the input-to-output contract front-loaded and illustrative examples inline. Every clause carries information, though the trailing list of outputs makes it slightly overloaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by enumerating what it returns (KB limits, byte range, pixels, file type, matching tool). Combined with a fully documented single input and read-only annotations, an agent has enough to invoke it correctly; only input-failure behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, so the schema already fully documents it. The description restates the same idea ('the rules exactly as the website writes them') without adding syntax, format, or length guidance, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific transformation: human-readable upload rules in, exact numeric constraints out (KB limits, byte range, pixels, file type, recommended tool). A verb+resource+output is clear. It does not, however, distinguish itself from siblings like check_file_numbers or get_photo_requirements, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the input ('the rules exactly as the website writes them'), so an agent can infer this is for parsing raw rule text. There is no explicit when-to-use versus the sibling requirement-lookup tools, and no stated exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
check_file_numbers - First observed
find_photo_requirements - First observed
get_photo_requirements - First observed
interpret_upload_rules
Publisher details
- Operator
- SafeResize (run by an independent founder) · Publisher source
- Operator website
- https://saferesize.com · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://saferesize.com/ai · Publisher source
- Trust center
- Not available
- Restrictions
- None. The hosted server is free, with no sign-up and no key. · Publisher source
Related MCP Connectors
Turn a portrait into a compliant passport, visa or ID photo. 300+ official specs, 3 free a day.
Visa & entry requirements for 199 passports, cited to official sources and re-verified daily.
Passport visa, entry & transit requirements for any country pair, with official government sources.
Visa requirements, fees, stay limits and extension rules for any passport and destination
Related MCP Servers
- AlicenseAqualityCmaintenanceCheck visa requirements for 39,585 passport-destination pairs in 15 languages. Returns visa type, required documents, application process, and travel tips from 136 official government sources. Free quick checks without API key.544 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables local, offline generation and validation of passport, visa, exam, and other standard portrait photos, with face detection, background replacement, specification-based cropping, and print-sheet layout.MIT
- AlicenseAqualityBmaintenanceCompresses PDFs and images (including iPhone HEIC photos) to fit an upload limit, or a form's exact rules such as the US visa photo, IBPS or SSC uploads. Keeps the file's format and as much quality as the limit allows.226 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying passport visa rules for any nationality to destination pair.30 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.