Skip to main content

Kitsch Labs MCP

Add the company-hosted MCP URL and sign in with your Kitsch account. You do not need to download or run a Kitsch server package. To delegate setup, share If you're an agent.

Connection URL

https://mcp.kitschlabs.com/mcp

Choose your agent below to connect.

Connect your agent​

Use your existing agent installation. Commands use Bash/Zsh's $KITSCH_MCP_URL. In PowerShell, use $env:KITSCH_MCP_URL or substitute the actual URL. If kitsch already exists, update only that entry and preserve other servers.

export KITSCH_MCP_URL="https://mcp.kitschlabs.com/mcp"
openclaw mcp add kitsch --url "$KITSCH_MCP_URL" --transport streamable-http --auth oauth --timeout 180
openclaw mcp login kitsch
openclaw mcp doctor kitsch --probe

Official OpenClaw authentication guide

Sign in and authorize​

  1. Sign in to Kitsch in your browser.
  2. Review the agent's name and requested voice permissions.
  3. Choose an active workspace where you are an owner or admin, then approve.

Speech generation and transcription use that workspace's credits and may incur postpaid usage charges. You do not need to copy an API key or paste one into chat. Disconnect in the Kitsch app under Account settings → Connected agents. Disconnecting blocks new requests; it does not cancel accepted work or incurred usage.

Verify the connection​

Show the Kitsch MCP tools and the voices I can use.
Do not generate speech or transcribe a file yet.

Tools appear according to the permissions you approved. Your client may prefix their names.

ToolInputResult
list_voicesNoneAvailable voices and their voice_id
synthesize_speechoperation_id, voice_id, text; optional output_format, language_code, return_audioCompleted audio download link and MIME type
prepare_transcriptionoperation_id, filename, actual size_bytes; optional language, promptDirect upload URL, headers, and multipart fields
get_audio_operationOriginal operation_idOperation status and completed result

Create an ID once for each synthesis/transcription request and retain it until you receive the result.

const operation_id = Date.now() + "_" + crypto.randomUUID();

Transcribe a file​

prepare_transcription does not read a local file or start transcription. Use an agent HTTP or shell tool that can access the file. POST it to the returned upload_url, using the returned headers, multipart_fields, and file_field. Fetching an arbitrary audio_url is not supported.

Files can be up to 100 MiB. The upload credential is single-use and expires after five minutes. Do not share or log it. Omit prompt when unused rather than sending an empty string. A client without HTTP/shell access cannot complete this file upload flow.

Results and recovery​

  • Synthesis returns a completed file, not live audio playback. MP3 is the default; WAV is optional.
  • Download links last at most 15 minutes. Audio is retained for 24 hours; use get_audio_operation for a fresh link during that period.
  • return_audio: true also returns audio content for a newly generated result up to 2 MiB. Recovered results use links. Playback presentation depends on the client.
  • If a response is lost or times out, query the original operation_id. unknown means processing or billing may have occurred. Do not automatically synthesize with a new ID or upload the file again.
  • After an uncertain synthesis failure, new work in the same workspace may be blocked for five minutes. Wait until admission_blocked_until when present. Disconnecting does not cancel processing or charges that have already started.

Scope and verification status​

MCP connects tools. The transport name Streamable HTTP does not mean microphone STT or live TTS playback. It does not automatically change the default voice reply provider. Realtime STT/TTS adapters for Hermes and OpenClaw are separate follow-up work.

ItemStatus
Client registration/authentication syntax aboveChecked against official documentation
Public company-hosted MCP serviceDeployed; HTTPS, readiness, OAuth metadata, and unauthenticated request rejection verified
Each client with Kitsch OAuthNot tested end to end
Paid generation, transcription, and playback with a real accountNot tested

Developers who need to run a local server can use Advanced: local stdio. For help, send the client version and request_id to support, excluding credentials.