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
- Node.js 16 or higher
- A Freesound API key (get one at https://freesound.org/apiv2/apply)
Installation
- Clone this repository:
git clone <repository-url>
cd freesound-mcp-server
- Install dependencies:
npm install
- Build the project:
npm run build
Quick Start with Claude Code
Global Installation (All Projects)
Get your Freesound API key from https://freesound.org/apiv2/apply
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 termsfilter
: Filter using Solr syntax (e.g., "duration:[1 TO 5]")sort
: Sort results by various criteriapage
: 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 sounddescriptors
: 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 sounddescriptors
: Specific analysis descriptors to retrievenormalized
: Whether to normalize descriptor values
get_similar_sounds
Find sounds similar to a given sound.
Parameters:
sound_id
(required): The ID of the reference sounddescriptors_filter
: Filter by content descriptorspage
: Page numberpage_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 usernamepage
: Page numberpage_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 packpage
: Page numberpage_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:
- Freesound API Documentation: https://freesound.org/docs/api/
- Freesound API Forum: https://freesound.org/forum/
For issues with this MCP server, please open an issue on GitHub.