Skip to main content
Glama
iscca

Capture One AI MCP Server

by iscca

Capture One AI for Mac

让视觉 AI 在 Mac 上读取和调整 Capture One,通过本机 MCP stdio / JSON CLI 完成调色,并查看 Capture One 实际渲染的画面。

macOS 实验版 · Capture One 16.8.6.25 · Apple Silicon · Session。当前版本为 0.3.0a3,依赖原生 Apple Events / JXA;其他宿主版本、Intel Mac、Catalog 和批量任务尚未完成兼容验证。项目非 Capture One 官方产品。

下载预发布 · 安装说明 · Skill 使用

1. AI 可以调整 Capture One 的哪些参数?

你可以直接描述希望照片发生的变化,例如“人物亮一点,背景保持暗调”“绿色柔和一些”“高光暖一点、阴影冷一点”。AI 会结合当前照片,选择 Capture One 中受支持的工具进行调整。

调整工具

可以控制的参数

可以用来改善什么

基础调整

曝光、对比度、亮度、饱和度

调整照片整体明暗、反差和颜色浓淡

白平衡

色温、色调

调整整体冷暖,以及偏绿或偏品红的倾向,同时保留需要的现场光色

高动态范围(HDR)

高光、阴影、白色、黑色

调整亮部和暗部层次,让高光过渡、阴影密度更符合画面目标

曲线

RGB、红、绿、蓝、Luma 五个通道的曲线点

塑造反差、黑位和高光过渡;通过通道曲线调整不同明度区域的颜色关系

色阶

RGB、红、绿、蓝通道的输入黑白点、输出黑白点和中间调

调整黑白端点、中间调明暗及通道关系,控制照片的厚重或通透感

颜色编辑器

Basic / Advanced 支持色区的色相、饱和度、明度,以及高级色区的范围和平滑度

单独处理某类颜色,例如让鲜绿更克制、蓝色更偏青,或修正局部颜色倾向

色彩平衡

主色轮,以及阴影、中间调、高光色轮;分影调色轮还支持明度调整

建立整体色调,或分别处理暗部、主体中间调和亮部的冷暖与偏色

胶片颗粒

六种颗粒类型、强度、大小

增加适合照片的颗粒质感;目前仅支持背景层

当问题只出现在主体或背景时,AI 可以使用 AI 主体/背景蒙版和调整图层,对受支持的参数做局部调整。图层支持创建、选择、不透明度和开关;蒙版支持复制、反相、清除、受限填充、羽化和亮度范围。实际覆盖与边缘效果需要结合预览检查。

新方案会先创建一个新的调整版本,保留原图和原有版本;同一方案的后续微调继续使用这个版本。你可以查看前后对比,再提出“保留现在的肤色,背景继续调整”等要求。

具体参数和局部能力以当前 Capture One 版本的支持范围为准。颜色编辑器的“所有颜色”总色区不提供明度调整;Skin 专用参数目前尚未接通。完整参数说明

Related MCP server: davinci-resolve-mcp

2. 参考照片追色:分析样图,再调整当前照片

接入支持看图的 AI 客户端后,你可以提供一张参考照片,让 AI 自动分析参考图的明暗、灰度偏色和主要颜色关系,再调用 Capture One 的原生参数,对当前照片进行追色。你负责说明喜欢什么、哪些内容需要保留,无需自己逐项填写调色参数。

分析参考图的明暗和灰度偏色

AI 会先看参考照片的黑位有多深、暗部是否通透、中间调是否柔和,以及高光怎样过渡,再分析暗部、中间调和亮部各自的偏色。

例如,一张照片可能是“暗部偏青灰、中间调保留自然肤色、高光略带暖黄”。这些关系共同构成它的色调。追色时需要保留这种关系,而不是把所有灰色和白色都校成中性。

建立参考图与当前照片的颜色对应

颜色映射指的是:比较两张照片中可对应的颜色,判断当前照片应怎样调整,才能接近参考图中的表现。

例如,参考图中的绿色可能更偏橄榄绿、饱和度较低;蓝色可能更偏青;肤色可能更柔和,白色物体仍保留暖光。AI 会分别判断这些颜色在色相、浓淡和明暗上的差异,再选择颜色编辑器、色轮、曲线或其他合适工具进行调整。

同一场景可以更直接地比较细节;不同场景则需要考虑光线、肤色和材质差异,借鉴参考图的色彩关系,避免把另一张照片的参数直接套用过来。

