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.
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
- Hermes
- Claude Code
- Codex
- Cursor
openclaw mcp add kitsch --url "$KITSCH_MCP_URL" --transport streamable-http --auth oauth --timeout 180
openclaw mcp login kitsch
openclaw mcp doctor kitsch --probe
hermes mcp add kitsch --url "$KITSCH_MCP_URL" --auth oauth
hermes mcp login kitsch
hermes mcp test kitsch
Skip the second command if you already signed in while adding the server.
Start a new session or run /reload-mcp.
Official Hermes MCP guide
claude mcp add --transport http --scope user kitsch "$KITSCH_MCP_URL"
claude mcp get kitsch
Run /mcp inside Claude Code and authenticate kitsch.
Official Claude Code MCP guide
codex mcp add kitsch --url "$KITSCH_MCP_URL"
codex mcp login kitsch
codex mcp list
Add this value to the existing [mcp_servers.kitsch] section in
~/.codex/config.toml, then start a new session. This avoids interrupting longer
synthesis at the default 60-second tool timeout.
tool_timeout_sec = 180
Add the entry to mcpServers in ~/.cursor/mcp.json. Set KITSCH_MCP_URL in
Cursor's environment, or replace url with the actual URL you received.
{
"mcpServers": {
"kitsch": {
"url": "${env:KITSCH_MCP_URL}"
}
}
}
Follow the connection and sign-in prompts for kitsch in Cursor's MCP settings.
Official Cursor MCP guide
Sign in and authorize
- Sign in to Kitsch in your browser.
- Review the agent's name and requested voice permissions.
- 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.
| Tool | Input | Result |
|---|---|---|
list_voices | None | Available voices and their voice_id |
synthesize_speech | operation_id, voice_id, text; optional output_format, language_code, return_audio | Completed audio download link and MIME type |
prepare_transcription | operation_id, filename, actual size_bytes; optional language, prompt | Direct upload URL, headers, and multipart fields |
get_audio_operation | Original operation_id | Operation 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_operationfor a fresh link during that period. return_audio: truealso 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.unknownmeans 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_untilwhen 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.
| Item | Status |
|---|---|
| Client registration/authentication syntax above | Checked against official documentation |
| Public company-hosted MCP service | Deployed; HTTPS, readiness, OAuth metadata, and unauthenticated request rejection verified |
| Each client with Kitsch OAuth | Not tested end to end |
| Paid generation, transcription, and playback with a real account | Not 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.