lightning-fm-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., "@lightning-fm-mcpWhat's currently playing on Lightning FM?"
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.
Lightning FM :: MCP Server
An MCP server for Lightning FM's music catalog: search tracks, look up artists, and check what's live on the station, all from an agent.
There is no separate agent API. This server reads exactly what a human client reads: kind 31337 track events and kind 0 profiles from public Nostr relays, audio and images from the public Blossom server, and the kind 30311 live activity event the station publishes on every track change. Every track is signed by the artist's own key. This is the canonical catalog, not a curated subset the platform maintains for agents. Artists keep their exit rights: the catalog lives in events they signed, and nothing this server returns depends on the platform's goodwill.
Who this is for
Agent developers: you want the tools in your MCP client. Go to Use it and Tools. No install, no API key, no account.
Contributors: you want to change or extend the server. Go to What works today and Development. The wire format this server parses is documented at lightning.fm/interop.
Use it
Add it to your MCP client's server config. For Claude Code or Claude Desktop:
{
"mcpServers": {
"lightning-fm": {
"command": "npx",
"args": ["-y", "lightning-fm-mcp"]
}
}
}No install, no API key, no account. It talks to relay.lightning.fm and media.lightning.fm by default. See Configuration to point it elsewhere.
Tools
search_catalog: free-text search plus genre/tag filters over the full catalog. Leave every filter empty to browse newest-first.get_artist: look up an artist by display name (partial match), hex pubkey, or npub. Returns their profile and full discography.get_now_playing: what's currently on air, and the stream URL.
What works today
Verified against src/, not against ambition.
Feature | Status |
| Works |
| Works |
| Works |
Read-only guarantee: the server holds no keys, never signs, never publishes; there are no write tools | Works, by construction |
Relay snapshot caching (default 60s TTL) so repeated tool calls don't hammer relays | Works |
Transport | stdio only; no HTTP transport yet |
Writes of any kind (publishing tracks, zapping, tipping) | Not built, and out of scope by design |
Configuration
All environment variables are optional; defaults point at production. Nothing here is a secret. This server is read-only and never signs or publishes anything.
Variable | Default | What it does |
|
| Comma-separated relay URLs to query. Only add a relay here if it gates writes the way relay.lightning.fm does. Kind 31337 isn't exclusive to Lightning FM, and an unrestricted public relay hands back every other app's tracks too. |
|
| Blossom server audio/image hashes resolve against. |
|
| How long a fetched snapshot is reused before the next tool call re-queries the relays. |
Development
npm install
npm run dev # runs src/index.ts directly via tsx
npm run build # tsc, emits dist/
npm test # tsx --test tests/*.test.tsLayout
src/index.tsserver entry, stdio transportsrc/tools.tsthe three MCP tool registrationssrc/nostr/relay reads:catalog.ts,profiles.ts,now-playing.ts, andtrack.ts(kind 31337 parsing)src/config.tsenv handling and defaultstests/parsing and catalog tests
src/nostr/track.ts mirrors the kind 31337 parsing in station-server/src/catalog/track.ts (private repo) and app-desktop/src-tauri/src/relay.rs. All three must agree on tag names. This is the platform's public wire format, documented in full at lightning.fm/interop.
License
MIT
This 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.
Related MCP Connectors
Agent registry with Nostr identity, reputation, escrow, observability, and Lightning payments.
Search MusicBrainz artists, releases, works, labels; resolve ISRC/ISWC/barcode; fetch cover art.
Deezer public music catalog (search/tracks/albums/artists/charts)
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/Lightning-FM/lightning-fm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server