Audius MCP Server

// Artist profile and social connections prompt export const artistProfilePrompt = { name: 'artist-profile', description: 'Get detailed information about an artist, their social connections, and popular content', arguments: [ { name: 'userId', description: 'ID of the artist to explore', required: true, }, { name: 'includeConnections', description: 'Include social connections (followers, following)', required: false, type: 'boolean' }, { name: 'includePopularContent', description: 'Include popular tracks and reposts', required: false, type: 'boolean' } ], }; // Handler for artist-profile prompt export const handleArtistProfilePrompt = (args: { userId: string; includeConnections?: boolean; includePopularContent?: boolean; }) => { // Build a user query for artist profile let userMessage = `I'd like to learn more about an artist on Audius with ID: ${args.userId}. `; if (args.includeConnections) { userMessage += `Please include information about their social connections, like followers and who they follow. `; } if (args.includePopularContent) { userMessage += `Please include their most popular tracks and recent reposts. `; } // Add instructions on tools to use const systemMessage = ` To fulfill this request, use these tools to provide information about the artist: - Use 'get-user' to get basic profile information about the artist - Use 'get-user-tracks' to see tracks by the artist - Use 'user-favorites' to see tracks the artist has favorited - Use 'user-reposts' to see content the artist has reposted ${args.includeConnections ? ` For social connections: - Use 'user-followers' to see the artist's followers - Use 'user-following' to see who the artist follows ` : ''} ${args.includePopularContent ? ` For popular content: - Get tracks by the artist and identify the most popular ones - Get recent reposts to understand what content they're sharing ` : ''} Organize the information in a way that gives a comprehensive overview of the artist's profile, musical style, and social presence on Audius. `; // Create messages for the prompt const messages = [ { role: 'system', content: { type: 'text', text: systemMessage, }, }, { role: 'user', content: { type: 'text', text: userMessage, }, }, ]; return { messages, }; };