protogrid

Search / io.github.obrr-hhx/hanolab

HanoLab Voice Conversion

R0· no sign-in

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

v1.0.2 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality81new
Trust93of 100
Uptime, 30 days100%
Latency p50299 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "hanolab": {
      "type": "http",
      "url": "https://hanolab.com/mcp"
    }
  }
}
claude mcp add --transport http hanolab https://hanolab.com/mcp
[mcp_servers.hanolab]
url = "https://hanolab.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hanolab": {
      "type": "remote",
      "url": "https://hanolab.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "hanolab": {
      "type": "http",
      "url": "https://hanolab.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=hanolab&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vaGFub2xhYi5jb20vbWNwIn0%3D"
}
{
  "servers": {
    "hanolab": {
      "type": "http",
      "url": "https://hanolab.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "hanolab": {
      "httpUrl": "https://hanolab.com/mcp"
    }
  }
}
extensions:
  "hanolab":
    enabled: true
    name: "hanolab"
    type: streamable_http
    uri: "https://hanolab.com/mcp"
    timeout: 300

Quality 81 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations9 of 9 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_credits (idempotentHint); list_voices (idempotentHint); convert_voice (idempotentHint); …
  • pass
    tools.token_costabout 902 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 5 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

9 tools, about 902 tokens to load them all · tool set d7dd54b8b3cc · checked 2026-10-20 00:54 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 93 / 100

provenance75
liveness100
freshness100
hygiene100

+repository +website +reachable +uptime-100% +updated-5d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://hanolab.com/mcp streamable-httpnoneyes100%299 ms2025-11-252026-10-20

Tools (9)

convert_voicedestructiveSpend 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.
create_upload_linkCreate 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.
get_creditsread-onlyRead the connected account’s plan and available credits. Does not purchase credits.
get_profileread-onlyIdentify the HanoLab account connected to these tools.
get_taskCheck 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.
list_audioread-onlyList recent audio uploaded through this connection. Use the exact audio_id, never a local path or an arbitrary URL.
list_conversionsread-onlyFind recent conversions submitted with this connection. Use get_task to refresh a task. This does not start new tasks.
list_voicesread-onlyList the connected user’s own saved voices and whether they are ready. If none are ready, open voicelab to create one.
prepare_voice_conversionPrepare 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.obrr-hhx/hanolab",
  "title": "HanoLab Voice Conversion",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://hanolab.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.2",
  "repository": {
    "url": "https://github.com/hanolab-ai/hanolab-integrations",
    "source": "github"
  },
  "websiteUrl": "https://hanolab.com/docs/mcp?utm_source=mcp_registry&utm_medium=referral&utm_campaign=directory_202610",
  "description": "Convert uploaded speech or singing with your saved HanoLab voices, using OAuth and credit quotes."
}