Skip to main content
Glama
README.md
# Freesound-MCP

[![MCP Badge](https://lobehub.com/badge/mcp/mushan-bit-freesound-mcp)](https://lobehub.com/mcp/mushan-bit-freesound-mcp)

A Model Context Protocol (MCP) server that enables AI applications to search and download audio resources from the [Freesound](https://freesound.org/) platform via natural language commands.

## Overview

Freesound-MCP is designed to simplify the integration of copyright-free sound resources into AI tools. It follows the Model Context Protocol standard and communicates with host applications via stdin/stdout. The server provides two main capabilities:

- 🔍 **Search Sounds**: Search for sounds by keywords with optional filters for maximum duration and license type
- ⬇️ **Download Sounds**: Download audio files by sound ID from Freesound
- 🎵 **Metadata Support**: Retrieve detailed information about sounds, including duration, license, and preview links

## Features

- Lightweight MCP server built with Node.js
- Standard input/output communication mechanism compliant with MCP protocol
- Secure API key management through environment variables
- No database required - simple, stateless design

## Prerequisites

- Node.js (supports CommonJS modules)
- npm or yarn package manager
- A Freesound API key (get one at [Freesound API page](https://freesound.org/docs/api/authentication.html))

## Installation

1. Clone the repository:
```bash
git clone https://github.com/yourusername/freesound-mcp.git
cd freesound-mcp
```

2. Install dependencies:
```bash
npm install
```

3. Build the project:
```bash
npm run build
```

## Setup

1. Get your Freesound API key from [Freesound API page](https://freesound.org/docs/api/authentication.html)

2. Set your API key as an environment variable:
```bash
export FREESOUND_API_KEY=your_freesound_api_key_here
```

## Configuration in Claude Desktop

To configure this MCP server in Claude Desktop:

1. Open Claude Desktop preferences
2. Navigate to "Beta Features" → "Model Context Protocol (MCP) Tools"
3. Click "Configure" to manage MCP servers
4. Add a new server configuration with these details:
   - Name: "Freesound MCP"
   - Command: `node` 
   - Arguments: `/path/to/freesound-mcp/dist/index.js` (after running `npm run build`)
   - Environment Variables: Ensure `FREESOUND_API_KEY` is available to the process
5. Save the configuration and restart Claude

After restarting Claude, you'll be able to use the Freesound tools in your conversations.

## Usage

Once configured in Claude, you can use natural language commands such as:

- "Find me a rainforest ambient sound under 30 seconds"
- "Download sound #123456 as high quality"

### Available Tools

#### 1. Freesound Search (`freesound_search`)

Search for sounds on Freesound by providing keywords and optional filters.

Parameters:
- `query` (required): Search keywords
- `maxDuration` (optional): Maximum duration of sounds in seconds
- `license` (optional): License type of sounds to search for

Returns:
- Array of sound objects containing:
  - `id`: Sound ID
  - `name`: Sound name
  - `duration`: Sound duration in seconds
  - `license`: Sound license
  - `preview`: Sound preview URL

#### 2. Freesound Download (`freesound_download`)

Download a sound from Freesound by sound ID.

Parameters:
- `soundId` (required): ID of the sound to download
- `quality` (optional): Audio quality ('hq' for high quality or 'lq' for low quality), defaults to 'lq'
- `downloadDir` (optional): Custom download directory, defaults to ~/.freesound-mcp/downloads

Returns:
- `filePath`: Path where the file was downloaded

## Security Considerations

- Keep your `FREESOUND_API_KEY` secret and never expose it in client-side code
- Input parameters are validated to prevent malicious IDs from being passed to the API
- The server follows MCP security best practices for communication

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- Thanks to [Freesound](https://freesound.org/) for providing the audio resources API
- Built using the [Model Context Protocol SDK](https://github.com/modelcontextprotocol/sdk)

TDQS

B3.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: one is for downloading a specific sound by ID, and the other is for searching sounds based on criteria. There is no overlap or ambiguity between these operations, making it clear when to use each tool.

Naming Consistency5/5

Both tools follow a consistent naming pattern with the prefix 'freesound.' followed by a verb (download, search) that clearly describes the action. This uniformity makes the tool set predictable and easy to understand.

Tool Count2/5

With only two tools, the server feels too minimal for a comprehensive Freesound integration. While search and download are core operations, obvious gaps like browsing, getting sound details, or managing user content are missing, limiting functionality.

Completeness2/5

The tool set is severely incomplete for interacting with Freesound. It lacks essential operations such as retrieving sound metadata, listing categories, or handling user authentication, which are necessary for full agent workflows in this domain.

Maintenance

ActivityInactive
ResponsivenessNo issues