Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SING_DIRNoWorking directory for venv, models, scripts, and intermediate work files.sing
SING_MODELNoVoice model filename relative to sing/model/, or an absolute path.xiaoxiao.pth
SING_YTDLPNoyt-dlp executable path. Auto-detected from the venv or PATH by default.
SING_CONFIGNoPath to an alternative config.json file. By default the server uses config.json in the repository root.
SING_DEVICENoDemucs device to use: cuda or cpu.cuda
SING_FFMPEGNoffmpeg executable path. Auto-detected from PATH by default.
SING_PYTHONNoPython executable path. Auto-detected by default.
SING_F0_ENGINENoPitch-estimation engine: auto, rmvpe, or pyin.auto
SING_FEMALE_F0NoFundamental-frequency threshold above which the source is treated as female range and not pitch-shifted upward.200
SING_KEEP_WORKNoNumber of recent task directories to keep under sing/work/. Set 0 to disable cleanup.3
SING_MAX_PITCHNoMaximum automatic pitch shift in semitones.12
SING_TARGET_F0NoTarget median fundamental frequency in Hz used for automatic pitch selection.250
SING_OUTPUT_DIRNoDirectory where finished audio files are written.output
SING_VOICE_TOOLNoTool name used only in returned next-step hints for sending the generated voice file.send_voice
SING_KEEP_OUTPUTNoNumber of recent sing-*.mp3 outputs to keep. Set 0 to disable cleanup.20
SING_MAX_SECONDSNoMaximum clip length in seconds for a single request.60
SING_START_OFFSETSNoStart-offset rule file path, relative to singDir or absolute.start-offsets.json
SING_F0_MAX_SECONDSNoMaximum seconds of vocal audio used for pitch estimation.40
SING_MAX_CONCURRENTNoNumber of sing_cover jobs allowed to run at once. Keep at 1 to avoid GPU memory exhaustion.1
SING_DEFAULT_SECONDSNoDefault clip length in seconds when seconds is not provided.30

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
sing_probeA

检查唱歌链路是否就绪:yt-dlp / ffmpeg / torch(CUDA) / demucs / RVC 工程 / 音色模型 / contentvec / 输出目录可写。返回里 aiReady 表示能不能真翻唱,aiMissing 是还缺什么,originalReady 表示能不能出原唱片段。要确认「现在能不能唱」时先调这个。

sing_searchA

在线搜歌(B站优先,YouTube 兜底),返回候选的标题/时长/播放量/链接(含上传者)。挑版本时优先选播放量高、时长 1.5~8 分钟的整曲;标着「切片/片段/翻唱/live」的往往是几十秒的短视频,拿去翻唱会直接踩到副歌中间。不确定是哪一版时,先用它挑一首再调 sing_cover。

sing_coverA

唱一段歌:联网找歌 → 下载音源 → 截最多 60 秒 → 输出到产物目录,返回文件名(之后用机器人框架的发语音工具发出去)。mode=original 是原唱片段;mode=ai 是用目标音色翻唱(需要本地 RVC 与音色模型就绪,没就绪会明确报缺什么,不会偷偷退回原唱)。mode=ai 时不要自己猜 pitch:留空即可,脚本会按原唱音域自动定调,返回里的 pitchNote 会说明它做了什么。

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation4/5

Each tool maps to a distinct stage of the pipeline: readiness check (sing_probe), online candidate discovery (sing_search), and audio rendering (sing_cover). The only blur is that sing_cover also performs an internal search+download, so an agent may be unsure whether searching first is optional, but the descriptions explicitly prescribe search-then-cover when unsure.

Naming Consistency5/5

All three tools use the same 'sing_' prefix plus a short verb/noun (probe, search, cover), all lowercase snake_case. The pattern is immediately recognizable and predictable.

Tool Count4/5

Three tools is lean for the domain but each earns its place as a step in a single workflow (diagnose, select, render). It sits at the low edge of the comfortable range, with no filler tools.

Completeness4/5

The core lifecycle is covered: check readiness, find a song, produce a 60s clip in original or AI-voice mode, with explicit failure reporting. Minor gaps exist — no way to list/manage previously generated artifacts or to render a specific candidate from search results by handle — but agents can work around them with another search query.

Maintenance

ActivityMaintained
ResponsivenessNo issues