Soulseek MCP Server
# Soulseek MCP Server
An MCP (Model Context Protocol) server that enables Claude to search and download music files from the Soulseek peer-to-peer network.
## Prerequisites
- Node.js 18+
- A Soulseek account (create one at [slsknet.org](http://www.slsknet.org/))
## Installation
1. Clone the repository:
```bash
git clone <repository-url>
cd SoulseekMCP
```
2. Install dependencies:
```bash
npm install
```
3. Build the project:
```bash
npm run build
```
## Configuration
Set the following environment variables:
| Variable | Required | Description |
|----------|----------|-------------|
| `SOULSEEK_USERNAME` | Yes | Your Soulseek account username |
| `SOULSEEK_PASSWORD` | Yes | Your Soulseek account password |
| `DOWNLOAD_PATH` | No | Directory for downloaded files (default: `./downloads`) |
## Usage with Claude Desktop
Add the server to your Claude Desktop configuration file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"soulseek": {
"command": "node",
"args": ["path/to/SoulseekMCP/dist/index.js"],
"env": {
"SOULSEEK_USERNAME": "your-username",
"SOULSEEK_PASSWORD": "your-password",
"DOWNLOAD_PATH": "/path/to/downloads"
}
}
}
}
```
## Available Tools
### search
Search for files on the Soulseek network.
**Parameters:**
- `query` (string, required): Search query (artist, song title, album, etc.)
- `limit` (number, optional): Maximum results to return (default: 50)
### download
Download a file from a Soulseek peer.
**Parameters:**
- `username` (string, required): Username of the peer (from search results)
- `filename` (string, required): Full file path (from search results)
### get_status
Check the connection status to the Soulseek network.
## Development
Watch mode for development:
```bash
npm run dev
```
## License
MIT
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose with no overlap: download handles file retrieval, get_status checks network connectivity, and search finds files. The descriptions clearly differentiate their functions, making misselection unlikely.
All three tools follow a consistent verb_noun pattern (download, get_status, search), with clear and descriptive names that align well with their functions. There are no deviations in naming style.
With only 3 tools, the server feels thin for a file-sharing network like Soulseek. While it covers basic operations (search, download, status), it lacks tools for managing downloads, user interactions, or advanced search features that might be expected in this domain.
The tools cover core workflows (search and download) but have notable gaps. There is no way to manage downloads (e.g., pause, cancel, list active), interact with users (e.g., messaging, browsing shares), or handle errors, which could lead to agent failures in more complex scenarios.