选取固定细节,检查每轮变化

AI 会从两张照片中选取可对应、具有代表性的细节,例如灰白墙面、面颊、叶片、天空或产品包装,作为反复比较的依据。

这些细节会帮助判断:“暗部还需要偏冷多少”“绿色是否过于鲜艳”“高光变暖后,肤色有没有一起偏黄”。取样尽量避开反光、过曝高光、纯黑阴影和混色边缘。参考文件可读取且色彩空间可确认时,还可以测量这些区域的明度与颜色差异;只有可见附件而没有可读文件时,会明确采用目测分析,不虚构数值。

调整 C1 参数,查看真实效果,再继续微调

AI 根据分析结果选择有实际作用的参数:先处理整体明暗和反差,再调整分影调偏色与具体颜色,必要时增加主体或背景的局部调整。

每轮调整后会读取实际参数,并查看 Capture One 当前调整后渲染的预览,对照参考图和同一批固定细节,检查效果是否更接近目标,以及已经满意的部分有没有受到影响。测量结果用来辅助判断,不会直接当作色温或滑块数值使用。

你可以继续用自然语言提出修改,例如:

参考这张照片追色:保留它柔和的高光、偏冷的暗部和低饱和绿色。人物肤色保持自然,不要跟着背景一起变绿。先给我一个版本,再展示与调整前的对比。

这一版的肤色和亮度可以保留,背景绿色再克制一点,阴影不要继续加深。

参考追色会受原片曝光、布光、相机色彩和材质影响,不能仅靠调色重建另一张照片的光线与内容,也不承诺每张照片都能完全一致。当前重点是单张照片的参考调色,批量处理暂不纳入。

本版本包含任务记录、版本比较和固定细节测量;更新旧版时,需要同时更新本机程序和配套 skill。参数恢复目前只覆盖快照所在层的调色参数,不包含完整图层和蒙版历史。

修图与版本流程 · 参考目标与反馈 · 灰度偏色与细节测量

安装

需要 Python 3.11+、已安装并有效授权的 Capture One。在 Mac 上解压源码到固定目录,打开终端执行:

./Install.command
./Run.command context --compact

如果系统 python3 版本不足,使用 C1AI_PYTHON=/path/to/python3 ./Install.command 指定已安装的 Python。授权 macOS 正常弹出的自动化权限。

在 Capture One 打开一个 Session 并选中照片。确认开启该 Session 的实验调整后运行:

.venv/bin/python scripts/configure_macos.py \
  --enable-current-session --enable-experimental-modules

实际预览需要用户明确允许临时低分辨率 JPEG 导出,再加 --allow-preview-export。预览是 C1 当前调整后的实际输出,最长边 1600px;不是相机内嵌缩略图。默认不导出正式成片。

安装器生成本机 config/mcp-server.local.json。将它接入支持本地 MCP 和图片块的视觉 AI 客户端,六个工具为 context、images、read、adjust、preview、operations。无需为不同模型另建服务。

配套 skill

将 skills/capture-one-edit 复制到客户端的技能目录;Codex 通常使用 ~/.codex/skills/capture-one-edit。刷新后使用:

使用 $capture-one-edit,为当前选中照片制作一个电影胶片候选版本,先说明方向,再调整并查看实际预览。

skill 提供调色流程,执行依赖已安装的本机 MCP/CLI。安装 skill 不会自动开启照片写入或临时导出。详细说明

当前限制

Skin 逐项参数、图层排序/复制、渐变/组合/子蒙版选择、直接蒙版像素、预览与 RAW 坐标映射和无导出渲染暂不可用。AI 蒙版的实际覆盖需要看图判断;AI 层填充可能保留生成蒙版约束。参数成功回读不等于视觉效果合格。

验证范围 · 实机报告 · 接口 · 开发说明

照片、预览、Session、配置、候选资格、令牌和操作记录保留在本机,不进入公开分发包。运行状态位于 ~/Library/Application Support/CaptureOneAI/。

MIT License · 来源与第三方声明

Available Tools

6 tools
adjustA

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.

NameRequiredDescriptionDefault
patchYes
moduleYes
targetYes
request_idNo
observation_tokenYes

Output Schema

NameRequiredDescription

No output parameters

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.

contextC

