{"name":"ai.oruk/speech","slug":"oruk-speech","title":"oruk Speech","description":"Hosted speech-to-text + speech emotion/tone analysis for agents. No install; trial keys built in.","url":"https://mcp.market/server/oruk-speech","rating":null,"grade":"C","score":63,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":7,"ok":7,"last_checked_at":"2026-09-21T01:15:42.557Z","last_ok_at":"2026-09-21T01:15:42.557Z","latency_ms":46},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://oruk.ai/docs/mcp","version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://oruk.ai/mcp","headers":[{"description":"Bearer <oruk API key>. Optional: model/pricing lookup, quickstart, and trial-key minting work without it. Get a key at https://oruk.ai/account/api-keys. Standard plans have a 7-day trial; see https://oruk.ai/pricing for current terms.","isSecret":true,"name":"Authorization"}]}],"packages":[],"tools":[{"name":"oruk_analyze_speech","description":"Transcribe English audio AND score how it was said in one call: transcript, tagged transcript, selected scores from 15 emotion and 16 speaking-style labels, and time-local segments. Use this when the user cares about both the words and the delivery — meetings, support calls, interviews, voice notes. Accepts wav/flac/mp3/m4a/ogg/webm. Up to 30 MB via audio_url or 8 MiB decoded via audio_base64; up to 60 minutes of English speech. Returns compact summaries by default. For words only use oruk_transcribe_audio; for tone only use oruk_analyze_tone.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"audio_url":{"description":"Publicly fetchable audio file URL (wav, flac, mp3, m4a, ogg, webm; up to 30 MB / 60 minutes of English speech).","type":"string","maxLength":2000,"format":"uri"},"audio_base64":{"description":"Base64-encoded audio bytes for local files (up to 8 MiB decoded). Prefer audio_url for anything larger.","type":"string","maxLength":11500000},"filename":{"description":"Original filename including extension (e.g. call.wav). Helps decoding when audio_base64 is used.","type":"string","maxLength":160},"model":{"description":"oruk-resonance (full local pipeline: transcription, emotion, style, affect, analysis) or oruk-fourier (parallel transcript and native 15-label emotion, with the shared 16-label style model). Resonance is the default.","type":"string","enum":["oruk-resonance","oruk-fourier"]},"detail":{"description":"compact (default) returns top label scores and condensed segments; full preserves all returned labels, segments, and word-level timings, subject to response-size limits. It does not expose unreturned label scores.","type":"string","enum":["compact","full"]},"diarize":{"description":"Label speakers (oruk-resonance only; the model is switched to oruk-resonance automatically). Speaker diarization locates turns, then Resonance scores each turn with its own text, emotions, and styles. Use for calls, meetings, and interviews. Included in subscription plan minutes. Processing details: https://oruk.ai/security#processing.","type":"boolean"},"api_key":{"description":"Only for temporary keys from oruk_create_trial_key. Permanent keys belong in your MCP client config as an \"Authorization: Bearer <key>\" header, never in tool arguments.","type":"string","maxLength":200}},"additionalProperties":false}},{"name":"oruk_analyze_tone","description":"Score how speech sounds without transcribing it: selected emotion (happy, frustrated, worried, …) and speaking-style (sarcastic, confident, hesitant, warm, …) scores per acoustic segment. Runs the Resonance encoder and affect head only — the transcription decoder is never invoked, so nothing is transcribed and it consumes the same subscription audio minutes as unified analysis. Use this when the user asks about mood, delivery, sentiment, sarcasm, or emotional dynamics in audio. Up to 30 MB via audio_url or 8 MiB decoded via audio_base64; up to 60 minutes of English speech. Labels use model-specific thresholds; the highest-scoring emotion is returned if none passes, and styles can be empty. Outputs describe delivery, not probabilities of inner state. Need the words too? Use oruk_analyze_speech.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"audio_url":{"description":"Publicly fetchable audio file URL (wav, flac, mp3, m4a, ogg, webm; up to 30 MB / 60 minutes of English speech).","type":"string","maxLength":2000,"format":"uri"},"audio_base64":{"description":"Base64-encoded audio bytes for local files (up to 8 MiB decoded). Prefer audio_url for anything larger.","type":"string","maxLength":11500000},"filename":{"description":"Original filename including extension (e.g. call.wav). Helps decoding when audio_base64 is used.","type":"string","maxLength":160},"model":{"description":"oruk-resonance (full local pipeline: transcription, emotion, style, affect, analysis) or oruk-fourier (parallel transcript and native 15-label emotion, with the shared 16-label style model). Resonance is the default.","type":"string","enum":["oruk-resonance","oruk-fourier"]},"detail":{"description":"compact (default) returns top label scores and condensed segments; full preserves all returned labels, segments, and word-level timings, subject to response-size limits. It does not expose unreturned label scores.","type":"string","enum":["compact","full"]},"diarize":{"description":"Label speakers (oruk-resonance only; the model is switched to oruk-resonance automatically). Speaker diarization locates turns, then Resonance scores each turn with its own text, emotions, and styles. Use for calls, meetings, and interviews. Included in subscription plan minutes. Processing details: https://oruk.ai/security#processing.","type":"boolean"},"api_key":{"description":"Only for temporary keys from oruk_create_trial_key. Permanent keys belong in your MCP client config as an \"Authorization: Bearer <key>\" header, never in tool arguments.","type":"string","maxLength":200}},"additionalProperties":false}},{"name":"oruk_check_usage","description":"Verify that an Oruk API key works and report the subscription, remaining audio minutes, and recent API usage. Use this after setup or to diagnose access and usage limits. Requires the Authorization header from your MCP config or a temporary api_key.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"api_key":{"description":"Only for temporary keys from oruk_create_trial_key. Permanent keys belong in the Authorization header of your MCP client config.","type":"string","maxLength":200}},"additionalProperties":false}},{"name":"oruk_create_trial_key","description":"Mint a real, temporary oruk API key with no account required: 3 requests, expires in 30 minutes, spends from a capped shared budget. Use this when no Authorization header is configured and the user wants to try transcription or tone analysis right now. Pass the returned key as the api_key argument of the audio tools. Share the signup link with the user so they can keep using oruk afterwards (7-day free trial on self-serve plans).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"oruk_get_started","description":"Quickstart for the oruk Speech API and this MCP server: how to get an API key, per-client MCP configuration snippets, SDK install commands, and an optional routing rule the user can add to their agent instructions. No API key required. Use this when setting oruk up for the first time or when the user asks how oruk works.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"oruk_list_models","description":"List oruk’s speech models with lifecycle, current subscription plans, and explicitly labeled legacy reference rates, the five API tasks, the 15 emotion and 16 speaking-style labels, and audio limits. No API key required. Use this to choose a model, estimate cost before analyzing long audio, or see which labels exist.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"oruk_transcribe_audio","description":"Transcribe prerecorded English audio to text with time-ordered segments and word timings. Use this when only the words matter. Accepts wav/flac/mp3/m4a/ogg/webm. Up to 30 MB via audio_url or 8 MiB decoded via audio_base64; up to 60 minutes of English speech. Does not score emotion or tone — use oruk_analyze_speech for transcript + tone together, or oruk_analyze_tone for tone alone.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"audio_url":{"description":"Publicly fetchable audio file URL (wav, flac, mp3, m4a, ogg, webm; up to 30 MB / 60 minutes of English speech).","type":"string","maxLength":2000,"format":"uri"},"audio_base64":{"description":"Base64-encoded audio bytes for local files (up to 8 MiB decoded). Prefer audio_url for anything larger.","type":"string","maxLength":11500000},"filename":{"description":"Original filename including extension (e.g. call.wav). Helps decoding when audio_base64 is used.","type":"string","maxLength":160},"model":{"description":"oruk-resonance (full local pipeline: transcription, emotion, style, affect, analysis) or oruk-fourier (parallel transcript and native 15-label emotion, with the shared 16-label style model). Resonance is the default.","type":"string","enum":["oruk-resonance","oruk-fourier"]},"detail":{"description":"compact (default) returns top label scores and condensed segments; full preserves all returned labels, segments, and word-level timings, subject to response-size limits. It does not expose unreturned label scores.","type":"string","enum":["compact","full"]},"diarize":{"description":"Label speakers (oruk-resonance only; the model is switched to oruk-resonance automatically). Speaker diarization locates turns, then Resonance scores each turn with its own text, emotions, and styles. Use for calls, meetings, and interviews. Included in subscription plan minutes. Processing details: https://oruk.ai/security#processing.","type":"boolean"},"api_key":{"description":"Only for temporary keys from oruk_create_trial_key. Permanent keys belong in your MCP client config as an \"Authorization: Bearer <key>\" header, never in tool arguments.","type":"string","maxLength":200}},"additionalProperties":false}}],"scan":{"score":63,"grade":"C","scanned_at":"2026-09-20T05:05:37.687Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T05:05:37.660Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 3426ms"]},"poisoning":{"score":15,"max":15,"notes":["7 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://oruk.ai/mcp","reachable":true,"authRequired":false,"latencyMs":3426,"serverInfo":{"name":"oruk","version":"1.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://oruk.ai/brand/web/2026-09-09-light-signal/favicon-ivory.svg","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}