lexicon-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LEXICON_URL | No | Full base URL override | |
| LEXICON_HOST | No | API host | localhost |
| LEXICON_PORT | No | API port | 48624 |
| LEXICON_MCP_ALLOW_WRITES | No | Set to '1' to enable PATCH/POST/DELETE |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| lexicon_pingA | Check Lexicon Local API is reachable (Lexicon app must be running with API enabled under Settings → Integrations). |
| lexicon_list_tagsA | List My Tag categories and tags from Lexicon (Genre, Vibe, Event, Role, etc.). |
| lexicon_list_tracksA | List tracks from the Lexicon library (paginated, newest first). |
| lexicon_get_trackA | Get one track by ID (full payload: tags, cuepoints, tempomarkers, etc.). |
| lexicon_update_trackA | Update one track (tags, metadata, cuepoints, incoming flag). Requires LEXICON_MCP_ALLOW_WRITES=1. |
| lexicon_search_tracksA | Search tracks using Lexicon filters. Examples:
|
| lexicon_list_incomingC | List tracks in the Incoming queue or under DJ-incoming watch folder. |
| lexicon_library_statsC | Summarize library health: totals, incoming, tracks without a Genre tag. |
| lexicon_list_playlistsA | List playlist tree from Lexicon (folders, playlists, smart playlists). |
| lexicon_get_playlistA | Get one playlist by ID or by path (path survives library re-import). |
| lexicon_controlC | Run a Lexicon control action (e.g. Incoming_SelectedDone, Application_Tags_AddShortcut). Requires LEXICON_MCP_ALLOW_WRITES=1. |
| lexicon_get_playingA | Get the currently playing track and player progress. |
| lexicon_get_queueA | Get the player queue (excluding the current track). |
| lexicon_requestB | Call any Lexicon /v1 endpoint (GET, PATCH, POST, DELETE). See https://www.lexicondj.com/developer/api-docs.yaml. Non-GET requires LEXICON_MCP_ALLOW_WRITES=1. |
| lexicon_raw_requestB | Deprecated: use lexicon_request with method GET. Call any Lexicon /v1 path with JSON body. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Most tools have clear distinct purposes (ping, list, get, update, search, control, player status). However, lexicon_request and lexicon_raw_request are redundant, and lexicon_control is a catch-all that could overlap with other specific actions.
All tools follow a consistent 'lexicon_verb_noun' pattern using snake_case. The deprecated raw_request is slightly irregular but clearly marked.
15 tools cover a comprehensive set of operations for a DJ library management API without being overwhelming or too sparse.
Core operations for tracks, playlists, library stats, and player state are covered. A generic 'request' endpoint fills gaps, but explicit create/delete for playlists is missing.