A Model Context Protocol (MCP) server that enables AI assistants to control Keynote presentations through AppleScript automation.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add keynote --env UNSPLASH_KEY='<UNSPLASH_KEY>' -- python /path/to/keynote-mcp/start_server.py~/.codex/config.toml
[mcp_servers.keynote]
command = "python"
args = ["/path/to/keynote-mcp/start_server.py"]
env = { UNSPLASH_KEY = "<UNSPLASH_KEY>" }
# codex mcp add keynote --env UNSPLASH_KEY='<UNSPLASH_KEY>' -- python /path/to/keynote-mcp/start_server.py~/.cursor/mcp.json
{
"mcpServers": {
"keynote": {
"command": "python",
"args": [
"/path/to/keynote-mcp/start_server.py"
],
"env": {
"UNSPLASH_KEY": "<UNSPLASH_KEY>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"keynote": {
"type": "stdio",
"command": "python",
"args": [
"/path/to/keynote-mcp/start_server.py"
],
"env": {
"UNSPLASH_KEY": "<UNSPLASH_KEY>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"keynote": {
"command": "python",
"args": [
"/path/to/keynote-mcp/start_server.py"
],
"env": {
"UNSPLASH_KEY": "<UNSPLASH_KEY>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"keynote": {
"command": "python",
"args": [
"/path/to/keynote-mcp/start_server.py"
],
"env": {
"UNSPLASH_KEY": "<UNSPLASH_KEY>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"keynote": {
"command": "python",
"args": [
"/path/to/keynote-mcp/start_server.py"
],
"env": {
"UNSPLASH_KEY": "<UNSPLASH_KEY>"
}
}
}
}Environment variables
UNSPLASH_KEY
Replace the placeholders with your own credentials and keep them out of version control.