ByAxe/keynote-mcp

ByAxe/keynote-mcp

от byaxe
MCP-сервер для Apple Keynote через AppleScript. Нейросеть создаёт, редактирует и экспортирует презентации на macOS на естественном языке. Встроенный скилл Claude решает проблемы верстки: подрезку ш...

Keynote MCP

License: MIT Python 3.10+ PyPI macOS

An MCP server that gives AI full control over Apple Keynote through AppleScript automation. Create, edit, and export presentations — all via natural language.

Ships with a Claude Skill that encodes layout rules, font workarounds, and design patterns so presentations come out right on the first try.

Quick Start

Prerequisites
  • macOS 10.14+
  • Keynote application installed
  • Python 3.10+
Option A: Install from PyPI
pip install keynote-mcp

Or run directly with uvx (no install needed):

uvx keynote-mcp
Option B: Install from source
git clone https://github.com/ByAxe/keynote-mcp.git
cd keynote-mcp
python -m venv .venv
source .venv/bin/activate
pip install -e .
Register the MCP server

Claude Code (PyPI install / uvx):

claude mcp add keynote-mcp keynote-mcp

Claude Code (from source):

claude mcp add keynote-mcp "bash -c cd $(pwd) && .venv/bin/python -m keynote_mcp"

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "keynote-mcp": {
      "command": "keynote-mcp",
      "env": {
        "UNSPLASH_KEY": "your_key_here"
      }
    }
  }
}
Инструменты были проиндексированы:
add_bullet_list

Добавляет маркированный список на слайд

Параметры
  • font_namestring

    Название шрифта (необязательно)

  • font_sizenumber

    Размер шрифта (необязательно, по умолчанию 18)

  • itemsstring[]обязательный

    Перечисляет элементы.

  • slide_numberintegerобязательный

    Номер слайда

  • xnumber

    Координата X в пикселях (необязательно). Рекомендуемое значение для списка: 100-150

  • ynumber

    Координата Y в пикселях (необязательно). Для списка рекомендуется: 200-300.

add_code_block

Добавляет блок кода на слайд

Параметры
  • codestringобязательный

    Содержимое кода.

  • font_namestring

    Название шрифта (необязательно, по умолчанию Monaco)

  • font_sizenumber

    Размер шрифта (необязательно, по умолчанию 18)

  • slide_numberintegerобязательный

    Номер слайда

  • xnumber

    X-координата в пикселях (необязательно). Рекомендуется для кода: 100-200.

  • ynumber

    Координата Y в пикселях (необязательно). Рекомендуется для кода: 250-350.

add_image

Добавляет изображение на слайд

Параметры
  • image_pathstringобязательный

    Путь к файлу изображения.

  • slide_numberintegerобязательный

    Номер слайда

  • xnumber

    Координата X в пикселях (необязательно). Рекомендуемое значение для изображения: 400-600.

  • ynumber

    Y-координата в пикселях (необязательно). Рекомендуется для изображения: 200-400.

add_numbered_list

Добавляет нумерованный список на слайд.

Параметры
  • font_namestring

    Название шрифта (необязательно)

  • font_sizenumber

    Размер шрифта (необязательно, по умолчанию 18)

  • itemsstring[]обязательный

    Перечисляет элементы.

  • slide_numberintegerобязательный

    Номер слайда

  • xnumber

    Координата X в пикселях (необязательно). Рекомендуемое значение для списка: 100-150

  • ynumber

    Координата Y в пикселях (необязательно). Для списка рекомендуется: 200-300.

add_quote

Добавляет цитату на слайд

Параметры
  • font_namestring

    Название шрифта (необязательно)

  • font_sizenumber

    Размер шрифта (необязательно, по умолчанию 18)

  • quotestringобязательный

    Цитирует текст.

  • slide_numberintegerобязательный

    Номер слайда

  • xnumber

    Координата X в пикселях (необязательно). Рекомендуемое значение для цитаты: 150-250

  • ynumber

    Y-координата в пикселях (необязательно). Рекомендуемое значение для цитаты: 300-400

add_slide

Добавляет новый слайд в презентацию.

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • layoutstring

    Тип макета (необязательно)

  • positioninteger

    Позиция вставки (необязательно, 0 = добавить в конец)

