Nass MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NASS_DEVICE | No | Device used by faster-whisper, e.g. cpu. | cpu |
| GROQ_API_KEY | No | Groq API key for optional external ASR; used only when NASS_ALLOW_EXTERNAL_ASR=1. | |
| NASS_WORKERS | No | Number of transcription workers. | 1 |
| NASS_DATA_DIR | No | Directory for Nass data, such as job data. | |
| NASS_MEDIA_DIR | No | Directory containing local audio files for nass_start_local_file. | |
| NASS_TRANSPORT | No | Transport mode. Set to `http` to run HTTP transport locally; default is stdio. | |
| NASS_AUDIO_CACHE | No | Enable or disable local audio cache. | 1 |
| NASS_BACKEND_URL | No | URL of the authenticated upstream Python backend used by the Netlify remote gateway. | |
| NASS_COMPUTE_TYPE | No | Compute type used by faster-whisper, e.g. int8. | int8 |
| NASS_BACKEND_TOKEN | No | Shared secret for remote gateway/backend authentication; must match between Netlify and the backend. | |
| NASS_WHISPER_MODEL | No | Whisper model to use. Larger models such as medium/large-v3 need more compute. | small |
| NASS_INITIAL_PROMPT | No | Initial prompt used to bias Whisper transcription, e.g. Arabic terms and names. | |
| NASS_JOB_QUEUE_LIMIT | No | Per-process job queue quota to prevent task buildup. | 8 |
| NASS_WHISPER_CPP_BIN | No | Path to the whisper.cpp binary (whisper-cli) for the alternative local ASR backend. | |
| NASS_MAX_DURATION_SEC | No | Maximum allowed media duration in seconds. | 14400 |
| NASS_MCP_BEARER_TOKEN | No | Bearer token used by MCP clients to authenticate to the remote gateway. | |
| NASS_PROVIDER_TIMEOUT | No | Timeout in seconds for audio/caption providers. | 600 |
| NASS_YOUTUBEJS_SCRIPT | No | Path to youtubejs_audio.mjs for optional YouTube.js audio extraction. | |
| NASS_WHISPER_CPP_MODEL | No | Path to the whisper.cpp ggml model file for the alternative local ASR backend. | |
| NASS_ALLOW_EXTERNAL_ASR | No | Set to 1 to allow optional external ASR via Groq. | |
| NASS_CAPTION_CACHE_SECONDS | No | Caption cache lifetime in seconds. | 86400 |
| NASS_AUDIO_CACHE_LIMIT_BYTES | No | Maximum audio cache size in bytes. | 3221225472 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| nass_healthA | Inspect availability of independent caption/audio/ASR backends; never claim success from installation alone. |
| nass_start_transcriptionA | Queue a YouTube transcription. auto=prefer captions, audio=recognize original audio, captions=captions only, verify=run audio ASR independently and provide both for comparison. Always prefer 'audio' for no-captions videos or when verifying quoted speech. |
| nass_start_local_fileC | Transcribe a media file inside configured NASS_MEDIA_DIR, bypassing YouTube completely. |
| nass_job_statusB | Get queued/running/completed/failed status and the precise fallback attempt ledger. |
| nass_get_transcriptC | Read long transcripts in reliable pages; next_segment identifies the next page. |
| nass_search_transcriptB | Search complete stored transcript; return precise quotes/timestamps and source links. Arabic diacritics and common alef variants are normalized for retrieval only. |
| nass_exportB | Export transcript as SRT, TXT or JSON on the server, for later sharing/analysis. |
| nass_audio_excerptB | Return an audio Content block containing up to 45 seconds of actual spoken audio. Useful for directly checking critical quotations. Client audio support varies. |
| nass_start_audio_downloadA | Queue an audio-only download without captions or speech recognition; poll job status. Better suited than the synchronous tool for long videos. |
| nass_download_original_audioB | Obtain an actual audio media file on the MCP host, without using any captions. A synchronous download is appropriate for relatively short public videos. The returned file path is server-local and never implies user-side download. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Most tools are clearly separated by action and resource: start transcription vs get/search/export transcript, YouTube source vs local file, transcript access vs audio access. The main overlap is nass_start_audio_download vs nass_download_original_audio, both audio-download paths differentiated mainly by async/sync and video length, so some misselection risk remains.
All tools use a consistent nass_ prefix and snake_case formatting. Most names follow verb_noun, but nass_export, nass_health, and nass_audio_excerpt are noun-only or objectless deviations, making the pattern slightly less uniform.
Ten tools is well within the appropriate range for a transcription/audio workflow. Each tool covers a distinct stage—job start, status polling, transcript retrieval/search/export, audio inspection/download, and backend health—without excessive surface area.
The surface covers the core lifecycle: starting YouTube or local-file transcription, checking job status, reading/searching/exporting transcripts, obtaining audio excerpts/downloads, and checking backend health. Minor gaps include no explicit job cancellation or transcript/job listing and management operations, which agents may need for longer workflows.