Read application, target, capabilities, shared editing workflow and unresolved operations.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Read' implies non-mutation, but the description says nothing about cost, size, whether the snapshot is cached or live, or whether 'unresolved operations' reflects pending writes — all relevant for a context tool.

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

Conciseness4/5

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

A single terse sentence with no filler, and the enumeration is front-loaded. It is arguably over-compressed for the ambiguity it needs to resolve, but nothing in it is wasted.

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

Completeness3/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 explained. Still, with no annotations and a generic name shared with a sibling 'read' tool, the definition leaves the agent without the when/why context needed to choose it confidently.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies a parameterless snapshot by not referencing any inputs.

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

Purpose3/5

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

The description does name what the tool returns (application, target, capabilities, shared editing workflow, unresolved operations), which is more than a tautology of the bare name 'context'. However, it is a noun list with only the verb 'Read' rather than a stated resource and scope, so an agent cannot easily tell how it differs from the sibling 'read' or 'operations' tools.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus the sibling 'read' or 'operations' tools, and no prerequisites or exclusions. The agent must infer that this is an initial session-context fetch, which is a guess rather than guidance.

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

imagesC

List the active native collection (including offscreen photos), or select by variant_uuid.

Follow next_offset with the same collection_token. next/previous follow the filtered collection. create_candidate clones the selected variant; edits remain restricted to registered copies. macOS supports native collection listing and selection; consult context for platform restrictions.

NameRequiredDescriptionDefault
toolNo
limitNo
scopeNofiltered
actionYes
offsetNo
targetNo
request_idNo
variant_idNo
variant_uuidNo
collection_tokenNo
observation_tokenNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior; it does add that listing includes offscreen photos, create_candidate clones the selected variant, edits are restricted to registered copies, and macOS has restrictions. However it omits side effects and permissions for select, prepare_adjustments, and prepare_tool and does not clarify mutation safety.

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?

The description is compact and front-loads the main list/select idea, but it is a dense set of jargon-laden sentences rather than an action-oriented structure. Terms like native collection, offscreen photos, registered copies, and collection_token are not defined.

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

Completeness2/5

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

For an 11-parameter, seven-action tool with no annotations and no schema descriptions, this description is far from complete. It offers useful hints for a few paths but leaves most of the action surface undocumented; the output schema only removes the need to explain return values.

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

Parameters2/5

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

Schema coverage is 0% across 11 parameters, so the description must compensate. It only touches variant_uuid and collection_token (plus output next_offset), leaving action, scope, limit, offset, target, request_id, variant_id, observation_token, and tool enum values unexplained.

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

Purpose3/5

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

The first sentence names list and select on a native collection, but the tool exposes seven actions (prepare_adjustments, prepare_tool, next, previous, etc.) and the generic name 'images' does not establish the overall purpose. It is not clear how this differs from siblings such as read or preview.

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

Usage Guidelines3/5

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

It gives action-specific operational guidance (same collection_token for pagination, next/previous on filtered collection, create_candidate behavior, macOS-only listing/selection) and points to context for platform restrictions. It does not say when to choose this tool instead of siblings or explain the prepare_* actions.

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

operationsA

Get/list/reconcile existing receipts; reconcile never dispatches recovery writes.

action=task adds persistent photographic briefs and versions on Mac. Mutations require a unique request_id and fresh target/token (stop only needs task_id). task_action: start payload={goals:[...],protections:[...],mode:optimize|reference_match,strength:light|close|maximum, references:[{id,role,kind:same_scene|cross_scene}],reference_analysis?:{tone,color,texture,limitations,priority}}; bind {candidate_request_id}; update merges brief fields; checkpoint {preview_request_id,label}; review {checkpoint_id,seen_sha256,improved:bool,assessment:{goal,protections,light_color,edges,remaining,reference?}}; feedback {kind:brightness|temperature|strength|subject|background|prefer_previous|custom,message,protect?:[...],checkpoint_id?}; accept {checkpoint_id,user_confirmation}; restore {checkpoint_id} WRITES saved selected-layer color parameters through adjust, without restoring layer structure/mask pixels. Render/review again. get/diagnose/compare are read-only; compare {roles:[initial,previous,current,accepted]} returns images. Reference images and visual judgments are supplied by the vision client; the backend cannot prove aesthetics. P1 reference_plan {checkpoint_id,targets:[{id,reference_id,observation,uncertainty,region,direction, protect:[...],priority:1..5,limitation}]}; IDs reference the current brief, priority 1 is highest. recognize {checkpoint_id,aspect,user_confirmation,supersedes?:[recognition_id]} records partial USER approval. feedback may add interpretation:{problem,region,direction,method:global|color_range|local|inspect_only,risks}. P1 checkpoints freeze intent. review additionally requires exact id/status/note lists for captured target_results (pending|close|conflict|limited), protection_results (preserved|changed|uncertain), feedback_results (resolved|improved|unchanged|worse|conflict). See checkpoint.intent for required IDs. compare can alternatively use {checkpoint_ids:[...]} for up to three recognized historical versions. anchor_analysis measures actual-render patches without writing C1. payload={checkpoint_id,reference_id, reference_checkpoint_id OR reference_path+reference_sha256,assume_srgb?:{reference:bool,target:bool}, anchors:[{id,role,kind:neutral|color,reference_box:[l,t,r,b],target_box:[l,t,r,b]}]}. Boxes use normalized EXIF-oriented preview coordinates, never RAW/mask coordinates. No automatic neutralization. Reuse fixed anchors with {checkpoint_id,baseline_analysis_id,alignment_confirmed:true} after looking at the new render. An embedded ICC is converted; untagged RGB requires explicit assume_srgb. Lab deltas are not C1 slider values. reference_plan may link anchor_analysis_id from its current checkpoint. References must be explicitly provided images.

NameRequiredDescriptionDefault
actionYes
targetNo
payloadNo
task_idNo
request_idNo
task_actionNo
operation_idNo
observation_tokenNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so extensively: it distinguishes read-only actions from mutations, states request_id and target/token requirements, explains that restore writes saved color parameters without restoring layer structure/mask pixels, and clarifies that anchor_analysis does not write C1. It also discloses coordinate-system and color-space assumptions, including normalized EXIF-oriented boxes and ICC/assume_srgb behavior.

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?

The content is front-loaded with the core get/list/reconcile behavior before the task-action detail, and much of the density is justified by the tool's 15 task_actions. However, the semicolon-heavy wall of text is difficult to parse and could be organized more clearly.

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 do not need description, and the tool's complexity is matched by substantial behavioral and payload detail. The remaining gaps are the lack of explicit sibling-tool selection guidance and incomplete coverage of a few top-level parameters.

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

Parameters4/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 supply parameter meaning, and it does so richly for task_action payloads, checkpoint/review structures, IDs, request_id/task_id conditions, and coordinate boxes. It still leaves some top-level parameters such as operation_id and the general target/token shape unclear, so it is strong but not fully complete.

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 description names the primary actions (get/list/reconcile) and explains that action=task adds persistent photographic briefs and versions on Mac, so the broad purpose is understandable. It does not explicitly differentiate this tool from siblings such as read, adjust, or preview, which keeps it below a 5.

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

Usage Guidelines3/5

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

It gives some usage conditions, such as get/diagnose/compare being read-only, mutations requiring a unique request_id and fresh target/token, and stop only needing task_id. However, it never states when to choose this tool over the sibling tools or when not to use it, leaving selection guidance largely implied.

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

previewA

Check context capabilities first. macOS requires explicitly enabled kind=render JPEG exports.

On Windows, default native renders current C1 adjustments asynchronously, without export or focus.

kind=mask renders the selected layer's whole composite mask. max_size is 128..1600. map_points maps {x,y} pixel-edge coordinates using C1's nonlinear transform; use the same kind/max_size and returned preview_id. Divide RAW x/y by raw_dimensions to make normalized gradient coordinates. A changed photo, layer or revision invalidates the id. Only the most recent preview job is retained; eight PNG cache files are retained. Legacy kind=render exports, kind=viewer/action=capture samples the display.

NameRequiredDescriptionDefault
kindNonative
actionNorender
pointsNo
targetYes
max_sizeNo
directionNopreview_to_raw
preview_idNo
request_idNo
observation_tokenYes

TDQS

A3.6/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 substantial work: it discloses async behavior on Windows, platform-specific export requirements, id invalidation on photo/layer/revision change, and retention limits (one preview job, eight PNG cache files). It stops short of saying whether kind=render writes files to disk or what side effects/restore_destination entail.

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?

Roughly a hundred words with no wasted filler, but the structure is poor: it opens with a prerequisite rather than the purpose, then interleaves platform notes, per-kind behavior, and coordinate math in run-on sentences with hard-wrapped fragments. Front-loading what the tool does would fix most of it.

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?

For a 9-parameter, nested-target, no-output-schema tool, the description covers the highest-risk semantics: async behavior, id invalidation, cache retention, and coordinate mapping. Gaps remain around the opaque `target`/`observation_token` contract and unexplained actions, which an agent would have to guess at.

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 coverage is 0%, so the description must compensate, and it partly does: `kind` modes, `max_size` range 128..1600, `points` as pixel-edge {x,y} coordinates with the RAW normalization trick, `preview_id` reuse/invalidation, and `direction` implied via the divide-by-raw_dimensions note. `target`, `request_id`, `observation_token`, and three of five `action` values get no explanation at all.

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 description makes clear this tool produces previews/renders of Capture One content across several modes (native adjustments, layer masks, JPEG exports, display capture), and it names the `context` sibling as a prerequisite. It never states the purpose in one declarative sentence, though — it opens with a directive ("Check context capabilities first") and lets the resource be inferred from the per-kind notes.

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

Usage Guidelines3/5

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

There is real routing guidance: check `context` first, macOS requires explicitly enabled kind=render, map_points must reuse the same kind/max_size and preview_id. But there is no guidance on when to choose `preview` over siblings like `read`, `images`, or `adjust`, and the `action` values prepare/render/restore_destination are never explained, so mode selection is only half-covered.

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

readA

Read native parameters with provenance, module guidance/units and an observation token.

Read fields=[] for target/preview without loading adjustment parameters. Read module=... before edits. Parameter targets are absolute, not deltas; skip modules without a visible purpose.

NameRequiredDescriptionDefault
fieldsNo
moduleNo
targetNo
modulesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It usefully discloses that results include provenance, module guidance/units, an observation token, that fields=[] avoids loading adjustment parameters, and that targets are absolute rather than deltas. However, it does not explicitly state read-only/no side effects, permissions, or other operational constraints.

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

Conciseness4/5

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

The description is short and front-loads the core action, followed by practical usage notes. There is little wasted text, though the line break and terseness make some guidance feel compressed rather than fully structured.

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

Completeness3/5

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

The output schema exists, so return values need not be explained in depth. Still, for a generic 'read' tool with no annotations and 0% schema description coverage, the description leaves sibling routing, parameter value formats, and some operational behavior unclear.

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 compensate for all four parameters. It adds meaningful semantics for fields (empty array behavior), module (read before edits), target (absolute, not delta), and modules (skip modules without a visible purpose), but it does not specify accepted values, target object structure, or the relationship between module and modules.

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 description states a specific verb and resource: reading native parameters, including provenance, module guidance/units, and an observation token. It is clear what the tool does, but it does not differentiate itself from siblings such as context or preview, and 'native parameters' is somewhat domain-specific.

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 explicit usage guidance: use fields=[] for target/preview without loading adjustment parameters, read module=... before edits, and skip modules without a visible purpose. It does not name alternative sibling tools for comparison, but it establishes clear when-to-use conditions and one exclusion.

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.

  1. 6 tool updatesv0.1.0
    • First observedadjust
    • First observedcontext
    • First observedimages
    • First observedoperations
    • First observedpreview
    • First observedread

TDQS

B3.3/5.0

Scored across 6 tools

Disambiguation3/5

The six tools have broad functional boundaries, but context, read, and operations overlap: context reads workflow/unresolved operations, read reads native parameters, and operations also returns receipts/tasks/analysis. operations is a catch-all that includes restore writes via adjust and compare/checkpoint links to preview, so agents must read carefully to choose correctly.

Naming Consistency3/5

All names are lowercase single words, which is visually consistent, but they mix imperative verbs (read, adjust) with nouns (context, images, operations, preview). There is no predictable verb_noun pattern, though the names remain short and readable.

Tool Count4/5

Six tools is a reasonable count for a complex photo-editing integration, and each maps to a recognizable phase: context, read, adjust, images, preview, and operations. However, operations bundles far too many distinct actions, so the set is slightly under-segmented rather than over-counted.

Completeness4/5

The surface covers app context, parameter reading, structured adjustments, image selection, previews, receipts, and task/brief workflows, which is broad lifecycle coverage for Capture One editing. Minor gaps remain around explicit final export/save, undo/history, and possibly layer deletion, but core workflows are represented.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers