ptsl-mcp-server
Provides integration with Avid Pro Tools via the PTSL scripting API, enabling AI assistants to create, open, save, and close sessions, create tracks, import audio, export session information, set session start timecodes, and run any available PTSL command.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ptsl-mcp-servercreate a new 48 kHz session called "Podcast" on the Desktop"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ptsl-mcp-server
An MCP server that lets AI assistants (Claude Code, Claude Desktop, any MCP client) drive Avid Pro Tools through the PTSL scripting API.
It differs from other Pro Tools MCP servers in one point: it knows every PTSL command. The command list, parameters and enum values are read from the protobuf definition that ships with py-ptsl, so any command Pro Tools understands can be described and executed, including the ones py-ptsl has no Python wrapper for.
Experimental. Write commands modify the open session. Use the read-only mode if you only want to inspect.
Features
Generic access to all PTSL commands:
list_commands,describe_command,run_commandcover the wholeCommandIdenum (159 commands with PTSL 2026). Parameters are plain JSON; enums by name or number; nested messages as objects.Convenience tools for the common session loop: create, open, save, save as, close; create tracks; import audio; Session Info as Text as a string (no file dialog); set the session start timecode.
Hard timeouts on every call. py-ptsl does not pass a gRPC deadline, so a modal dialog in Pro Tools (missing plug-in, playback engine, sample-rate mismatch) would block forever. This server injects a deadline and reports a stuck Pro Tools as
TIMEOUTinstead of hanging the assistant.Serialized calls and automatic reconnect after a gRPC failure.
Path mapping for the setup where Pro Tools runs on another machine and the shared volume is mounted under different paths on each side. Every path field is translated in both directions; paths outside the configured root are rejected.
Read-only mode (
PTSL_MCP_READ_ONLY=1) refuses every command that can change a session, in the convenience tools and inrun_command.stdio-safe: the py-ptsl
CreateSessionBuilderprints its request to stdout, which corrupts a stdio MCP transport. The server builds the request itself. It also fixes py-ptsl's audio import, which sends the wrong import type.
Related MCP server: ableton-mcp
Requirements
A Pro Tools version that ships the PTSL scripting server (introduced with Pro Tools 2022.9). Tested with Pro Tools 2026.4 (PTSL version 2026).
Python 3.10+
py-ptsl,mcp,grpcio,protobuf(installed automatically)
Installation
pip install git+https://github.com/ruehljens-creator/ptsl-mcp-serveror from a clone:
git clone https://github.com/ruehljens-creator/ptsl-mcp-server
cd ptsl-mcp-server
pip install -e .Check that the package is installed and see the registered tools:
ptsl-mcp-server --list-toolsIf the ptsl-mcp-server script is not on your PATH (common with framework Python installs on macOS), use python3 -m ptsl_mcp.server everywhere the examples say ptsl-mcp-server.
Configuration
Everything is set through environment variables.
Variable | Default | Meaning |
|
| gRPC address of Pro Tools' PTSL server |
|
| default deadline per command, seconds |
| unset | shared volume root as seen by this machine |
| unset | the same root as seen by Pro Tools |
|
|
|
|
| names registered with Pro Tools |
If both roots are unset, paths are passed through unchanged (Pro Tools on the same machine). If both are set, every path is translated; setting only one is an error.
Claude Code
Add to .mcp.json in your project (see examples/):
{
"mcpServers": {
"ptsl": {
"command": "ptsl-mcp-server",
"env": { "PTSL_ADDRESS": "localhost:31416" }
}
}
}Or from the command line:
claude mcp add ptsl -- ptsl-mcp-serverClaude Desktop
Add the same block to claude_desktop_config.json.
Tools
Diagnostics
Tool | Description |
| Checks the connection; returns PTSL version, address, path mapping, read-only state. |
| Name, path (Pro Tools view and local view), sample rate, bit depth, start time, timecode rate. |
| Tracks with type and format. |
Session workflow
Tool | Description |
| Creates |
| Opens a session file. |
| Saves the open session. |
| Saves under a new name. |
| Closes the open session. |
| Creates tracks. |
| Imports audio files, optionally spotted to a sample or timecode position. |
| Session Info as Text, returned or written to a file. |
| Sets the session start timecode. |
Generic
Tool | Description |
| All PTSL commands with request/response field names, marked |
| Full request/response schema of one command: field types, enum values, nested fields. |
| Runs any command. Returns request, response and task status as JSON. |
Example, run from an assistant:
describe_command("CreateNewTracks")
run_command("CreateNewTracks", {"number_of_tracks": 2, "track_name": "Dialog",
"track_format": "TF_Mono", "track_type": "TT_Audio",
"track_timebase": "TTB_Samples"})
run_command("GetSessionSampleRate")Safety notes
Pro Tools shows modal dialogs on session open (missing plug-ins, playback engine, sample-rate mismatch) that are invisible over PTSL. The server reports these as timeouts; someone has to dismiss the dialog in Pro Tools.
create_sessioncloses the currently open session without asking. Save it first.The read-only classification in
run_commandis by command name (Get*,HostReadyCheck,ExportSessionInfoAsText, connection commands). Everything else is treated as a write.
Development
ptsl-mcp-server --list-tools # registered MCP tools
ptsl-mcp-server --list-commands # all PTSL command namesLicense
MIT, see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control Pro Tools via the PTSL gRPC API, providing session management, timeline navigation, track control, clip management, editing, markers, transport, audio analysis, and more.19MIT
- FlicenseBqualityDmaintenanceMCP server for controlling Ableton Live, enabling AI assistants to interact with Live sessions through tools for track/clip/scene management, playback control, and device parameter adjustments.48-
- AlicenseBqualityAmaintenanceLets AI clients inspect and control DaVinci Resolve projects via MCP tools.4466 npm23MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to control DaVinci Resolve Studio via MCP, providing full scripting API coverage plus workflow helpers for editing, media organization, rendering, grading, and more.15,911 npmMIT