add_subtitle

Добавляет подзаголовок на слайд

Параметры
  • font_namestring

    Название шрифта (необязательно)

  • font_sizenumber

    Размер шрифта (необязательно, по умолчанию 18)

  • slide_numberintegerобязательный

    Номер слайда

  • subtitlestringобязательный

    Текст субтитра

  • xnumber

    Координата X в пикселях (необязательный параметр). Рекомендуемое значение для субтитра: 100-200.

  • ynumber

    Координата Y в пикселях (необязательно). Рекомендуемое значение для субтитров: 120-180.

add_text_box

Добавляет текстовое поле на слайд.

Параметры
  • slide_numberintegerобязательный

    Номер слайда

  • textstringобязательный

    Текстовое содержимое

  • xnumber

    Координата X в пикселях (необязательно). Начало координат (0,0) - верхний левый угол. Рекомендуется: 50-950px.

  • ynumber

    Координата Y в пикселях (необязательно). Начало координат (0,0) находится в верхнем левом углу. Рекомендуемый диапазон: 50-650px.

add_title

Добавляет заголовок на слайд

Параметры
  • font_namestring

    Название шрифта (необязательно)

  • font_sizenumber

    Размер шрифта (необязательно, по умолчанию 18)

  • slide_numberintegerобязательный

    Номер слайда

  • titlestringобязательный

    Вы не указали сам текст для перевода. Пожалуйста, отправьте входной текст.

  • xnumber

    Координата X в пикселях (необязательно). Для заголовка рекомендуется: 100-200

  • ynumber

    Координата Y в пикселях (необязательно). Рекомендуется для заголовка: 50-100

add_unsplash_image_to_slide

Ищет в Unsplash и добавляет изображение на слайд

Параметры
  • heightnumber

    Высота изображения (необязательно)

  • image_indexinteger

    Выбирает индекс изображения (0-9, по умолчанию 0)

  • orientationenum

    Ориентация изображения (альбомная/портретная/почти квадратная)

  • querystringобязательный

    Поисковый запрос

  • slide_numberintegerобязательный

    Номер слайда

  • widthnumber

    Ширина изображения (необязательно)

  • xnumber

    Координата X (необязательно)

  • ynumber

    Координата Y (необязательно)

close_presentation

Закрывает презентацию

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • should_saveboolean

    Сохранять ли перед закрытием (по умолчанию: true)

create_presentation

Создаёт новую презентацию Keynote.

Параметры
  • templatestring

    Путь к шаблону (необязательно)

  • themestring

    Название темы (необязательно)

  • titlestringобязательный

    Название презентации

delete_element

Удаляет элемент по типу и индексу из слайда

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • element_indexintegerобязательный

    Индекс элемента (начиная с 1)

  • element_typeenumобязательный

    Тип элемента: текст, изображение, фигура или таблица.

  • slide_numberintegerобязательный

    Номер слайда

delete_slide

Удаляет слайд

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • slide_numberintegerобязательный

    Номер удаляемого слайда

duplicate_slide

Дублирует слайд.

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • new_positioninteger

    Новая позиция (необязательно, 0 = добавить в конец)

  • slide_numberintegerобязательный

    Номер слайда для дублирования

edit_text_item

Редактирует содержимое текстового элемента по индексу на слайде.

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • item_indexintegerобязательный

    Индекс текстового элемента (начиная с 1)

  • new_textstringобязательный

    Новый текстовый контент

  • slide_numberintegerобязательный

    Номер слайда

export_pdf

Экспортирует презентацию в PDF

Параметры
  • output_pathstringобязательный

    Путь к выходному файлу

get_available_layouts

Получает список доступных макетов слайдов.

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

get_available_themes

Получает список доступных тем.

Параметры

Без параметров.

get_presentation_info

Получает информацию о презентации (название, количество слайдов, тема)

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

get_presentation_resolution

Получает разрешение презентации (ширина, высота, соотношение сторон)

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

get_random_unsplash_image

Получает случайное изображение Unsplash и добавляет его на слайд.

