timjrobinson

Freesound MCP Server

Community timjrobinson
Updated

NodeJS MCP Server to access Freesound API

Freesound MCP Server

An MCP (Model Context Protocol) server that provides access to the Freesound API, enabling AI assistants to search, analyze, and retrieve information about audio samples from Freesound.org.

Prerequisites

Installation

  1. Clone this repository:
git clone <repository-url>
cd freesound-mcp-server
  1. Install dependencies:
npm install
  1. Build the project:
npm run build

Quick Start with Claude Code

Global Installation (All Projects)

  1. Get your Freesound API key from https://freesound.org/apiv2/apply

  2. Add to Claude Code:

# From the freesound-mcp-server directory (user scope for global access)
claude mcp add freesound -e FREESOUND_API_KEY=your-api-key-here -- node /path/to/freesound-mcp-server/dist/index.js

Verifying Installation

To check if the MCP server is properly configured and running, use the /mcp command in Claude Code:

claude
> /mcp

This will show the status of all configured MCP servers.

Usage with Claude Desktop

Add the following to your Claude Desktop configuration file:

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "freesound": {
      "command": "node",
      "args": ["/path/to/freesound-mcp-server/dist/index.js"],
      "env": {
        "FREESOUND_API_KEY": "your-api-key-here"
      }
    }
  }
}

Available Tools

search_sounds

Search for sounds on Freesound using text queries.

Parameters:

  • query (required): Search query terms
  • filter: Filter using Solr syntax (e.g., "duration:[1 TO 5]")
  • sort: Sort results by various criteria
  • page: Page number (default: 1)
  • page_size: Results per page (default: 15, max: 150)

Example:

Search for: "piano jazz" with filter "duration:[5 TO 30]" sorted by "downloads_desc"

get_sound

Get detailed information about a specific sound.

Parameters:

  • sound_id (required): The ID of the sound
  • descriptors: Comma-separated list of content descriptors to include

get_sound_analysis

Retrieve audio analysis data for a sound.

Parameters:

  • sound_id (required): The ID of the sound
  • descriptors: Specific analysis descriptors to retrieve
  • normalized: Whether to normalize descriptor values

get_similar_sounds

Find sounds similar to a given sound.

Parameters:

  • sound_id (required): The ID of the reference sound
  • descriptors_filter: Filter by content descriptors
  • page: Page number
  • page_size: Results per page

get_user

Get information about a Freesound user.

Parameters:

  • username (required): The username

get_user_sounds

Get sounds uploaded by a specific user.

Parameters:

  • username (required): The username
  • page: Page number
  • page_size: Results per page

get_pack

Get information about a sound pack.

Parameters:

  • pack_id (required): The ID of the pack

get_pack_sounds

Get sounds from a specific pack.

Parameters:

  • pack_id (required): The ID of the pack
  • page: Page number
  • page_size: Results per page

Development

Run the server in development mode:

npm run dev

API Limitations

  • Token authentication is used for most endpoints
  • OAuth2 is required for downloading sounds and write operations (not implemented in this version)
  • Rate limits apply based on your Freesound API plan
  • Maximum page size is 150 results

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For issues with the Freesound API, consult:

For issues with this MCP server, please open an issue on GitHub.

MCP Server ยท Populars

MCP Server ยท New