Skip to main content
Glama

LogicProMCP

LogicProMCP is a local Model Context Protocol server plus a planned Logic Pro MIDI FX bridge for working with Logic Pro MIDI material.

The intended Logic integration is:

  1. Insert a LogicProMCP Bridge AUv3 MIDI FX plugin on every MIDI/software-instrument track that should be readable.

  2. Each plugin instance sends captured MIDI events to the local MCP sidecar.

  3. The MCP server exposes the aggregated result as "all Logic tracks."

  4. Generated MIDI can be written as .mid files first, then later sent back through a virtual MIDI/AUv3 output path.

Logic Pro does not currently expose a public project API that lets one local service directly enumerate every track and MIDI region in an open project. "Read all tracks automatically" therefore means "read all tracks that have the bridge extension inserted," ideally through a saved Logic template.

Tools

  • bridge_status: show the local Logic bridge receiver.

  • list_logic_tracks: list tracks reported by Logic-side bridge instances.

  • read_logic_track: read captured MIDI from one bridge instance.

  • read_all_logic_tracks: read captured MIDI from all bridge instances.

  • read_midi_file: inspect a Standard MIDI File exported from Logic.

  • create_midi_region: create a new single-region .mid file from a musical prompt.

  • create_drum_region: create a drum pattern region.

  • create_chord_region: create a chord progression region.

Related MCP server: logic-pro-mcp

Install

cd /Users/shlomy/GIT_Repos/LogicProMCP
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .

Run MCP Server

logicpromcp

For Claude Desktop or another MCP client, configure the command as:

{
  "mcpServers": {
    "logicpro": {
      "command": "/Users/shlomy/GIT_Repos/LogicProMCP/.venv/bin/logicpromcp"
    }
  }
}

CLI Smoke Test

logicpromcp-midi create --prompt "four bar funky bass line in C minor" --out examples/funky_bass.mid
logicpromcp-midi inspect examples/funky_bass.mid

Logic Workflow

  • To read live/playback material from Logic: run logicpromcp, then insert the AUv3 bridge on every track that should be visible to the MCP server.

  • To read exported material: select regions in Logic, use File > Export > Selection as MIDI File, then pass that .mid path to read_midi_file.

  • To write a new track/region: run create_midi_region, then drag the generated .mid file into Logic or use File > Import > MIDI File.

  • To preserve tempo and bar alignment, create generated regions at the same BPM and bar length as the Logic project.

See docs/LOGIC_EXTENSION.md for the extension bridge contract.

Roadmap

  • AUv3 MIDI FX listener for live MIDI capture per inserted track.

  • Virtual MIDI output for recording generated MIDI directly into Logic.

  • AppleScript/Shortcuts helper for importing generated MIDI into the frontmost Logic project.

  • Region metadata sidecar files for round-tripping track names, bar ranges, prompts, and model decisions.

Available Tools

8 tools
bridge_statusA

Show the local Logic extension bridge status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states 'Show...status' without disclosing read-only nature, side effects, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with verb and resource, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and an output schema, the description is adequate but fails to mention that the operation is safe/non-destructive, which would be helpful with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline is 4. The description adds the verb 'Show' implying read operation, which is minimal but acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Show' and resource 'local Logic extension bridge status', clearly distinguishing from sibling tools that create or read tracks/regions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The context suggests it's for checking bridge status, but no when-not or prerequisites are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_chord_regionC

Create a chord progression MIDI region.

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmNo
keyNoC minor
barsNo
channelNo
output_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Create', implying mutation, but does not mention side effects (e.g., file creation, overwrite behavior), permissions needed, or any constraints. The output schema exists but the description adds no behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no redundancy. It is appropriately front-loaded and contains no filler, earning perfect conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (which reduces the need to describe return values), the description lacks critical context for a tool with 5 parameters. It does not explain what a 'chord progression' entails, the role of the key parameter, or how parameters interact. The tool's complexity is moderate, but the description is too sparse.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it provides no parameter details at all. Parameters like bpm, key, bars, channel, and output_dir are undefined, leaving the agent to infer their meaning solely from names and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Create') and resource ('chord progression MIDI region'), clearly distinguishing it from siblings like create_drum_region and create_midi_region. However, the phrase 'chord progression' is somewhat ambiguous without further context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over alternatives. Siblings like create_drum_region and create_midi_region are listed but never differentiated. The description offers no context about prerequisites or appropriate scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_drum_regionC

Create a drum MIDI region on channel 10.

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmNo
barsNo
promptNofour on the floor drum groove
output_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only mentions channel 10, omitting details like whether it overwrites, current project interaction, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single-sentence description is concise and front-loaded, but sacrifices necessary detail for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description fails to explain the four parameters or any behavioral context, making it inadequate for a tool with no annotations and no parameter descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds no meaning to the four parameters (bpm, bars, prompt, output_dir), leaving them entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a drum MIDI region specifically on channel 10, using a verb+resource structure and distinguishing it from siblings like create_midi_region and create_chord_region.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_midi_regionC

Create a Logic-importable MIDI region from a short musical prompt.

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmNo
keyNoC minor
barsNo
promptYes
channelNo
output_dirNo
track_nameNoGenerated Region

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states the basic purpose. It does not disclose side effects (e.g., file creation), requirements (e.g., Logic availability), or any constraints. The output schema exists but behavioral traits like mutation or idempotency are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it lacks structure or front-loading of critical details. Every word earns its place, but the content is insufficient for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no annotations, and no param descriptions, the description is highly incomplete. It does not cover workflow, output format, or environmental requirements. The output schema partially mitigates return value ambiguity, but behavioral context remains missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no information about any of the 7 parameters (e.g., prompt, bpm, key). It fails to explain their meaning, defaults, or how they affect output, requiring the agent to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: creating a Logic-importable MIDI region from a short musical prompt. It uses a specific verb and resource, but does not explicitly distinguish from sibling tools like create_chord_region or create_drum_region, which limits the score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., create_chord_region, create_drum_region). There is no mention of prerequisites, context, or exclusion criteria, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_logic_tracksA

List Logic tracks currently visible through inserted LogicProMCP extensions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It does not disclose behavioral traits such as read-only nature, idempotency, or behavior when no extensions are inserted. The tool appears to be a safe listing operation, but this is not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that efficiently conveys the tool's action and scope. No wasted words, front-loaded with essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While output schema exists and description is minimal, it lacks context on what 'visible through inserted extensions' means and how the result differs from read_all_logic_tracks. Completeness is adequate but leaves ambiguity about scope and usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. Baseline of 4 applies as description adds no param semantics, but none are needed. No additional parameter information required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists Logic tracks visible through inserted LogicProMCP extensions, distinguishing it from sibling tools like read_all_logic_tracks that list all tracks. The verb 'list' and specific scope 'currently visible through...extensions' provide precise purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like read_all_logic_tracks or read_logic_track. No mention of prerequisites, context, or exclusion scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_all_logic_tracksA

Read all MIDI events captured from all inserted Logic-side bridge instances.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits. It only states the action without explaining side effects, data freshness, performance implications, or error scenarios.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no extraneous words. Every word carries meaning. Well-structured and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple read-all tool with an output schema, but lacks explanation of when the result might be empty, how bridge instances are aggregated, or format of the returned MIDI events.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the description need not add param info. Baseline of 4 is appropriate as schema coverage is 100% and the description is consistent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb (Read), resource (MIDI events), and scope (from all inserted Logic-side bridge instances). Distinguishes from siblings like 'read_logic_track' (single track) and 'list_logic_tracks' (listing only).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as 'read_logic_track' for a single track or 'list_logic_tracks' for metadata. No context on conditions for effective use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_logic_trackC

Read MIDI events captured from one Logic-side bridge instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden but fails to disclose behavioral traits. It does not state whether the tool is read-only, has side effects, requires permissions, or handles errors. The description essentially restates the tool's name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. However, it is overly terse and sacrifices necessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists but is not described, and the description omits what the returned MIDI events look like or how to interpret them, the description lacks completeness for a tool with one parameter and no schema descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for the sole parameter 'instance_id', and the description only implicitly refers to it ('one Logic-side bridge instance'). It does not explain how to obtain or format the instance_id, nor its valid values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action ('Read') and the resource ('MIDI events captured from one Logic-side bridge instance'). It effectively distinguishes from siblings like 'read_all_logic_tracks' and 'read_midi_file' by focusing on a single instance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any explicit guidance on when to use this tool versus alternatives such as 'read_all_logic_tracks' or 'read_midi_file'. It lacks when-to-use or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_midi_fileC

Read a Standard MIDI File exported from Logic Pro.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description lacks behavioral details such as side effects, permissions, or error behavior. Only indicates a read operation, but does not disclose if file must exist or other constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded. However, it is too brief for a tool with no annotations and low schema coverage, making it under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description fails to explain what reading a MIDI file entails or what the return value represents. Lacks completeness for a tool with a single parameter and no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, yet the description adds no meaning to the 'path' parameter. It does not specify format, required extension, or any constraints, leaving the agent without guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Read' and resource 'Standard MIDI File' with context 'exported from Logic Pro'. This distinguishes it from sibling tools that read Logic tracks or create regions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like read_logic_track or read_all_logic_tracks. The description only states what it does without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv0.1.0
    • First observedbridge_status
    • First observedcreate_chord_region
    • First observedcreate_drum_region
    • First observedcreate_midi_region
    • First observedlist_logic_tracks
    • First observedread_all_logic_tracks
    • First observedread_logic_track
    • First observedread_midi_file

TDQS

B3.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: status, creating specific types of MIDI regions, listing tracks, and reading MIDI events from different sources. There is no overlap or ambiguity.

Naming Consistency4/5

Most tools use a consistent verb_noun pattern with underscores (e.g., create_chord_region, list_logic_tracks). However, 'bridge_status' breaks the pattern by having no verb, causing minor inconsistency.

Tool Count5/5

With 8 tools, the server is well-scoped for its purpose of interacting with Logic Pro's MIDI capabilities. Each tool serves a necessary role without being overwhelming or insufficient.

Completeness3/5

The tool set covers creation and reading of MIDI regions and tracks, but lacks update and delete operations. This gap may hinder workflows that require modifying or removing existing elements.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shlomyss/LogicProMCP-for-Codex'

If you have feedback or need assistance with the MCP directory API, please join our Discord server