protools-sdk-mcp

jeffreygnatek/protools-sdk-mcp

3.1

If you are the rightful owner of protools-sdk-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

This project demonstrates the use of the Avid Pro Tools Scripting SDK (PTSL SDK) to automate and control Avid Pro Tools through a C++ application and a gRPC-based MCP server.

PTSL SDK + MCP Server Example

This project demonstrates how to use the Avid Pro Tools Scripting SDK (PTSL SDK) to automate and control Avid Pro Tools via a C++ application and a gRPC-based MCP server.

Overview

  • PTSL SDK: Provides a C++ API for scripting and controlling Avid Pro Tools.
  • MCP Server: A gRPC server that exposes Pro Tools automation commands over the network, implemented using the PTSL SDK.
  • Example Client: A simple C++ app that connects to the MCP server and registers a connection with Pro Tools.

Project Structure

/ (project root)
ā”œā”€ā”€ app/                # Application code (main.cpp, mcp_server.cpp, CMakeLists.txt)
ā”œā”€ā”€ sdk/                # PTSL SDK code (as provided by Avid)
ā”œā”€ā”€ README.md           # This file
ā”œā”€ā”€ CMakeLists.txt      # Top-level build file
└── ...

Prerequisites

  • CMake (version 3.15+ recommended)
  • Avid PTSL SDK (already included in sdk/)
  • Avid Pro Tools (running locally for PTSL communication)
  • gRPC and Protobuf (for building the MCP server)

Build and Run Instructions

1. Install Dependencies

  • CMake:
    Install via your package manager (e.g., brew install cmake on macOS, apt install cmake on Ubuntu, or from cmake.org).
  • gRPC and Protobuf:
    Install via your package manager or follow the gRPC installation guide.

2. Configure the Project

mkdir build && cd build
cmake ..

3. Build the Apps

make
  • On Windows, use your preferred generator (e.g., Visual Studio) and build from the IDE or with cmake --build ..

4. Run the MCP Server

From the build directory:

./app/mcp_server

5. Run the Example Client

From the build directory:

./app/ptsl_app

6. Troubleshooting

  • Pro Tools not running:
    Make sure Avid Pro Tools is running locally before using the PTSL features.

PTSL SDK Command Implementation Checklist

Below is a list of all available PTSL SDK commands. Use the checkboxes to track which commands have been implemented in the MCP server.

Command NameImplemented?
CreateSession[x]
OpenSession[x]
Import[x]
GetTrackList[x]
SelectAllClipsOnTrack[x]
ExtendSelectionToTargetTracks[x]
TrimToSelection[x]
CreateFadesBasedOnPreset[x]
RenameTargetTrack[x]
ConsolidateClip[x]
ExportClipsAsFiles[x]
ExportSelectedTracksAsAAFOMF[x]
GetTaskStatus[x]
HostReadyCheck[x]
RefreshTargetAudioFiles[x]
RefreshAllModifiedAudioFiles[x]
GetFileLocation[x]
CloseSession[x]
SaveSession[x]
SaveSessionAs[x]
Cut[x]
Copy[x]
Paste[x]
Clear[x]
CutSpecial[x]
CopySpecial[x]
ClearSpecial[x]
PasteSpecial[x]
ExportMix[x]
Spot[x]
ExportSessionInfoAsText[x]
GetDynamicProperties[x]
SetDynamicProperties[x]
GetEditSelection[x]
SetEditSelection[x]
GetTimelineSelection[x]
SetTimelineSelection[x]
GetTransportState[x]
SetTransportState[x]
GetLoopPlaybackState[x]
SetLoopPlaybackState[x]
GetPrePostRoll[x]
SetPrePostRoll[x]
GetNudgeValue[x]
SetNudgeValue[x]
GetSessionAudioFormat[x]
GetSessionSampleRate[x]
GetSessionBitDepth[x]
GetSessionInterleavedState[x]
GetSessionTimeCodeRate[x]
GetSessionFeetFramesRate[x]
GetSessionAudioRatePullSettings[x]
GetSessionVideoRatePullSettings[x]
GetSessionName[x]
GetSessionPath[x]
GetSessionStartTime[x]
GetSessionLength[x]
SetSessionAudioFormat[x]
SetSessionBitDepth[x]
SetSessionInterleavedState[x]
SetSessionTimeCodeRate[x]
SetSessionFeetFramesRate[x]
SetSessionAudioRatePullSettings[x]
SetSessionVideoRatePullSettings[x]
SetSessionStartTime[x]
SetSessionLength[x]
GetPTSLVersion[x]
GetPlaybackMode[x]
GetRecordMode[x]
GetTransportArmed[x]
ClearMemoryLocation[x]
RenameSelectedClip[x]
RenameTargetClip[x]
TogglePlayState[x]
ToggleRecordEnable[x]
PlayHalfSpeed[x]
RecordHalfSpeed[x]
EditMemoryLocation[x]
GetMemoryLocations[x]
RegisterConnection[x]
CreateMemoryLocation[x]
CreateNewTracks[x]
SelectTracksByName[x]
GetEditMode[x]
SetEditMode[x]
GetEditTool[x]
SetEditTool[x]
RecallZoomPreset[x]
GetEditModeOptions[x]
SetEditModeOptions[x]
ImportVideo[x]
SelectMemoryLocation[x]
SetTrackMuteState[x]
SetTrackSoloState[x]
SetTrackSoloSafeState[x]
SetTrackRecordEnableState[x]
SetTrackRecordSafeEnableState[x]
SetTrackInputMonitorState[x]
SetTrackSmartDspState[x]
SetTrackHiddenState[x]
SetTrackInactiveState[x]
SetTrackFrozenState[x]
SetTrackOnlineState[x]
SetTrackOpenState[x]
GetSessionIDs[x]
GetMemoryLocationsManageMode[x]
SetMemoryLocationsManageMode[x]
SetMainCounterFormat[x]
SetSubCounterFormat[x]
GetMainCounterFormat[x]
GetSubCounterFormat[x]
Undo[x]
Redo[x]
UndoAll[x]
RedoAll[x]
ClearUndoQueue[x]
SetTrackDSPModeSafeState[x]
GetSessionSystemDelayInfo[x]
GroupClips[x]
UngroupClips[x]
UngroupAllClips[x]
RegroupClips[x]
RepeatSelection[x]
DuplicateSelection[x]
ClearAllMemoryLocations[x]
GetSessionVideoFormat[x]
GetSessionVideoRate[x]
GetSessionVideoPullDown[x]
GetSessionVideoStartTime[x]
GetSessionVideoOffset[x]
GetSessionVideoDuration[x]
GetSessionVideoFileName[x]

License

This project is for demonstration purposes and is not affiliated with or endorsed by Avid Technology, Inc.


This project is a starting point for building modern automation tools for Avid Pro Tools using the PTSL SDK and MCP protocol.