Skip to main content
Glama

traktor-mcp

MCP tools for a Traktor collection, over the traktor-nml library.

Traktor has no API: its collection is one XML file, collection.nml. This server exposes the traktor-nml reconciliation over stdio.

tool

writes

what it does

status

no

the collection and the lanes, in one paragraph

plan

no

what a run would change, entry by entry

purge

with apply: true

take out the entries whose file is gone

apply

yes

repoint the entries a run replaced, and add the files no entry has

Install

uv tool install git+https://github.com/alchimestre/traktor-mcp

Related MCP server: Spotify Playlist MCP

Run

traktor-mcp --config ~/traktor.toml

Mounted in an MCP client:

"traktor": {
  "type": "stdio",
  "command": "traktor-mcp",
  "args": ["--config", "/home/you/traktor.toml"]
}

Configuration

config.toml, from --config <path> if given, else from beside the traktor-nml checkout, else the values below.

[paths]
collection = "~/Documents/Native Instruments/Traktor */collection.nml"
lossless   = "~/Music/music-agent/lossless"
lossy      = "~/Music/music-agent/lossy"
state      = "~/Music/music-agent/state"    # optional: a pipeline's job state, read as data

collection is a pattern: a Traktor upgrade changes the directory it lives in. lossless and lossy are the directories the collection is meant to hold; a file in either is a candidate, a file elsewhere is the app's own business and is reported rather than moved. Relative paths resolve against the config file's own directory. No secrets in it.

Before it writes

  1. Close Traktor. It rewrites the collection on exit, over anything written while it was up; apply refuses while it is running.

  2. Run plan first. It writes nothing and takes no time.

  3. apply copies the collection to collection.nml.<stamp>.backup beside it, then repoints and adds in one edit. Every entry nobody is repointing stays byte for byte as Traktor wrote it.

  4. apply removes nothing. purge is the only verb that removes, and only when it is called with apply: true.

  5. Run Check Consistency → Analyze in Traktor after a write. A repointed entry gives up the fingerprint, tempo, loudness, key and grid measured from the audio that is gone, and the app has to measure them again.

Development

uv sync
uv pip install -e ../traktor-nml    # to edit the library at the same time
uv run pytest

MIT licensed.

Available Tools

4 tools
applyA

Write the plan into the collection: one backup beside it, then one edit that leaves every entry nobody is repointing byte for byte as Traktor wrote it. Refuses while Traktor is running. Returns what was written and what to do in the app afterwards.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses backup creation, a scoped edit preserving unrepointed entries byte-for-byte, a precondition that it refuses while Traktor is running, and that it returns written results plus post-apply app guidance. It does not cover permissions or failure atomicity, but the main behavioral traits are exposed.

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 purpose is front-loaded, and the description is compact with no filler. The middle clause about byte-for-byte preservation is dense and domain-specific, but it is not wasted text.

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

Completeness4/5

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

The tool has no input parameters and has an output schema, so the description only needs to cover execution semantics and conditions. It does that, including backup behavior, the Traktor-running refusal, and return guidance, though it could more explicitly tie itself to the plan sibling as a prerequisite.

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?

There are zero parameters, so the schema has nothing for the description to explain. The baseline for a no-parameter tool is 4, and no parameter-level ambiguity is introduced.

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 action: writing an existing plan into a collection, including backup and edit behavior. It is clearly not the plan-creation or purge tool, though it does not explicitly name which sibling to use instead.

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

Usage Guidelines3/5

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

Usage is implied: this is the execution step after a plan exists, and it refuses while Traktor is running. It does not explicitly say when to choose apply versus status, plan, or purge, nor does it name alternatives.

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

planA

What a run would change, writing nothing: every entry to repoint onto the file that replaced it, every lane file to add, and every entry whose file is gone — either a duplicate the collection holds elsewhere, or a file that is not there and was not replaced.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does disclose the critical non-mutating behavior. It also explains the kinds of changes included in the plan, though it lacks operational caveats such as whether the plan is scoped to a current collection or how duplicates are determined.

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 front-loaded with the key distinction that nothing is written, followed by a compact enumeration of plan categories. It is a single dense sentence with no filler, though the nested 'either ... or ...' clause could be easier to parse if split.

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

Completeness4/5

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

Given zero parameters and an existing output schema, the description supplies enough context to understand what the plan contains and that it is non-mutating. It could be more complete by clarifying the relationship to apply or the scope of the current collection.

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?

The tool takes zero parameters, so there is no parameter semantics to explain. The baseline of 4 applies because the description does not need to compensate for an input schema gap.

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 a dry-run planning function: 'What a run would change, writing nothing,' and enumerates the categories of planned changes. It distinguishes itself from a mutating run by saying nothing is written, but it does not explicitly name the sibling apply tool for contrast.

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

Usage Guidelines3/5

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

