Skip to main content
Glama
iscca

Capture One AI MCP Server

by iscca

adjust

Apply a qualified numeric or structured module to Capture One's Background or selected layer using an exact observed token, enabling targeted edits with native validation.

Instructions

Apply one qualified numeric or structured module using its exact observed module token.

macOS film_grain {type?:fine|silver_rich|soft|cubic|tabular|harsh,impact?:0..100,granularity?:0..100}; Background-only. Structured modules: curves {channel,points:[[x,y],...]}; color_mixer {mode:'basic',color,hue?,saturation?,lightness?} or {mode:'advanced'|'skin',action:'add'|'update'|'remove',rgb? ,index?,hue?,saturation?,lightness?,smoothness?,uniformity_hue?,uniformity_saturation?,uniformity_lightness?,enabled?,inverted?}; levels {channel,input_black?,input_white?,midtone?,output_black?,output_white?}; color_balance {wheel,x?,y?,lightness?}; layers {action,layer_ref?,creation_operation_id?,opacity?}; masks {action:'create_subject'|'create_background'}. Layers also support rename {layer_ref,name}, set_enabled {layer_ref,enabled}, duplicate {layer_ref,name?}, move {layer_ref,index}; index is zero-based excluding Background. Masks on the selected adjustment layer: invert, clear, fill {density:0..1}, copy {source_layer} replaces the entire mask; combine {source_layer,mode:add|subtract|intersect}; feather {radius:0..300}; linear_gradient {start:[x,y],stop:[x,y],midpoint:0.01..0.99}; radial_gradient {center:[x,y],radius_x,radius_y,falloff:0..1,angle:-360..360,inverted:bool}; luma_range {shadow,shadow_falloff,highlight,highlight_falloff,radius,sensitivity,inverted}. Gradient coordinates/radii use normalized RAW dimensions, not rotated viewer coordinates. Luma endpoints 0..255 ordered shadow_falloff<=shadow<=highlight<=highlight_falloff, radius 0..300, sensitivity 0..100. select_submask {index} uses the native indexes returned by masks read; -1 selects the whole mask. Brush/gradient operations follow C1's selected submask semantics. Luma range replaces existing luma components, preserving the other masks. Each color module also accepts {action:'reset'} (C1 defaults) or {action:'paste',source_observation_token} (a saved complete read of the same module). Read the destination module before applying; source snapshot may belong to another layer/photo. Native qualification remains required. No presets or style files are created. Scalar parameters, levels, all mixers, color wheels and curves share the C1 internal model endpoint for Background and the selected adjustment layer. Select a layer then re-read the module; target.layer binds every write to that layer. Native AI masks use AutoMaskingManager without requiring the tool panel to be visible. Levels endpoints use 0..255, midtone -1..1. Advanced H/S/L limits are +/-30, -100..200, +/-100; Skin +/-5, +/-30, +/-10. Smoothness 1..30; Skin uniformity 0..100. Advanced/Skin may also update hue_low/high and saturation_low/high: signed offsets from the source color, low<=-2, high>=2, hue span<=359 degrees. Skin has one range. Read gives current native ranges and indexes; no screenshot or UI color picking is required.

Input Schema

NameRequiredDescriptionDefault
patchYes
moduleYes
targetYes
request_idNo
observation_tokenYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses replace-vs-merge behavior (copy replaces the entire mask, luma_range replaces existing luma components), the reset/paste actions, zero-based indexing excluding Background, and that gradients use normalized RAW rather than rotated viewer coordinates. It does not cover failure modes, auth/permission needs, or whether writes are reversible, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

There is no filler, but the content is a dense semicolon-delimited wall with per-module schemas interleaved with behavioral rules rather than front-loaded or grouped into call-workflow-first sections. An agent must parse the whole block to find the ordering constraints that matter most.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description supplies the module vocabulary, numeric domains, and coordinate conventions a caller needs. The remaining gap is the observation_token contract and the target object's expected shape, which are central to making a valid call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain all five parameters. It richly documents 'module' tokens and the 'patch' payload shape, and touches 'target' via target.layer, but the required 'observation_token' (its format and provenance) and the optional 'request_id' are never explained, leaving two of five parameters undocumented by any source.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line gives a concrete verb and scope: apply exactly one numeric or structured module using its observed module token. That distinguishes it from read/context/preview siblings in practice, though no sibling is named explicitly and terms like 'qualified module' remain internal jargon an agent must infer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real workflow conditions: read the destination module before applying, select a layer then re-read, target.layer binds the write, and native qualification is still required. What is missing is an explicit negative case (when not to call this, e.g., non-module edits) or a named sibling as the alternative path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools