Music Credits MCP
Music metadata for AI agents. Connect Claude, Cursor, Windsurf, or any MCP client to look up songwriter credits, recordings, and music identifiers.
What is MCP?
Model Context Protocol is the open standard for connecting AI assistants to external tools and data sources. When you connect to the Credits.fm MCP server, your AI can natively search music metadata, look up songwriter credits, resolve Spotify URLs, and more — without you having to copy-paste API responses.
Connect in 30 seconds
Get a free key at credits.fm/api, then paste one of the configs below. Always send the raw cfm_ key as x-api-key — never Authorization: Bearer. tools/list can succeed while lookups fail without a key.
Cursor Cloud Agents
Native HTTP only — not mcp-remote. Add to the Cloud Agent MCP / environment config:
{
"Credits": {
"url": "https://credits.fm/mcp",
"headers": {
"x-api-key": "cfm_YOUR_KEY"
}
}
}Cursor Desktop
Prefer HTTP headers in .cursor/mcp.json:
{
"mcpServers": {
"credits": {
"url": "https://credits.fm/mcp",
"headers": {
"x-api-key": "cfm_YOUR_KEY"
}
}
}
}Claude Code
Add to .mcp.json in your project root:
{
"mcpServers": {
"credits": {
"type": "http",
"url": "https://credits.fm/mcp",
"headers": {
"x-api-key": "cfm_YOUR_KEY"
}
}
}
}Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS). Pass the key via --header:
{
"mcpServers": {
"credits": {
"command": "npx",
"args": ["mcp-remote", "https://credits.fm/mcp", "--header", "x-api-key:cfm_YOUR_KEY"]
}
}
}Windsurf
Add to your Windsurf MCP config:
{
"mcpServers": {
"credits": {
"serverUrl": "https://credits.fm/mcp",
"headers": {
"x-api-key": "cfm_YOUR_KEY"
}
}
}
}Contributing
Lookup responses include a structured _contribute data block listing fields the record is missing along with a pre-filled template. When you want to share data you have — from MLC, CISAC, MusicBrainz, Apple Music, your own catalog, or your own knowledge — you can call credits_contribute with that template. Low-risk fields (ISWC, song title, alternative names) auto-accept; medium/high-risk fields stage for human review. Accepted contributions become part of the public CC-BY 4.0 index.
Pass contribute: false on a lookup tool to suppress the _contribute block in the response.
API key
Get a free API key and pass it as x-api-key on every MCP request (see configs above). Required for credits_contribute; strongly recommended for all lookups — guest MCP is rate-limited (~20 tool calls/min) and some environments return Access denied without a key.
{
"mcpServers": {
"credits": {
"type": "http",
"url": "https://credits.fm/mcp",
"headers": {
"x-api-key": "cfm_YOUR_KEY"
}
}
}
}Available tools
17 tools covering all of Credits.fm's data. Start with credits_search for any query, then drill down with specific lookup tools. credits_contribute is available when a user asks to fill gaps they discover.
credits_graphCredits Graph — the network around any code — nodes (ISRC/ISWC/IPI/ISNI/UPC + musicians) and connections with source provenance and verification status (verified = 2+ independent sources; verified absence included).
type (required), id (required), depth?, people?
credits_graph_activityCredits Graph status feed — recent link_found / link_verified / relation_found / no_match_recorded events across the whole index.
limit?, since?
credits_watchWatch one code progress found → matched → verified. Snapshot of each connection (verified = 2+ sources; matched = single source; found = surfaced, or resolved with no descriptive payload yet; no_match = verified absence) plus recent transitions touching the code. Verification is asynchronous — re-call with since=as_of to watch codes cross into verified over time. Lookup results carry a matching `progression` block.
type (required), id (required), since?
credits_searchSearch by song title, artist name, ISRC/ISWC/IPI/ISNI/UPC code, or Spotify/Apple Music URL. The primary entry point.
query (required), type?, limit?
credits_lookup_isrcLook up a recording by ISRC. Returns songwriter credits, publisher chains, platform links.
isrc (required)
credits_lookup_iswcLook up a musical work by ISWC. Returns all recordings, songwriters, and CISAC registration status.
iswc (required)
credits_lookup_ipiLook up a songwriter or publisher by IPI number. Returns works, recordings, co-writers, and publisher relationships.
ipi (required)
credits_lookup_isniLook up a creative contributor by ISNI. Returns name variants, roles, linked IPIs, and associated works.
isni (required)
credits_lookup_musicianLook up a musician (the real person) by MusicBrainz MBID. Returns songwriter + performer credits, group memberships, IPI/ISNI identifiers. Includes a `progression` inventory + a credits_watch pointer for the person graph.
mbid (required)
credits_lookup_artistLook up an artist (release entity on DSPs) by platform ID. Returns full discography with albums, tracks, ISRCs, and streaming links. Includes a `progression` inventory of the discography codes to watch.
id (required)
credits_resolve_urlResolve a Spotify or Apple Music URL to identifiers. Supports tracks, albums, playlists, and artists. Includes a `progression` inventory of the resolved codes to watch.
url (required)
credits_resolve_trackResolve a track to its ISRC and full credits by name + artist, Spotify URL, or Apple Music URL.
name?, artist?, spotify_url?, apple_music_url?
credits_lookup_upcLook up releases by UPC barcode. Returns album metadata and a full track list with ISRCs plus per-ISRC enrichment.
upcs (required, 1-100)
credits_batch_lookupBatch lookup up to 100 ISRCs, ISWCs, IPIs, ISNIs, or UPCs in a single request.
isrcs?, iswcs?, ipis?, isnis?, upcs?
credits_publishers_for_songwriterFind every publisher tied to a songwriter, by IPI (preferred) or by name + ISRCs/ISWCs for disambiguation.
ipi? | (name + isrcs?/iswcs?)
credits_contributeSubmit data to the public Credits.fm index. Accepts an array of contributions targeting an identifier, a field, and a value. Requires an API key.
contributions (required) — array of {target, id, field, value, type?, citation?}
credits_coverageGet index coverage metrics — row counts and data completeness for all tables. See where gaps exist.
none
Example
Once connected, just ask naturally. Your AI will call the right tools automatically.
You:
Who wrote Bohemian Rhapsody?
credits_search({query: "bohemian rhapsody queen"})
credits_lookup_isrc({isrc: "GBCEE9800022"})
Claude:
“Bohemian Rhapsody” was written by Freddie Mercury (IPI: 00077406269), credited as the sole songwriter. The composition is registered as ISWC T-010154505-4 (Queen / GBCEE9800022).
Protocol details
| Endpoint | https://credits.fm/mcp |
| Transport | Streamable HTTP (JSON-RPC over POST) |
| Protocol version | 2025-03-26 |
| Auth | Recommended for all tools. Pass raw cfm_ key as x-api-key (not Bearer). Required for credits_contribute. Guest: ~20 MCP calls/min. |
| CORS | Enabled (Access-Control-Allow-Origin: *) |
Test it
Verify the server is running with a simple curl:
# List available tools curl -X POST https://credits.fm/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"tools/list","id":1}' # Search for a song (include x-api-key) curl -X POST https://credits.fm/mcp \ -H "Content-Type: application/json" \ -H "x-api-key: cfm_YOUR_KEY" \ -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"credits_lookup_isrc","arguments":{"isrc":"GBCEE9800022","contribute":false}},"id":2}'
Data coverage
30M+
ISRC recordings
95M+
ISWC works
100K+
IPI profiles
100K+
ISNI identities
3M+
UPC releases
2.6M+
Musician profiles
Also available
Data handling
Per request we log: client IP, the identifier looked up, the tool name, a hashed API-key id when present, the rate-limit tier, response latency, and HTTP status. We do not store conversation content, request/response bodies, or any user PII beyond the IP. Logs are retained for abuse-prevention and aggregate analytics; they are not sold or shared.
The index itself is licensed CC-BY 4.0 and aggregates from open sources (MLC, CISAC, MusicBrainz, and ISNI.org). Apple Music and Spotify provide navigation links plus supplementary factual metadata (recording/album titles, artist names) used to fill records the open sources don’t cover — attributed to the platform and not claimed under our CC-BY license; their cover art is governed by their own developer terms and is not redistributed (the API returns only open-licensed MusicBrainz Cover Art Archive artwork). Accepted contributions submitted via credits_contribute become part of the public index. See the Notes.fm privacy policy for the full data-handling statement covering Credits.fm.
Security & support
Report security vulnerabilities to security@credits.fm. We aim to acknowledge reports within 5 business days. General questions and support: hello@credits.fm or file an issue at github.com/Notes-fm/credits/issues.
Powered by Notes.fm