Guide ›
AI agents and MCP
Updated
On the Mac, RAF Film Lab can be driven by an AI agent such as Claude or Codex. The agent searches your library, looks at your photos, changes their looks, recipes and edits, culls, files them into albums and exports them, through the same paths as the app itself. Every change shows in the app as it happens, syncs like your own, and can be undone.
What you can ask
Agents are good at the work the editor makes tedious: anything rule-based, done to many photos, or done by looking and adjusting again and again.
Ask in your own words; you don't need to name the app. RAF Film Lab tells connected agents that it holds your photo library, so a request about your photos, imports, ratings, albums, looks or recipes goes to it.
Sample prompts
Finding and looking
- “Show me the last 5 photos I imported.”
- “How many photos from my X-T5 did I import this week, and which looks are they in?”
- “What recipe was my photo DSCF1234 shot with?”
Looks and edits
- “Find my four-star photos from the last import, set them to Classic Chrome, and warm them up a little. Show me one before and after.”
- “Apply this recipe to the photos in my Kyoto album:” followed by a recipe pasted from a forum post, a share link, or the name of one of your saved recipes.
- “Make these thirty frames consistent with my photo DSCF1234.”
- “Straighten and auto-tone everything from yesterday's import.”
- “Darken the sky a little in my landscapes from Saturday, and give them a gentle S-curve.”
- “Brighten the subject in DSCF1234 and add a soft vignette around it.”
- “Save how DSCF1234 looks now as a snapshot, then try it in Acros. Make a virtual copy in Classic Negative too, so I can compare.”
Culling and organising
- “Cull Saturday's import: reject anything out of focus, pick the best five and give them five stars.”
- “Find the bursts in the last import and keep the sharpest frame of each, with everyone's eyes open.”
- “Which photos from the wedding are badly overexposed?”
- “Import the new RAFs in my import folder into an album called Lisbon.”
- “Put my picks from the last import into a new album called Lisbon.”
Cameras and recipes
- “Which cameras have I shot with, and which film simulations doesn't my X-T3 have?”
- “Save the recipe of my photo DSCF1234 as Golden Hour, with a little more grain.”
- “What's on my camera's custom settings? Save any I don't have yet.”
- “Put my Golden Hour recipe in C4 on my camera.”
- “Give me a link to share my Kodachrome recipe.”
- “Read the recipe in this screenshot in my import folder and save it.”
- “Export my Golden Hour recipe as an X RAW Studio profile for my X-T5.”
Exporting and undoing
- “Export every pick in the Blog album at 2048 pixels into a
blogfolder.” - “What have you changed in my photos so far? Undo the last one.”
If the agent looks somewhere else
Coding agents such as Codex and Claude Code can also read the files in the folder they're working in. Given a bare file name like “DSCF1234”, Codex may search that folder instead. Saying photo (“my photo DSCF1234”) is usually enough; naming RAF Film Lab always is.
To settle it for good, tell your agent app once. Add this line to its standing instructions: ~/.codex/AGENTS.md for Codex, ~/.claude/CLAUDE.md for Claude Code, or your personal or project instructions in Claude Desktop:
My photos are in RAF Film Lab. For anything about my photos, use its tools, not files on disk.
The agent sees each photo through previews the app renders for it, so it judges what the photo looks like, not just its settings.
Agents connect over the Model Context Protocol (MCP), an open standard supported by Claude Desktop, Claude Code, Codex and many other AI apps. The MCP server is part of the Mac app. On iPhone and iPad, the same actions are available in Shortcuts.
Turning agents on
Agents are off until you turn them on. Open Settings (⌘,) and find Agents:
- Let AI agents use the library turns the server on.
- Agents can sets how far they may go:
- View Only (the default): search, read settings and see previews.
- View and Edit: also change looks, recipes and edits, add masks and curves, keep snapshots and virtual copies, rate, flag, label, make and rename albums, save and change recipes, save recipes to a connected camera, and import RAFs from a folder you choose.
- View, Edit and Export: also export photos and recipe files, into a folder you choose.
- View, Edit, Export and Delete: also delete albums, recipes and snapshots, and remove photos from the library.
- Status says whether the server is ready and which agent is connected.
Connecting Claude, Codex and other clients
RAF Film Lab comes with a small program, raffilmlab-mcp, inside the app. AI apps start it to talk to the library, and it opens RAF Film Lab in the background if it isn't running. Settings › Agents has buttons that copy the exact setup for wherever your app is installed; use those rather than typing the path. Pick your agent app:
Claude Code
Click Copy Claude Code Command and run it in Terminal. With RAF Film Lab in Applications, it is:
claude mcp add --scope user raf-film-lab -- "/Applications/RAF Film Lab.app/Contents/Helpers/raffilmlab-mcp"
--scope user makes the library available in every project. Check it with claude mcp list, or /mcp inside Claude Code.
Claude Desktop
Click Copy MCP Server Config (JSON). In Claude Desktop, open Settings › Developer › Edit Config, which opens claude_desktop_config.json, and add the server to mcpServers:
{
"mcpServers": {
"raf-film-lab": {
"command": "/Applications/RAF Film Lab.app/Contents/Helpers/raffilmlab-mcp"
}
}
}
If the file already has other servers, add raf-film-lab beside them. Quit and reopen Claude Desktop; RAF Film Lab's tools then appear under the tools menu in a chat.
Codex
OpenAI's Codex, in the terminal, the Codex app or the IDE extension, runs local MCP servers too. In Terminal, run:
codex mcp add raf-film-lab -- "/Applications/RAF Film Lab.app/Contents/Helpers/raffilmlab-mcp"
Or add the server to ~/.codex/config.toml yourself:
[mcp_servers.raf-film-lab]
command = "/Applications/RAF Film Lab.app/Contents/Helpers/raffilmlab-mcp"
Every Codex app reads the same file, so this sets them all up. Check it with codex mcp list, or /mcp inside Codex.
The ChatGPT app can't connect. It reaches MCP servers only over the internet, and RAF Film Lab's server stays on your Mac. Use Codex with your ChatGPT account instead.
Cursor
Add the server to ~/.cursor/mcp.json to have it in every project, or to .cursor/mcp.json in one project:
{
"mcpServers": {
"raf-film-lab": {
"type": "stdio",
"command": "/Applications/RAF Film Lab.app/Contents/Helpers/raffilmlab-mcp"
}
}
}
It then appears in Cursor's MCP settings, where you can switch it on and off.
VS Code (GitHub Copilot)
Run MCP: Open User Configuration from the Command Palette (⇧⌘P), or use .vscode/mcp.json for one project, and add:
{
"servers": {
"raf-film-lab": {
"type": "stdio",
"command": "/Applications/RAF Film Lab.app/Contents/Helpers/raffilmlab-mcp"
}
}
}
VS Code calls the top-level key servers, not mcpServers. Use Copilot Chat in Agent mode to reach the tools.
Antigravity
Google's Antigravity CLI (agy), which replaced Gemini CLI, reads servers from ~/.gemini/config/mcp_config.json, or .agents/mcp_config.json in one project. Servers no longer go in Gemini CLI's settings.json.
{
"mcpServers": {
"raf-film-lab": {
"command": "/Applications/RAF Film Lab.app/Contents/Helpers/raffilmlab-mcp"
}
}
}
Check it with /mcp inside agy. In the Antigravity app, add the same entry from MCP Servers in the agent panel's … menu.
Other MCP clients
Any client that runs local (stdio) MCP servers works. Give it the helper's path as the command, with no arguments. The server speaks MCP protocol versions 2024-11-05, 2025-03-26 and 2025-06-18.
What agents can do
What an agent can do depends on what you allow in Settings. Photo ids come from search_photos, and changes can take up to 500 photos at once.
| Tool | What it does |
|---|---|
| View Only | |
search_photos | Find photos by rating, flag, label, album, look, the film the camera recorded, camera, import date, last import or file name. |
get_photo | One photo's details, lens and exposure, in-camera recipe and edits, and whether its develop is up to date. |
render_preview | The photo as it looks now, up to 1024 pixels, or without its edits. |
compare | Before and after, side by side. |
list_looks, list_recipes, list_albums | The looks, your saved recipes and your albums. |
list_changes | What agents have changed this session. |
list_cameras, get_camera | The cameras your photos were taken with, and what a model has: sensor, processor, the film simulations it has and the ones RAF Film Lab adds. |
get_recipe | A saved recipe and a link to share it. |
read_camera_slots | The custom settings (C1–C7) of a camera plugged in over USB, each as a recipe. |
analyze_photos | Measure photos for culling: exposure and clipping, focus, faces and whether eyes look open, Vision's aesthetics score, and what's in the frame. All on your Mac. |
group_similar | Find bursts and near-duplicates: frames taken close together that look alike. |
get_develop_status | Follow a develop: photos done and left, the one under way, and why it's paused or what failed. |
read_recipe | Read a recipe from a .recipe file, an X RAW Studio profile, or a picture of a recipe or its QR code. |
| View and Edit | |
set_look | Develop photos with another look, keeping the rest of their recipe and their edits. |
set_recipe_settings | Change in-camera settings: Dynamic Range, tone, colour, Color Chrome, grain, white balance and shift, push and pull. |
apply_recipe | Apply a saved recipe (by name), a recipe link, or a recipe written out as text, keeping each photo's own push/pull. |
create_recipe, update_recipe | Save a new recipe, from a photo, another recipe, a link or text, or rename one and change its settings. |
import_camera_slots | Save a plugged-in camera's custom settings as recipes. |
save_recipe_to_camera | Put a saved recipe in one of the camera's custom settings. What the slot held is backed up first. |
adjust | Change edits: exposure, contrast, highlights, shadows, temperature and tint, vibrance, saturation, the HSL mixer, colour grading, effects, detail, straighten and crop. Values can be set, or added to each photo's own. |
add_mask, update_mask, remove_mask | Edit part of a photo: the subject, sky, background, people, a person or a face, a linear or radial gradient, or a colour or brightness range. Photos without what a mask selects, such as no sky, are left alone. |
set_curve | Set the tone curve, overall or for red, green or blue. |
copy_edits, reset_edits | Copy groups of one photo's edits to others, or take edits back to none. |
save_snapshot, restore_snapshot | Keep a photo's look and edits under a name, and go back to it. |
make_virtual_copy | A second version of a photo to edit apart from the first. |
auto_tone, auto_straighten | The editor's Auto buttons, on many photos. |
set_rating, set_flag, set_label | Stars, pick or reject, and colour labels. |
add_to_album, remove_from_album | File photos into albums, making an album by name if needed. |
create_album, rename_album | Make an album, or rename one. |
list_import_folder, import_photos | See the RAFs in your import folder and import them, as the Import button does. |
develop_photos | Develop photos' recipes on your Mac, or in the Fujifilm camera that shot them when it's plugged in, as the Develop panel does. Photos already developed with their recipe are skipped. |
control_develop | Pause, resume or stop a develop, or try its failed photos again. |
undo | Take back the last change. |
| View, Edit and Export | |
export_photos | Export as JPEG, HEIC or 16-bit TIFF, at full size or smaller, into your export folder. |
get_export_status, cancel_export | Follow or stop an export. |
export_recipe | Write a saved recipe as a .recipe file, or an X RAW Studio profile for one camera, into your export folder. |
| View, Edit, Export and Delete | |
delete_album, delete_recipe, delete_snapshot | Delete an album (its photos stay), a saved recipe, or a snapshot. |
remove_photos | Take photos out of the library, as Remove from Library does. The agent has to confirm, and this can't be undone. |
Agents never change your original RAF files, and read files only from the import folder you choose. They can't paint brush masks or heal spots: those need a hand on the photo.
Looks and recipes
A new look or recipe is developed again in the background, on your Mac, the way Develop with Film Lab does, so the library and exports show it. Previews show the change straight away, before that develop finishes. To get the camera's own render instead, plug in the camera that shot the photos with CONNECTION MODE set to USB RAW CONV./BACKUP RESTORE and ask the agent to develop in the camera: a change can develop there directly, or develop_photos can develop photos there afterwards. The develop shows in the Develop panel, where you can pause or stop it too.
Undo and safety
- Changes show as they happen. A photo open in the editor updates in front of you, and the library's thumbnails follow.
- Changes to photos and recipes can be undone. Ask it to undo, or, for the photo open in the editor, press ⌘Z: an agent's edit is an undo step like your own. If you've changed a photo or recipe since, undo leaves your change alone.
- So can new albums, imports, virtual copies and deletions. Undo deletes an album or virtual copy an agent made, takes an import back out of the library, and brings back a deleted album, recipe or snapshot.
- Three things undo doesn't cover. Removing photos from the library, which is why agents can only do it once you allow deleting, and must confirm each time. A new recipe stays until you delete it in Recipes. A recipe saved to your camera replaces what the slot held; that is backed up on your Mac first, and the agent says if the camera didn't keep a setting.
- Undo lasts while the app is open. It remembers the last 50 changes agents made.
- Agents can check first. Every change can be tried as a dry run, which says what would change without changing it. A change to more than 100 photos at once is refused unless the agent confirms it.
- Changes sync to your other devices like your own edits, when iCloud sync is on.
Exporting
Agents export only into a folder you choose: set Agents can to View, Edit and Export, then click Choose… beside Export Folder. Agents can make folders inside it, but can't write anywhere else.
- Exports never replace a file. If
DSCF1234.jpgis already there, the new one isDSCF1234 2.jpg. - An export runs in the background. The agent can follow it and stop it; files already written stay.
- Agent exports count towards the free exports like any other, and an export larger than what's left is refused before it starts.
Importing
Agents import only from a folder you choose: set Agents can to View and Edit or higher, then click Choose… beside Import Folder. A memory card or the folder your camera's photos land in works well.
- An import is like one you make with the Import button: RAFs already in the library are skipped, and the new ones are the Last Import. On your Mac they stay where they are.
- Agents can import the whole folder, folders inside it, or single files, and can't reach anything outside it.
- Recipe files and pictures of recipes in the folder can be read with
read_recipe.
Prompts and resources
Some clients offer MCP prompts as ready-made tasks, often from a menu or a / command:
- Match a Look: make photos look like a reference photo, then fine-tune each one.
- Cull Photos: rate, pick and reject against criteria you give, starting from the bursts and the measured focus, exposure and faces.
- Apply a Recipe from Text: read a recipe written out in a post or note, check it, and apply it.
Clients that support resources can attach photos and lists to a conversation: photo://{id} for a photo's details, photo://{id}/preview for its preview, and library://looks, library://albums and library://recipes.
Shortcuts and Siri
On iPhone, iPad and Mac, RAF Film Lab adds actions to the Shortcuts app: Find Photos, Set Look, Apply Recipe, Rate Photos, Flag Photos, Add Photos to Album, Export Photos and Undo Last Library Change. Chain them: find last import's picks, set them to a look, export them, and save the files wherever the next action puts them. Some work with Siri too, such as “Find photos in RAF Film Lab”.
Shortcuts don't depend on the Agents setting; you build them yourself. Their changes can be undone the same way.
Privacy
- The server isn't on the network. It listens only to programs on your Mac, and only while agents are turned on.
- What an agent reads, including the previews it asks for, goes to the AI service your agent app uses, such as Anthropic for Claude or OpenAI for Codex, under that service's terms. RAF Film Lab sends nothing to us, and agents never receive your RAF files.
- Measuring photos, finding bursts and reading recipes from pictures happen on your Mac, with Apple's Vision.
- View Only lets an agent see your library without being able to change it.
See the privacy policy.
Troubleshooting
“RAF Film Lab isn't accepting agents”
The agent couldn't reach the app. Check that Let AI agents use the library is on in Settings › Agents, then reconnect the server in your agent app (in Claude Code or Codex, /mcp; in Claude Desktop, restart it).
The agent says it can't change, export or delete
Raise Agents can in Settings › Agents. The agent is told, and sees the new tools.
“No export folder is set” or “No import folder is set”
Choose one beside Export Folder or Import Folder in Settings › Agents.
A preview doesn't show a recipe change yet in the library
The photo is still developing in the background. Its develop status in get_photo says developing until it's done, and exports wait for it.
Moved the app?
The helper's path changes with it. Copy the command or config from Settings › Agents again and update your agent app.
