Skip to main content
Glama
ccombe

Nicotine+ Soulseek MCP Server

by ccombe

Nicotine+ Soulseek MCP 服务器

一个无状态、仅本地的模型上下文协议(MCP)服务器,直接与 Nicotine+(Soulseek)网络引擎交互。

它允许 AI 助手(如 Claude Desktop、Antigravity 或其他 MCP 客户端)搜索 Soulseek 点对点网络、评估音频质量/比特率、选择队列最短且速度最快的下载候选、自动批量下载曲目列表,并监控传输进度。


功能特性

  • 本地且无状态:使用官方 Python MCP SDK 在本地通过标准 STDIO 运行。

  • 自动检测桌面版 Nicotine+ 配置:自动读取您现有的桌面版 Nicotine+ 配置(~/.config/nicotine/config%APPDATA%/nicotine/config),无需手动重新输入即可继承您现有的 Soulseek 账号和下载目录。

  • 智能排序与评分:基于以下条件评估并对搜索结果进行排序:

    • 音频质量(320 kbps MP3、FLAC、V0 等)

    • 队列长度(优先选择具有免费上传槽位 / 队列为 0 的对等节点)

    • 对等节点上传速度(以 KB/s 为单位)

  • 批量自动化(auto_find_and_download:将歌曲或专辑列表粘贴给您的 AI 助手;它将自动搜索、为每项选择最优文件并加入下载队列。

  • 实时传输监控(get_downloads_status:跟踪下载进度百分比、下载速度和队列位置。

  • 高质量代码:使用 uv 构建,采用严格的类型注解、Pydantic v2 模式,并通过 ruffpytest 验证。


可用的 MCP 工具

工具名称

描述

search_tracks

在 Soulseek 上搜索曲目/专辑,支持按比特率(默认 320 kbps)、文件类型(mp3flac 等)、最大队列和免费槽位进行筛选。结果按质量与速度进行评分和排序。

auto_find_and_download

批量曲目查找器:接收歌曲/专辑查询列表,为每项搜索 Soulseek,选择满足质量(默认 320 kbps)和队列标准的最佳候选,并自动加入下载队列。

queue_download

使用搜索结果中的用户名和虚拟路径,将特定文件加入下载队列。

get_downloads_status

返回所有活动、排队和已完成下载的实时状态、进度百分比、速度和队列位置。

clear_finished_downloads

从下载列表中清除已完成的传输。

get_connection_status

返回连接状态、登录用户、服务器地址和下载目标路径。

set_credentials

动态设置或更新 Soulseek 用户名和密码。

🚀 面向 AI 助手的 1 分钟零安装设置

您可以将任何 AI 助手(Claude Desktop、Antigravity、Cursor、Windsurf、Cline、Roo Code 等)直接指向此 GitHub 仓库,无需克隆或手动管理虚拟环境。

推荐方式:通过 uvx 零安装(macOS、Windows、Linux)

在您的 MCP 设置文件中添加以下内容(例如 claude_desktop_config.json):

{
  "mcpServers": {
    "nicotine-plus": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/ccombe/nicotine-plus-mcp@v0.2.0",
        "nicotine-mcp"
      ]
    }
  }
}

[!TIP]

  • uvx 会自动下载、在隔离缓存中安装并按需启动服务器。

  • 您可以通过添加 @v0.2.0 来固定特定版本(推荐以确保稳定性),或使用默认的 master 分支以始终获取最新更新。


💻 本地 Git 克隆设置

如果您更倾向于克隆并在本地运行服务器:

git clone https://github.com/ccombe/nicotine-plus-mcp.git
cd nicotine-plus-mcp
uv run nicotine-mcp

本地 MCP 配置

macOS / Linux

{
  "mcpServers": {
    "nicotine-plus": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/nicotine-plus-mcp",
        "run",
        "nicotine-mcp"
      ]
    }
  }
}

Windows

{
  "mcpServers": {
    "nicotine-plus": {
      "command": "uv.exe",
      "args": [
        "--directory",
        "C:\\path\\to\\nicotine-plus-mcp",
        "run",
        "nicotine-mcp"
      ]
    }
  }
}

[!NOTE] 跨平台自动检测

  • Linux:自动使用 ~/.config/nicotine/config$XDG_DATA_HOME/nicotine

  • macOS:自动检查 ~/Library/Application Support/nicotine~/.config/nicotine

  • Windows:自动使用 %APPDATA%\nicotine\config

如果您已经在电脑上使用 Nicotine+ 桌面应用,则无需任何设置或凭据。如果您想指定自定义凭据或路径,只需在 env 块中添加 SOULSEEK_USERNAMESOULSEEK_PASSWORDSOULSEEK_DOWNLOAD_DIR


与您的 AI 助手一起使用的示例

您可以粘贴如下提示请求:

"请搜索并下载以下曲目,要求 320kbps MP3 格式,选择具有免费上传槽位的最快对等节点:

  1. Daft Punk - Around the World

  2. Aphex Twin - Xtal

  3. Boards of Canada - Dayvan Cowboy"

助手将使用该列表执行 auto_find_and_download,您可以随时通过询问 "我的下载进行得怎么样了?"(该操作会调用 get_downloads_status)来查看进度。


开发、测试与验证

运行所有测试套件:

uv run pytest

运行代码检查器与格式检查器(ruff):

uv run ruff check src/nicotine_mcp tests
uv run ruff format --check src/nicotine_mcp tests

使用 ty 运行严格类型检查:

uv run ty check src/nicotine_mcp tests

审计依赖项的安全漏洞与锁文件完整性:

uv run pip-audit
uv lock --check
-
license - not tested
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
3Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • AI-manageable audio CDN: upload, transcode, normalize, stream & deliver audio, plus grounded docs.

  • Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.

  • Search your knowledge bases from any AI assistant using hybrid RAG.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ccombe/nicotine-plus-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server