astra-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ASTRA_API_URL | No | Set this if you changed the port in Astra. | http://127.0.0.1:38401 |
| ASTRA_API_TOKEN | Yes | Local API Key from Astra settings. Required. | |
| ASTRA_MCP_HTTP_HOST | No | Bind address for HTTP mode. | 127.0.0.1 |
| ASTRA_MCP_HTTP_PORT | No | Enables HTTP mode, same as --http. | 38500 |
| ASTRA_DISABLE_EVENTS | No | Set to 1 to poll instead of holding an event stream. | |
| ASTRA_MCP_HTTP_ORIGINS | No | Comma-separated browser origins allowed to call the server directly. | |
| ASTRA_POSITION_INTERVAL_MS | No | How often Astra pushes position updates (250–5000). | 1000 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"subscribe": true,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| astra_now_playingA | Get the current playback state of the Astra music player: track, position, duration, volume, mute, shuffle, repeat, output device, and queue length. Served from a live event stream when connected, so it is cheap to call. Returns the current track's ref, which can be passed to astra_set_favorite or astra_playlist. |
| astra_controlA | Control playback in Astra: play, pause, stop, next, previous, seek, set-volume, set-muted, set-shuffle, set-repeat. Each action needs its own argument — seek needs positionSeconds, set-volume needs volume (0-1), set-muted needs muted, set-shuffle needs enabled, set-repeat needs mode. Astra accepts commands asynchronously; this tool waits briefly and reports the state it actually landed on. To start a specific track or album instead, use astra_search then astra_play. |
| astra_capabilitiesA | Report which Astra Companion API scopes are granted, which features are available, and the current limits. Useful for diagnosing a permission error: if a tool returns "insufficient_scope", this shows which switch is off in Astra → Settings → Integrations → Local API. |
| astra_searchA | Search the user's local Astra music library by name and get back opaque refs. This is the entry point for almost everything: nothing else in this server accepts a title or artist name, only a ref from here. Search is bounded — it needs a non-empty query, returns at most 50 results, has no pagination, and cannot list the whole catalog. Follow up with astra_play, astra_enqueue, or astra_open. |
| astra_playA | Start playing a track, album, artist, or playlist in Astra, replacing the current queue. Takes an opaque ref from astra_search — call that first to turn a name into a ref. Refs are opaque signed strings from astra_search (or from the current track / queue). Pass them through verbatim — never parse, edit, or invent one. A ref can go stale and return 404. To resume something already loaded, use astra_control with action "play" instead. |
| astra_enqueueA | Add a track, album, artist, or playlist to the Astra queue without interrupting what is playing. Takes an opaque ref from astra_search. Use position "next" to play it after the current track, or "end" to append. Refs are opaque signed strings from astra_search (or from the current track / queue). Pass them through verbatim — never parse, edit, or invent one. A ref can go stale and return 404. |
| astra_openA | Bring the Astra window to the front and navigate to a track, album, artist, or playlist. This only changes what the user is looking at — it does not start playback. Takes an opaque ref from astra_search. Refs are opaque signed strings from astra_search (or from the current track / queue). Pass them through verbatim — never parse, edit, or invent one. A ref can go stale and return 404. |
| astra_set_favoriteA | Mark or unmark a track as a favorite in the Astra library. This sets an explicit state rather than toggling, so it is safe to repeat. Takes a track ref from astra_search or from the current track reported by astra_now_playing. Refs are opaque signed strings from astra_search (or from the current track / queue). Pass them through verbatim — never parse, edit, or invent one. A ref can go stale and return 404. |
| astra_queueA | List the tracks in the Astra play queue, in order, with the currently playing one marked. Each entry has a queue item id — pass that to astra_queue_edit to move or remove it. Served from the live event stream when connected. Astra only publishes the first 200 queue entries to the API, so a longer queue is reported as truncated and the later entries are not reachable. |
| astra_queue_editA | Reorder or trim the Astra play queue. "move" needs queueItemId and a 0-based position, "remove" needs queueItemId, and "clear" empties the upcoming queue without stopping the current track. Get queue item ids from astra_queue. The currently playing item cannot be moved or removed — attempting it returns queue_item_not_found. To add tracks instead, use astra_enqueue. |
| astra_playlistA | Create a playlist in Astra, rename one, or add / remove / reorder its tracks. "create" needs name. "rename" needs ref and name. "add-tracks" needs ref and trackRefs. "remove-track" needs ref and trackRef. "move-track" needs ref, trackRef, and position. Get playlist refs from astra_search with types ["playlist"], and track refs from astra_search with types ["track"]. Refs are opaque signed strings from astra_search (or from the current track / queue). Pass them through verbatim — never parse, edit, or invent one. A ref can go stale and return 404. Limits: only locally owned normal playlists are editable — mirrored (Jellyfin or Subsonic) and dynamic playlists reject edits with playlist_not_writable. Astra has no playlist deletion endpoint, so playlists cannot be deleted through this server. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| playback | Current track, position, volume, shuffle, repeat, and queue length. |
| queue | The ordered play queue with the current item marked. |
| capabilities | Granted scopes, feature flags, and limits reported by Astra. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Boof2015/astra-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server