audius mcp atris
Enables interaction with the Audius music platform API, supporting user, track, and playlist operations through the Model Context Protocol.
Enables interaction with the Audius music platform API, supporting user, track, and playlist operations through the Model Context Protocol.
An MCP (Model Context Protocol) server that provides access to the Audius music platform via LLMs (Large Language Models).
With Atris MCP, you can ask your LLM questions in natural language about Audius content. Examples include:
To install Atris for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @glassBead-tc/audius-mcp-atris --client claude
Install directly from npm:
npm install audius-mcp-atris
Or with yarn:
yarn add audius-mcp-atris
Clone this repository:
git clone https://github.com/glassBead/audius-mcp-atris.git
cd audius-mcp-atris
Install dependencies:
npm install
Build the TypeScript code:
npm run build
You can also build and run the MCP server using Docker:
Build the Docker image:
docker build -t audius-mcp-atris .
Run the container:
docker run -it --rm
-e AUDIUS_API_KEY=your_api_key_here
-e AUDIUS_API_SECRET=your_api_secret_here
-e AUDIUS_ENVIRONMENT=production
audius-mcp-atris
Note: Setting AUDIUS_ENVIRONMENT to "production" ensures the SDK connects to public Audius discovery nodes instead of trying to use local nodes.
claude_mcp_config.json
to use Docker:
{
"mcpServers": {
"audius": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"audius-mcp-atris"
],
"env": {
"AUDIUS_API_KEY": "your_api_key_here",
"AUDIUS_API_SECRET": "your_api_secret_here",
"AUDIUS_ENVIRONMENT": "production"
}
}
}
}
Create a .env
file in the root directory based on the provided .env.example
:
# Audius API Configuration
AUDIUS_API_KEY=your_api_key_here
AUDIUS_API_SECRET=your_api_secret_here
AUDIUS_ENVIRONMENT=production # or staging, development
# MCP Server Configuration
SERVER_NAME=audius-mcp
SERVER_VERSION=1.0.0
Start the server:
npm start
This will automatically start both the main MCP server and the audio streaming server. The audio streaming server runs on port 7070 by default (configurable via STREAM_SERVER_PORT environment variable).
If you need to start only the streaming server for testing or development:
node start-stream-server.js
To use this server with Claude:
The easiest way to use this MCP server is with npx, which can run the package without installing it globally:
claude mcp add audius npx audius-mcp-atris
Edit your claude_mcp_config.json
file (location varies by platform):
~/Library/Application Support/Claude/claude_mcp_config.json
%APPDATA%Claudeclaude_mcp_config.json
~/.config/Claude/claude_mcp_config.json
Add this configuration:
{
"mcpServers": {
"audius": {
"command": "npx",
"args": [
"audius-mcp-atris"
],
"env": {
"AUDIUS_API_KEY": "your_api_key_here",
"AUDIUS_API_SECRET": "your_api_secret_here"
}
}
}
}
For applications that support Model Context Protocol, use this configuration in their respective config files:
{
"audius": {
"command": "npx",
"args": [
"audius-mcp-atris"
],
"env": {
"AUDIUS_API_KEY": "your_api_key_here",
"AUDIUS_API_SECRET": "your_api_secret_here"
}
}
}
If you prefer a local installation:
# Install the package globally
npm install -g audius-mcp-atris
# Then configure Claude CLI
claude mcp add audius audius-mcp-atris
# Or for Claude Desktop, use this in your config:
{
"mcpServers": {
"audius": {
"command": "audius-mcp-atris",
"env": {
"AUDIUS_API_KEY": "your_api_key_here",
"AUDIUS_API_SECRET": "your_api_secret_here"
}
}
}
}
The server provides the following functionality:
Access Audius data using these URI templates:
audius://track/{id}
: Track details by IDaudius://user/{id}
: User profile by IDaudius://playlist/{id}
: Playlist details by IDaudius://album/{id}
: Album details by IDThe server offers guided experiences for common music-related tasks:
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # MCP server setup
│ ├── config.ts # Configuration handling
│ ├── sdk-client.ts # Audius SDK client wrapper
│ ├── tools/ # MCP tool implementations
│ │ ├── tracks.ts # Track-related tools
│ │ ├── users.ts # User-related tools
│ │ ├── playlists.ts # Playlist-related tools
│ │ ├── search.ts # Search-related tools
│ │ ├── social.ts # Social interaction tools
│ │ ├── comments.ts # Comment management tools
│ │ ├── track-management.ts # Track upload and management
│ │ ├── playlist-management.ts # Playlist creation and management
│ │ ├── messaging.ts # Direct messaging tools
│ │ ├── analytics.ts # Analytics and metrics tools
│ │ ├── blockchain.ts # Cryptocurrency and blockchain tools
│ │ ├── monetization.ts # Premium content and payment tools
│ │ └── notifications.ts # Platform notification tools
│ ├── resources/ # MCP resource implementations
│ │ ├── tracks.ts # Track-related resources
│ │ ├── users.ts # User-related resources
│ │ └── playlists.ts # Playlist-related resources
│ └── prompts/ # MCP prompt implementations
│ ├── music-search.ts # Music discovery prompts
│ ├── track-info.ts # Track analysis prompts
│ ├── artist-profile.ts # Artist profile prompts
│ ├── music-creation.ts # Music creation prompts
│ ├── playlist-creation.ts # Playlist creation prompts
│ ├── messaging.ts # Messaging prompts
│ ├── analytics.ts # Analytics prompts
│ ├── blockchain.ts # Blockchain prompts
│ ├── monetization.ts # Monetization prompts
│ └── notifications.ts # Notification prompts
// Search for electronic tracks
search-tracks --query "electronic" --limit 5
// Stream an audio track
stream-track --trackId "123456"
// Get trending tracks in a genre
get-trending-tracks --genre "House" --limit 10
// Find artists similar to a specific one
similar-artists --userId "123456"
// Upload a new track
upload-track --userId "123" --title "Summer Vibes" --genre "Electronic" --audioFileUrl "https://example.com/track.mp3"
// Create a playlist
create-playlist --userId "123" --playlistName "Chillout Mix" --description "Perfect for relaxing"
// Add tracks to a playlist
add-tracks-to-playlist --userId "123" --playlistId "456" --trackIds ["789", "101", "102"]
// Follow a user
follow-user --userId "123" --followeeId "456"
// Favorite a track
favorite-track --userId "123" --trackId "789"
// Add a comment
add-track-comment --trackId "789" --userId "123" --comment "Great track!"
// Check track access gates
track-access-gates --trackId "789"
// View purchase options
purchase-options --contentId "789" --contentType "track"
// Purchase a track
purchase-track --contentId "789" --walletAddress "0x123..." --purchaseOption "option1" --paymentToken "USDC" --amount "4.99" --signerPrivateKey "privateKey"
For local development testing:
Install the MCP Inspector:
npm install -g @modelcontextprotocol/inspector
Run the inspector with your server:
npx @modelcontextprotocol/inspector node ./build/index.js
MIT