Параметры
  • heightnumber

    Высота изображения (необязательно)

  • orientationenum

    Ориентация изображения (альбомная/портретная/почти квадратная)

  • querystring

    Поисковый запрос (необязательно)

  • slide_numberintegerобязательный

    Номер слайда

  • widthnumber

    Ширина изображения (необязательно)

  • xnumber

    Координата X (необязательно)

  • ynumber

    Координата Y (необязательно)

get_slide_content

Получает все элементы на слайде: возвращает количество и детали для текстовых элементов, изображений, фигур и таблиц.

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • slide_numberintegerобязательный

    Номер слайда

get_slide_count

Получает количество слайдов

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

get_slide_info

Получает информацию о слайде (номер, макет, количество текстовых элементов)

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • slide_numberintegerобязательный

    Номер слайда

get_slide_size

Получает размер слайда, соотношение сторон и справочную информацию о макете

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

get_speaker_notes

Получает заметки докладчика из слайда

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • slide_numberintegerобязательный

    Номер слайда

list_presentations

Перечисляет все открытые презентации

Параметры

Без параметров.

move_element

Перемещает элемент на новые координаты на слайде

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • element_indexintegerобязательный

    Индекс элемента (начиная с 1)

  • element_typeenumобязательный

    Тип элемента: текст, изображение, фигура или таблица.

  • slide_numberintegerобязательный

    Номер слайда

  • xnumberобязательный

    Новая координата X в пикселях

  • ynumberобязательный

    Новая координата Y в пикселях

move_slide

Перемещает слайд на другую позицию

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • from_positionintegerобязательный

    Исходное положение

  • to_positionintegerобязательный

    Целевая позиция

open_presentation

Открывает существующую презентацию Keynote

Параметры
  • file_pathstringобязательный

    Путь к файлу презентации

resize_element

Изменяет размер элемента на слайде

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • element_indexintegerобязательный

    Индекс элемента (начиная с 1)

  • element_typeenumобязательный

    Тип элемента: текст, изображение, фигура или таблица.

  • heightnumberобязательный

    Новая высота в пикселях

  • slide_numberintegerобязательный

    Номер слайда

  • widthnumberобязательный

    Новая ширина в пикселях

save_presentation

Сохраняет презентацию

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

screenshot_slide

Делает снимок экрана одного слайда

Параметры
  • formatstring

    Формат изображения (png/jpg, по умолчанию: png)

  • output_pathstringобязательный

    Путь к выходному файлу

  • slide_numberintegerобязательный

    Номер слайда

search_unsplash_images

Ищет изображения в Unsplash

Параметры
  • order_byenum

    Порядок сортировки (по релевантности/новизне/популярности)

  • orientationenum

    Ориентация изображения (альбомная/портретная/почти квадратная)

  • per_pageinteger

    Результатов на странице (1-50). По умолчанию: 20.

  • querystringобязательный

    Поисковый запрос

select_slide

Выбирает конкретный слайд

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • slide_numberintegerобязательный

    Номер слайда

set_presentation_theme

Устанавливает тему презентации

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • theme_namestringобязательный

    Название темы.

set_slide_layout

Устанавливает макет слайда

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • layoutstringобязательный

    Тип макета

  • slide_numberintegerобязательный

    Номер слайда

set_speaker_notes

Устанавливает заметки докладчика на слайде.

Параметры
  • doc_namestring

    Имя документа (необязательно, по умолчанию используется передний документ)

  • notesstringобязательный

    Текст заметок.

  • slide_numberintegerобязательный

    Номер слайда

1.0.0основная