The phrase 'writing nothing' implies this is a preview step before apply, but the description never explicitly says when to use this versus apply, purge, or status. It also omits prerequisites or exclusions, leaving usage to be inferred from the sibling names.

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

purgeA

Take out every entry in the collection whose file is gone — residue, since a collection is an index of files that exist. A playlist reference to a removed entry is moved to the entry that keeps the track, or dropped when nothing does; history, cues and play counts go with the entry and are reported. Dry run unless apply is true. Refuses while Traktor is running, and takes one backup beside the collection before it writes.

NameRequiredDescriptionDefault
applyNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses the dry-run default, the refusal condition when Traktor is running, the automatic single backup taken beside the collection before writing, and the cascading effects on playlist references, history, cues and play counts. These are exactly the mutation risks an agent needs before invoking.

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?

A single dense paragraph where every clause carries information — scope, side effects, dry-run default, refusal, backup. The most safety-critical fact (dry run by default) is bolded mid-paragraph rather than front-loaded, which is the one structural miss.

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

Completeness4/5

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

An output schema exists, so the 'reported' results needn't be enumerated, and the description covers side effects, prerequisites and write safety. Minor gap: it doesn't indicate how an agent should determine whether Traktor is running (the sibling 'status' tool) before retrying a refusal.

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?

Schema coverage is 0% and the sole parameter 'apply' is undocumented in the schema, but the description supplies its complete meaning: the operation is a dry run unless apply is true. That fully compensates for the coverage gap; only the boolean's explicit false default is left to the schema.

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?

Specific verb and resource: removes collection entries whose backing files no longer exist, with the rationale ('a collection is an index of files that exist'). It's unambiguous what the tool does, though it never names the sibling tools (plan/apply/status) that overlap with the dry-run-vs-write distinction, leaving an agent to infer routing.

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

Usage Guidelines4/5

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

Gives a clear triggering condition (residue from deleted files) and states the default operating mode ('Dry run unless apply is true'), plus a hard prerequisite ('Refuses while Traktor is running'). It stops short of saying when to prefer the sibling 'plan' or 'apply' tools instead of this one.

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

statusA

Where the Traktor collection and the two lanes stand: how many entries, how many files are in the lanes, and how many of each thing a run would do. Reads the whole collection and both lanes, writes nothing.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the key safety trait: 'Reads the whole collection and both lanes, writes nothing.' It also implies a full scan, but says nothing about cost, locking, or whether repeated calls are safe during an in-flight apply.

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?

Two sentences with no filler, and the subject of the report is front-loaded before the read-only guarantee. Every clause contributes either scope or safety information.

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

Completeness4/5

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

An output schema exists and there are no parameters, so the description only needs to frame the tool's role and behavior, which it largely does. The one real gap is the missing boundary against the `plan` sibling.

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?

Zero parameters, so there is nothing for the description to disambiguate and the baseline applies. The description correctly implies the tool takes no scoping arguments and always reports over the whole collection and both lanes.

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 names a concrete report: entry counts in the Traktor collection, file counts in the two lanes, and projected run counts. That is specific enough to act on, but it never distinguishes this from the `plan` sibling, which plausibly also reports what a run would do.

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?

There is no explicit when-to-use guidance and no alternatives are named. An agent must infer that `status` is the read-only inspection step versus `plan`, `apply`, or `purge`, but the description never states that routing rule.

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.

  1. 4 tool updatesv0.1.0
    • First observedapply
    • First observedplan
    • First observedpurge
    • First observedstatus

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation3/5

status and plan are distinct read-only views, but purge and apply both mutate the collection with backups and Traktor-running guards, and plan already reports removals that purge handles. The boundaries are understandable from descriptions but not fully crisp.

Naming Consistency3/5

All names are single lowercase words, but the set mixes noun-like status/plan with verb-like purge/apply, so there is no predictable action pattern. It is readable but not systematic.

Tool Count5/5

Four tools map cleanly to inspect, preview, clean, and commit operations for a narrow collection-maintenance utility. No tool feels extraneous for the stated scope.

Completeness4/5

The surface covers the main lifecycle: status, plan, purge, and apply with backups. Minor gaps include no explicit post-apply verification or backup/restore management, but core workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Search and read locally-recorded meeting transcripts over stdio. Read-only, no network. Exposes list_sessions, get_session, and search_transcripts to any MCP client.
    230 PyPI
    7
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A local stdio MCP adapter for the Daykeeper management API. It uses separately issued scoped credentials and exposes read-only tools by default; planning and mutations require explicit opt-in.
    8
    24 npm
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Connects MCP clients to a self-hosted photo library through its REST API, exposing assets, albums, people, search, and optional administrative toolsets with read-only defaults and confirm-gated writes. It supports stdio and localhost Streamable HTTP transports.
    5
    71 npm
    MIT