lautfm-mcp
Click on "Install 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., "@lautfm-mcplist all my stations"
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.
lautfm-mcp
An MCP server that provides access to the laut.fm Radioadmin API.
Requirements
Node.js 18 or later
A valid laut.fm Radioadmin API token
Related MCP server: PterodactylMCP
Setup
1. Install dependencies
npm install2. Build
npm run build3. Configure your MCP client
Add the server to your MCP client configuration (e.g. Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"lautfm": {
"command": "node",
"args": ["/absolute/path/to/lautfm-mcp/dist/index.js"],
"env": {
"LAUTFM_TOKEN": "your-radioadmin-api-token-here"
}
}
}
}Generate a token by calling https://radioadmin.laut.fm/login?callback_url=LautfmMCP
Environment Variables
Variable | Required | Description |
| ✅ Yes | Your laut.fm Radioadmin API bearer token. The server will exit immediately if this is not set. |
Authentication & Origin
Every request to the Radioadmin API is sent with:
Authorization: Bearer <LAUTFM_TOKEN>Origin: LautfmMCP
Available Tools
General
Tool | Description |
| Check the laut.fm Radioadmin API server status |
Station
Tool | Description |
| List all stations accessible with the current token |
| Get detailed information about a specific station |
| Update station information (description, format, djs, location, website, social links, genres) |
| Check if a station is active and playing on a streaming server |
| Activate a station — triggers a playlist export and starts streaming |
| Get the currently playing playlist and its tracks |
| Get listener statistics (current listeners, position, switchons log, TLH log) |
Users
Tool | Description |
| List all users of a station |
| Add a user with a given role to a station (sends an invitation) |
| Change the role of a user on a station |
| Remove a user from a station |
Playlists
Tool | Description |
| List all playlists for a station |
| Add a new playlist to a station |
| Get information for a single playlist including its entries |
| Modify an existing playlist |
| Delete a playlist (the rotation playlist cannot be deleted) |
| Append a single track to a playlist |
| Get all tracks for a playlist |
| Delete all occurrences of a track from a playlist |
Schedule
Tool | Description |
| Get the schedule for a station |
| Modify the schedule for a station |
Tracks
Tool | Description |
| Search tracks using various filters (deprecated endpoint) |
| Get track information for one or more track IDs |
| Update metadata for a track |
| Delete an own track from a station |
| Get current day track statistics |
| Get track statistics for a specific period ( |
| Get tags for one or more specific tracks |
| Add tags to one or more tracks |
| Remove tags from one or more tracks |
| Get all tags used across all tracks for a station |
| Get tracks with incomplete uploads |
| Get tracks queued for processing |
Live
Tool | Description |
| Get live streaming connection information (server, port, mountpoint, bitrate, etc.) |
| Get the live streaming password for a station |
Automation Algorithms
Tool | Description |
| View the definition of a specific automation algorithm |
| Create a new automation algorithm for shuffling tracks |
| Update the function used by an existing automation algorithm |
| Delete an automation algorithm |
Excluded Endpoints
The following API endpoints are not exposed as MCP tools because they involve binary data transfer which is not suitable for the MCP text protocol:
POST /stations/{station_id}/tracks— MP3 file uploadPUT /stations/{station_id}/images/{image_type}— Image upload (logo, website, background)GET /stations/{station_id}/tracks/{track_id}/prelisten— Returns audio/mpeg binary stream
Additionally, all App-tagged endpoints (which use Firebase JWT authentication) are excluded as they serve a different use case.
Development
# Watch mode (recompiles on change)
npm run dev
# Build once
npm run build
# Run directly (requires LAUTFM_TOKEN to be set)
LAUTFM_TOKEN=your-token node dist/index.jsProject Structure
src/
├── index.ts # MCP server entry point
├── client.ts # HTTP client with auth + Origin header
└── tools/
├── general.ts # General tools (server status)
├── stations.ts # Station tools
├── users.ts # User management tools
├── playlists.ts # Playlist tools
├── schedule.ts # Schedule tools
├── tracks.ts # Track tools
├── live.ts # Live streaming tools
└── automation.ts # Automation algorithm toolsThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/frank-lautfm/lautfm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server