traktor-mcp
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., "@traktor-mcpplan what would change in my Traktor collection"
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.
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 |
| no | the collection and the lanes, in one paragraph |
| no | what a run would change, entry by entry |
| with | take out the entries whose file is gone |
| yes | repoint the entries a run replaced, and add the files no entry has |
Install
uv tool install git+https://github.com/alchimestre/traktor-mcpRelated MCP server: Spotify Playlist MCP
Run
traktor-mcp --config ~/traktor.tomlMounted 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 datacollection 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
Close Traktor. It rewrites the collection on exit, over anything written while it was up;
applyrefuses while it is running.Run
planfirst. It writes nothing and takes no time.applycopies the collection tocollection.nml.<stamp>.backupbeside it, then repoints and adds in one edit. Every entry nobody is repointing stays byte for byte as Traktor wrote it.applyremoves nothing.purgeis the only verb that removes, and only when it is called withapply: true.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 pytestMIT licensed.
Available Tools
4 toolsapplyA
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| apply | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v0.1.0- First observed
apply - First observed
plan - First observed
purge - First observed
status
TDQS
Scored across 4 tools
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.
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.
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.
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
Related MCP Connectors
Ovanek MCP: Model Context Protocol server for Ovanek platform tools; writes are dry-run by default.
Query SEC EDGAR filings, XBRL financials, and company data via MCP. STDIO or Streamable HTTP.
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
UN FAOSTAT global food & agriculture statistics over a local SQLite mirror, via MCP.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceSearch 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 PyPI7MIT
- AlicenseNot gradedqualityCmaintenanceLocal STDIO MCP server for safely curating Spotify playlists with a plan/apply workflow, allowlist-based write protection, and authentication status checks.MIT

Daykeeper MCPofficial
AlicenseAqualityAmaintenanceA 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.824 npmApache 2.0- AlicenseAqualityCmaintenanceConnects 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.571 npmMIT