trop3n/propresenter-mcp-server
If you are the rightful owner of propresenter-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The ProPresenter MCP Server is a Model Context Protocol server that allows AI assistants to control and automate ProPresenter presentations through its HTTP API.
ProPresenter MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to control and automate ProPresenter presentations through its HTTP API.
Features
This MCP server provides comprehensive control over ProPresenter with 48+ tools covering:
- Presentation Control: Navigate slides, trigger specific slides, get presentation status
- Library Management: Browse libraries and presentations
- Playlist Management: List, focus, and trigger playlist items
- Looks: Control visual presets and audience looks
- Macros: Execute macros by name or ID
- Messages: Display and clear messages
- Props: Trigger and clear props
- Timers: Start, stop, and reset timers
- Audio: Manage audio playlists
- Clear Operations: Clear specific layers or all content
- Stage Display: Control stage display layouts
- Themes: Access and manage themes
- Video Inputs: Trigger video inputs
- Utilities: Find My Mouse and other helper functions
Prerequisites
- ProPresenter 7.9+ with HTTP API enabled
- Python 3.10 or higher
- ProPresenter Network API enabled (Preferences → Network)
Installation
1. Clone or download this repository
git clone <repository-url>
cd propresenter-mcp-server
2. Create a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
3. Install dependencies
pip install -r requirements.txt
# or if using pyproject.toml:
pip install -e .
4. Configure environment variables
Create a .env file in the project root:
PROPRESENTER_HOST=192.168.1.100
PROPRESENTER_PORT=57369
Finding your ProPresenter API settings:
- Open ProPresenter
- Go to Preferences → Network
- Enable "Network"
- Note the IP address and Port number
- Update your
.envfile with these values
Usage
Running the MCP Server
The server is designed to be run via the MCP command-line interface:
mcp run mcp-server.py
Or install it in your MCP client configuration.
MCP Client Configuration
Add this server to your MCP client's configuration file (e.g., Claude Desktop):
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"propresenter": {
"command": "python",
"args": ["/path/to/propresenter-mcp-server/mcp-server.py"],
"env": {
"PROPRESENTER_HOST": "192.168.1.100",
"PROPRESENTER_PORT": "57369"
}
}
}
}
Or use the mcp CLI:
mcp install mcp-server.py --name propresenter
Available Tools
Presentation Control
get_active_presentation()- Get current presentation infoget_slide_index()- Get current slide indextrigger_slide_by_index(index)- Go to specific slidenext_slide()- Advance to next slideprevious_slide()- Go to previous slidefocus_presentation()- Focus active presentation
Library & Playlists
get_libraries()- List all librariesget_library_items(library_id)- Get presentations in libraryget_playlists()- List all playlistsget_active_playlist()- Get current playlistget_playlist_items(playlist_id)- Get items in playlistfocus_playlist_item(playlist_id, index)- Select playlist itemtrigger_playlist_item(playlist_id, index)- Trigger playlist item
Looks & Macros
get_looks()- List all looksget_current_look()- Get active looktrigger_look_by_id(look_id)- Activate a lookget_macros()- List all macrostrigger_macro_by_id(macro_id)- Execute macro by IDtrigger_macro_by_name(name)- Execute macro by name
Messages & Props
get_messages()- List all messagestrigger_message_by_id(message_id)- Show messageclear_message_by_id(message_id)- Hide messageget_props()- List all propstrigger_prop_by_id(prop_id)- Show propclear_prop_by_id(prop_id)- Hide prop
Timers & Audio
get_timers()- List all timersstart_timer_by_id(timer_id)- Start timerstop_timer_by_id(timer_id)- Stop timerreset_timer_by_id(timer_id)- Reset timerget_audio_playlists()- List audio playlistsget_audio_playlist_items(playlist_id)- Get audio items
Clear Operations
clear_all()- Clear all layersclear_layer(layer)- Clear specific layer (audio, props, messages, slide, media, video_input)get_clear_groups()- List clear groupstrigger_clear_group_by_id(group_id)- Execute clear group
Stage & Display
get_stage_layouts()- List stage layoutsget_active_stage_layout()- Get current stage layoutset_stage_layout_by_id(layout_id)- Change stage layoutget_themes()- List themesget_theme_by_id(theme_id)- Get theme details
Video & Utilities
get_video_inputs()- List video inputstrigger_video_input_by_index(input_index)- Activate video inputfind_my_mouse()- Execute Find My Mouse
Example Usage with AI Assistant
Once configured, you can ask your AI assistant natural language questions like:
- "Show me the current presentation status"
- "Go to the next slide"
- "Trigger the macro named 'Welcome'"
- "Start the countdown timer"
- "Clear all layers"
- "Switch to the 'Minimalist' stage layout"
Troubleshooting
Connection Errors
Error: Cannot connect to ProPresenter at http://...
Solutions:
- Verify ProPresenter is running
- Check Network API is enabled in ProPresenter Preferences → Network
- Confirm the host IP and port in your
.envfile - Test connection:
curl http://YOUR_IP:YOUR_PORT/v1/presentation/active - Check firewall settings aren't blocking the connection
Timeout Errors
Error: Request timed out connecting to ProPresenter
Solutions:
- Ensure ProPresenter isn't overloaded
- Check network connectivity
- Increase timeout in
call_propresenter_api()function if needed
Authentication Errors
Error: Authentication failed
Some ProPresenter configurations require authentication. If you see this error, you may need to add authentication support to the server.
Endpoint Not Found
Error: Endpoint not found: /v1/...
This endpoint may not be supported in your ProPresenter version. Ensure you're running ProPresenter 7.9 or higher. Some endpoints may be version-specific.
API Documentation
For complete ProPresenter API documentation, visit:
- Official: Access via ProPresenter → Preferences → Network → "API Documentation" button
- Community: ProPresenter API Documentation
- OpenAPI Spec: https://openapi.propresenter.com/
Development
Running Tests
pytest
Code Formatting
black mcp-server.py
ruff check mcp-server.py
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
License
MIT License - see LICENSE file for details
Acknowledgments
- Built with FastMCP
- ProPresenter API documentation by the community
- Renewed Vision for ProPresenter