darktable-mcp
Бінарний файл darktable-mcp надає інтерфейс сервера Model Context Protocol (MCP) для Darktable.
darktable-mcp можна використовувати, щоб дозволити агенту ШІ керувати конвеєром через MCP, наприклад, його можна використовувати для:
- переліку модулів та перевірки схем їхніх параметрів,
- обробки зображення за допомогою заданого стеку модулів та отримання попереднього перегляду або статистики для кожного каналу,
- зчитування історії, стилів та метаданих з бібліотеки.
darktable-mcp збирається лише якщо Darktable було скомпільовано з опцією USE_MCP, тому бінарний файл може бути присутнім не в усіх пакетах.
Звернення до параметрів модуля відбувається за ім’ям, тому набір інструкцій, написаних для однієї версії Darktable, продовжує працювати навіть після оновлення модуля. Обробляються тимчасові копії зображень, тому ні оригінальний файл, ні його існуючі редагування не змінюються.
Він очікує команд на своєму stdin та виводить відповіді на свій stdout; stdout передає лише JSON-RPC (власне логування Darktable перенаправляється на stderr), тому клієнт може коректно використовувати протокол.
darktable-mcp можна викликати з такими необов’язковими параметрами командного рядка:
darktable-mcp [--core <опції Darktable>]
--core <опції Darktable>- Усі параметри командного рядка після
--coreпередаються ядру Darktable і обробляються як стандартні параметри. Детальний опис див. у розділібінарний файл darktable.Якщо ви їх не перевизначите, вводяться два значення за замовчуванням:
-
--library :memory:- База даних зберігається в оперативній пам’яті — усі зміни скидаються після завершення роботи програми. Зображення візуалізуються та перевіряються за шляхом до файлу, і інструменти бібліотеки більше нічого не бачать.
-
--conf write_sidecar_files=never- Ніколи не оновлювати файли XMP.
-
Щоб працювати зі справжнім каталогом, щоб існуючі зображення, їхні редагування та збережені стилі були видимими, передайте --core --library /шлях/до/library.db. Darktable блокує library.db та data.db під час роботи, тому це працює лише тоді, коли графічний інтерфейс Darktable не відкрито на цій бібліотеці – або на її копії. База даних за замовчуванням, що знаходиться в пам’яті, не потребує такого блокування та може використовуватися під час роботи Darktable.
🔗Доступні інструменти
Сервер надає підключеному клієнту доступ до трьох груп інструментів.
Інструменти інтроспекції описують модулі Darktable: перелічують доступні модулі обробки, отримують параметри заданого модуля з їхніми типами, діапазонами та значеннями за замовчуванням, а також конвертують між збереженим блобом параметрів модуля та іменованими значеннями. Кожен модуль також надає посилання на свою сторінку в цьому посібнику.
Інструменти Розробки обробляють зображення: розробляють зображення через його стек історії, за бажанням із застосуванням додаткових модулів зверху, та повертають або зображення попереднього перегляду, або статистику для кожного каналу. Рендеринг виконується на одноразовому дублікаті, тому вихідне зображення ніколи не змінюється.
Інструменти Бібліотеки читають та змінюють каталог: перелік зображень, читання декодованого стеку історії зображення, перелік, застосування, збереження та імпорт стилів, а також експорт розробленого зображення у файл. Зверніть увагу, що деякі з них записують дані до бібліотеки — застосування або збереження стилю змінює каталог, так само, як це відбувається в графічному інтерфейсі.
🔗Підключення клієнта
Команда darktable-mcp не запускається безпосередньо користувачем – її запускає клієнт MCP, який взаємодіє з нею через stdin та stdout. Більшість клієнтів налаштовані за допомогою запису JSON, що містить назву команди та її аргументів, наприклад, як у цьому прикладі (де використовуються типові для системи Linux шляхи):
{
"mcpServers": {
"darktable": {
"command": "/usr/bin/darktable-mcp",
"args": ["--core",
"--configdir", "/home/user/.config/darktable-mcp",
"--cachedir", "/home/user/.config/darktable-mcp/cache"]
}
}
}
Надайте серверу власні каталоги конфігурації та кешу, як зазначено вище. Завдяки стандартній бібліотеці “в пам’яті” його можна використовувати будь-коли, зокрема й тоді, коли відкрито сам Darktable.
Зверніться до документації вашого MCP-клієнта, щоб дізнатися, де зберігається ця конфігурація, і чи надає він команду для додавання сервера замість редагування файлу вручну.