Выберите клиент, чтобы установить ByAxe/keynote-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "byaxe-keynote-mcp-72aqboph7n": {
      "command": "uvx",
      "args": [
        "keynote-mcp"
      ],
      "env": {
        "UNSPLASH_KEY": "your_key_here"
      }
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "byaxe-keynote-mcp-72aqboph7n": {
      "command": "uvx",
      "args": [
        "keynote-mcp"
      ],
      "env": {
        "UNSPLASH_KEY": "your_key_here"
      }
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "byaxe-keynote-mcp-72aqboph7n": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "keynote-mcp"
      ],
      "env": {
        "UNSPLASH_KEY": "your_key_here"
      }
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"byaxe-keynote-mcp-72aqboph7n\",\"type\":\"stdio\",\"command\":\"uvx\",\"args\":[\"keynote-mcp\"],\"env\":{\"UNSPLASH_KEY\":\"your_key_here\"}}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "byaxe-keynote-mcp-72aqboph7n": {
      "command": "uvx",
      "args": [
        "keynote-mcp"
      ],
      "env": {
        "UNSPLASH_KEY": "your_key_here"
      }
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add byaxe-keynote-mcp-72aqboph7n --env UNSPLASH_KEY=your_key_here -- uvx keynote-mcp

Либо через JSON-конфиг:

claude mcp add-json byaxe-keynote-mcp-72aqboph7n "{\"command\":\"uvx\",\"args\":[\"keynote-mcp\"],\"env\":{\"UNSPLASH_KEY\":\"your_key_here\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add byaxe-keynote-mcp-72aqboph7n --env UNSPLASH_KEY=your_key_here -- uvx keynote-mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.byaxe-keynote-mcp-72aqboph7n]
command = "uvx"
args = ["keynote-mcp"]

[mcp_servers.byaxe-keynote-mcp-72aqboph7n.env]
UNSPLASH_KEY = "your_key_here"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите ByAxe/keynote-mcp, а в поле команды запуска — строку ниже:
uvx keynote-mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "byaxe-keynote-mcp-72aqboph7n": {
      "command": "uvx",
      "args": [
        "keynote-mcp"
      ],
      "env": {
        "UNSPLASH_KEY": "your_key_here"
      }
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "byaxe-keynote-mcp-72aqboph7n": {
      "command": "uvx",
      "args": [
        "keynote-mcp"
      ],
      "env": {
        "UNSPLASH_KEY": "your_key_here"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например byaxe-keynote-mcp-72aqboph7n.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: byaxe-keynote-mcp-72aqboph7n
    command: uvx
    args:
      - "keynote-mcp"
    env:
      UNSPLASH_KEY: your_key_here
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "byaxe-keynote-mcp-72aqboph7n": {
      "command": "uvx",
      "args": [
        "keynote-mcp"
      ],
      "env": {
        "UNSPLASH_KEY": "your_key_here"
      }
    }
  }
}

Похожие MCP-сервера

henilcalagiya/mcp-apple-notes

henilcalagiya/mcp-apple-notes

от henilcalagiya

MCP-сервер для автоматизации Apple Notes на macOS. Создавайте, редактируйте и удаляйте заметки и папки, ищите по ключевым словам. Работает с MCP-клиентами (Continue.dev, Claude Desktop). Основан на...

Python⭐ 52
recursechat/mcp-server-apple-shortcuts

recursechat/mcp-server-apple-shortcuts

от recursechat

MCP сервер для управления Apple Shortcuts на macOS. Позволяет AI-ассистентам (Claude) запускать и автоматизировать быстрые команды и сценарии. Помогает автоматизировать рутинные задачи на Mac без лишних действий.

JavaScript⭐ 351
taylorwilsdon/google_workspace_mcp

taylorwilsdon/google_workspace_mcp

от taylorwilsdon

Управляет Gmail, Календарём, Диском, Документами, Таблицами и Презентациями: пишет письма, создаёт события, редактирует файлы.

Python⭐ 3386
louis030195/toggl-mcp

louis030195/toggl-mcp

от louis030195

MCP сервер для управления временем в Toggl прямо из чата с ИИ-ассистентом: запускай и останавливай таймер, просматривай записи за день, проекты и удаляй пометки — всё через естественный язык. Идеально для разработчиков и фрилансеров, ведущих трекинг времени.

JavaScript⭐ 3
xing5/mcp-google-sheets

xing5/mcp-google-sheets

от xing5

Читает и записывает данные в Google Таблицы: обновляет ячейки, ищет по документу, создаёт листы. Поддерживает сервисные аккаунты и фильтрацию инструментов.

Python⭐ 1012
ayo-nci/bulkrender-mcp

ayo-nci/bulkrender-mcp

от ayo-nci

BulkRender MCP сервер для создания DOCX и PDF документов прямо из Claude, Cursor и других AI-ассистентов. Работает по шаблонам, поддерживает пакетную генерацию до 500 документов и не требует устано...

JavaScript⭐ 1
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин