Place image
place_imagePlace a photograph in a box.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| fit | No | ||
| url | No | ||
| name | No | ||
| photo | No | ||
| scrim | No | ||
| width | Yes | ||
| height | Yes | ||
| artboard | No | ||
| data_url | No | ||
| corner_radius | No |
place_imagePlace a photograph in a box.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| fit | No | ||
| url | No | ||
| name | No | ||
| photo | No | ||
| scrim | No | ||
| width | Yes | ||
| height | Yes | ||
| artboard | No | ||
| data_url | No | ||
| corner_radius | No |
Changes observed during successful MCP inspections.
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"Input schema / additionalPropertiesRemoved value: -falseInput schema / properties / artboard / anyOfPrevious value: -[
- {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- {
- "maxLength": 120,
- "type": "string"
- }
-]New value: +[
+ {
+ "type": "integer"
+ },
+ {
+ "type": "string"
+ }
+]Input schema / properties / corner_radius / minimumRemoved value: -0Input schema / properties / data_url / descriptionRemoved value: -"data:image/png|jpeg|webp|gif;base64,... Use this only for bytes you already hold; prefer url or photo."Input schema / properties / data_url / maxLengthRemoved value: -6000000Input schema / properties / fit / descriptionRemoved value: -"Default cover."Input schema / properties / height / exclusiveMinimumRemoved value: -0Input schema / properties / name / maxLengthRemoved value: -120Input schema / properties / photo / additionalPropertiesRemoved value: -falseInput schema / properties / photo / properties / index / descriptionRemoved value: -"Which search result to use, default 0. Use search_photos first when the subject matters."Input schema / properties / photo / properties / index / maximumRemoved value: -7Input schema / properties / photo / properties / index / minimumRemoved value: -0Input schema / properties / photo / properties / query / descriptionRemoved value: -"What the photo should show, e.g. \"mountain trail forest\"."Input schema / properties / photo / properties / query / maxLengthRemoved value: -80Input schema / properties / photo / properties / query / minLengthRemoved value: -2Input schema / properties / photo / properties / source / descriptionRemoved value: -"Force one source. Default: Unsplash, then Pexels."Input schema / properties / scrim / anyOfPrevious value: -[
- {
- "type": "boolean"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "description": "CSS colour of the wash, default #000000.",
- "maxLength": 64,
- "type": "string"
- },
- "direction": {
- "description": "Which edge the wash darkens toward. Default bottom, for a caption at the foot of a hero.",
- "enum": [
- "bottom",
- "top",
- "left",
- "right"
- ],
- "type": "string"
- },
- "opacity": {
- "description": "Opacity at the strong end, default 0.62.",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "start": {
- "description": "Where the wash begins, 0 to just under 1. Default 0.4, so the top of the photo stays clean.",
- "maximum": 0.95,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
-]New value: +[
+ {
+ "type": "boolean"
+ },
+ {
+ "description": "Scrim options: docs {tool}.",
+ "type": "object"
+ }
+]Input schema / properties / scrim / descriptionRemoved value: -"true for the default bottom wash, or an object. Use it under any text placed over the photo."Input schema / properties / url / descriptionRemoved value: -"Direct link to an image file. The server fetches it; the editor cannot fetch across origins."Input schema / properties / url / formatRemoved value: -"uri"Input schema / properties / url / maxLengthRemoved value: -2048Input schema / properties / width / exclusiveMinimumRemoved value: -0Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations disclose that this is a non-read-only, open-world, non-idempotent mutation, but the description adds no behavioral detail beyond the one-line purpose. It does not explain placement semantics, whether existing content is replaced, how photo sourcing works, or what happens across repeated calls.
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?
The sentence is front-loaded and contains no wasted words, but it is drastically undersized for a 12-parameter nested tool. Brevity here is under-specification rather than effective concision.
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?
Given 12 parameters, 0% schema description coverage, a nested photo object, and no output schema, the description is far too incomplete for an agent to invoke the tool correctly. It leaves nearly all parameter semantics and behavioral expectations undocumented.
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 0% across 12 parameters, including a nested photo object, enums, and overlapping image sources. The description only hints that 'box' relates to x/y/width/height and adds no meaning for fit, scrim, artboard, url, data_url, corner_radius, or photo query options.
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 verb 'place' and resource 'photograph' are identifiable, but 'in a box' is vague and does not clarify the positioning model or artboard context. It also does not distinguish this tool from siblings like set_reference_image, upload_asset, or search_photos.
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 provides no guidance on when to use this tool versus alternatives such as search_photos, upload_asset, or generate_illustration. It also omits any prerequisites or exclusions, leaving routing entirely to inference from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.