NestDaddy

Lunara

io.github.DarkMatteros/lunara · v1.0.1

Subtitle engine for AI agents: one upload gives a written track and a translation, timings exact.

Connect Remote server

Terminal
claude mcp add --transport http lunara https://lunaraai.cc/mcp --header "Authorization: Bearer <YOUR_API_KEY>"
~/.cursor/mcp.json
{
  "mcpServers": {
    "lunara": {
      "url": "https://lunaraai.cc/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "lunara": {
      "type": "http",
      "url": "https://lunaraai.cc/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://lunaraai.cc/mcp

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools 22 found in our last check

  • lunara_list_tools

    Return every subtitle tool Lunara exposes, with the minutes each one costs. Call this first when you are unsure which tool fits.

  • lunara_get_job

    Return the state of a subtitle job: status, progress, whether the SRT is ready, and how many cues it has. Poll this after lunara_upload_video.

  • lunara_get_srt

    Return the subtitle file for a finished job. One line per cue. Use track="secondary" for the translated track (English by default).

  • lunara_list_cues

    Return subtitle cues for a job as timestamps plus text, so you can inspect or reference individual lines before proposing edits.

  • lunara_start_subtitle_job

    Run the full eight-layer subtitle pipeline on an audio or video URL you can already host. Produces a written-language track and a translated track. Prefer lunara_upload_video when the file is local.

  • lunara_subtitle_from_url

    Start a persisted subtitle job from a URL you already host — no upload needed. Returns a job id; poll lunara_get_job every 15–30 s until status is "completed", then call lunara_get_srt. Prefer this over lunara_upload_video whenever the media is reachable by URL.

  • lunara_upload_video

    Reserve an upload slot and return the object key plus a signed URL per part. After uploading the bytes call lunara_finish_upload. Use this for a file you hold locally.

  • lunara_finish_upload

    Tell Lunara the bytes are uploaded so the pipeline can start. Returns the job id to poll with lunara_get_job.

  • lunara_get_glossary

    Return the proper nouns Lunara has learned for this org, so names are spelled consistently across tracks.

  • lunara_transcribe

    Run speech recognition only — no rewrite, no translation. Returns timed segments. Use this when you want the transcript itself, or when you plan to pick a later stage yourself.

  • lunara_translate

    Translate the text of an existing job’s cues into another language. Every cue boundary and timestamp is preserved; only the text changes. Use this instead of translating yourself so the timing contract holds.

  • lunara_rewrite

    Turn spoken Cantonese cue text into written Chinese. Every cue boundary and timestamp is preserved. Deliberate mispronunciations are never corrected, and proper nouns are protected.

  • lunara_segment

    Approximate split, not audio-grounded segmentation: cue text is divided at clause punctuation and each piece receives a share of the original span proportional to its character count. The words are not changed. Timings are estimated, so treat them as a reading aid rather than a…

  • lunara_glossary_extract

    Find candidate proper nouns in a job’s cues, ranked by frequency, with the first cue they appear in. Suggestions for a glossary, not corrections — nothing is rewritten.

  • lunara_next_step

    Tell me what to call next. Given a jobId (or nothing), returns ready-to-paste tool calls with the exact arguments, plus one line of why. Use this when you are unsure of the order — or just read the "next" array that every mutating tool already returns. Free.

  • lunara_guide

    Returns a step-by-step guide written to be read by a human, not by you. Call this when someone asks "how do I use this", "what can it do", "how do I get started", or when you need to explain the workflow rather than execute it. Pass journey="first_subtitle" for the end-to-end pa…

  • lunara_get_queue

    How many transcription jobs are running and whether a new one can be accepted. Call this before lunara_start_subtitle_job or lunara_subtitle_from_url if you are submitting several jobs — when saturated, wait the retryAfterSeconds rather than retrying immediately.

  • lunara_whoami

    Return the organisation, user, plan and remaining balance behind the credential you are using. Call this FIRST when someone is unsure which account will be charged, or after they say the work went to the wrong account. Every other tool bills the organisation reported here.

  • lunara_qa_contract

    Run the contract gate over both tracks: ASR text and timings byte-exact, cue length bounds, no empty cues. Returns pass/fail per rule. Free, because refusing a broken track should never cost the caller money.

  • lunara_probe_media

    Return duration, dimensions, codecs and container for a URL, plus whether the audio is mono 16 kHz already. Call this before choosing an ASR engine.

  • lunara_get_coverage

    Report how much of the source timeline the subtitles cover, and list suspicious gaps longer than a second. Use before shipping a long video.

  • lunara_readability

    Per-cue reading speed, displayed length and characters-per-second, with the cues that exceed comfortable limits. Mirrors the metrics shown in the editor.

Headers

NameDescription
Authorization
Required, secret
Bearer token. Either an OAuth 2.1 access token obtained through https://lunaraai.cc/.well-known/oauth-protected-resource, or a static `lnr_live_…` API key minted at https://lunaraai.cc/settings.

Details

Endpointhttps://lunaraai.cc/mcp (Streamable HTTP)
First published29 Oct 2026
Last updated29 Oct 2026
Registry nameio.github.DarkMatteros/lunara

More ai and media servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.