HanoLab Voice Conversion

Convert uploaded speech or singing with your saved HanoLab voices, using OAuth and credit quotes.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
47%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~998Tokens (tool definitions)
~531 BTypical response size
Moderate attention impact (0.78% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "hanolab": {
      "url": "https://hanolab.com/mcp"
    }
  }
}

Remote endpoints

https://hanolab.com/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒get_profile

Identify the HanoLab account connected to these tools.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "name"
  ],
  "additionalProperties": false
}
🟒get_credits

Read the connected account’s plan and available credits. Does not purchase credits.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒list_voices

List the connected user’s own saved voices and whether they are ready. If none are ready, open voicelab to create one.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟑create_upload_link

Create a private one-hour browser upload link. Ask the user to open it, choose an audio file or MP4 and return here. Requires the same HanoLab account; no credits are spent. This tool cannot read local paths or ChatGPT attachments directly.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒list_audio

List recent audio uploaded through this connection. Use the exact audio_id, never a local path or an arbitrary URL.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒prepare_voice_conversion(audio_id, voice_id, full_song)

Prepare a fixed quote for uploaded audio and a ready owned voice. No credits are spent. Explain estimated_credits, obtain the user’s budget and explicit confirmation, then use convert_voice with this exact quote_id.

Input Schema

{
  "type": "object",
  "properties": {
    "audio_id": {
      "type": "string",
      "format": "uuid"
    },
    "voice_id": {
      "type": "string",
      "format": "uuid"
    },
    "full_song": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "audio_id",
    "voice_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
πŸ”΄convert_voice(quote_id, max_credits, confirmed)

Spend HanoLab credits to submit the prepared conversion ONLY after the user confirms its cost and budget. Reuse the exact quote_id after interruption: repeated calls return the original task without another debit. A failed task needs a separate user decision before a new quote.

Input Schema

{
  "type": "object",
  "properties": {
    "quote_id": {
      "type": "string",
      "format": "uuid"
    },
    "max_credits": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    },
    "confirmed": {
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "quote_id",
    "max_credits",
    "confirmed"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟑get_task(task_id)

Check an owned task and return completed audio links. Refreshes worker status and may persist completion or a failure refund. Poll about every 10 seconds; do not submit a new paid task while waiting.

Input Schema

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "task_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒list_conversions

Find recent conversions submitted with this connection. Use get_task to refresh a task. This does not start new tasks.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools