MCP Spotify Server

import { SpotifyApi } from '../utils/api.js'; import { SearchArgs } from '../types/search.js'; import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js'; export class SearchHandler { constructor(private api: SpotifyApi) {} async search(args: SearchArgs) { const { query, type, limit = 20 } = args; if (limit < 1 || limit > 50) { throw new McpError( ErrorCode.InvalidParams, 'Limit must be between 1 and 50' ); } const params = { q: encodeURIComponent(query), type, limit }; return this.api.makeRequest(`/search${this.api.buildQueryString(params)}`); } }