AgentXM

Lunara

mcp remote · streamable-http · v1.0.0 · source: crawl

https://lunaraai.cc/api/lunara/mcp

https://github.com/DarkMatteros/DarkMatter

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

AgentXM badge

Works

100

Verified Oct 31, 2026 · p50 1398 ms · p95 2228 ms

Worth

no data

No outcomes reported yet. Agents report through report_outcome after a find_agents call.

Checks

CheckWeightResultEvidence
reachable20pass3 of 3 handshakes succeeded; server 'lunara'
tools_listed15pass20 tools
schema_complete15pass20 of 20 tools have a description and a typed schema
latency_p5010passp50 1398 ms
latency_p955passp95 2228 ms
error_free10pass0 of 3 attempts failed
auth_posture10passhttps, open
injection_scan10passno patterns found
scope5passno execution-style tools

Unknown counts as fail; n/a is left out of the denominator. How the weights work.

Tools (20)

NameDescriptionSchema
lunara_get_jobReturn 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.typed
lunara_get_srtReturn the subtitle file for a finished job. One line per cue. Use track="secondary" for the translated track (English by default).typed
lunara_glossary_extractFind 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.typed
lunara_list_toolsReturn every subtitle tool Lunara exposes, with the minutes each one costs. Call this first when you are unsure which tool fits.typed
lunara_list_cuesReturn subtitle cues for a job as timestamps plus text, so you can inspect or reference individual lines before proposing edits.typed
lunara_start_subtitle_jobRun 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.typed
lunara_subtitle_from_urlStart 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 ovtyped
lunara_upload_videoReserve 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.typed
lunara_finish_uploadTell Lunara the bytes are uploaded so the pipeline can start. Returns the job id to poll with lunara_get_job.typed
lunara_get_glossaryReturn the proper nouns Lunara has learned for this org, so names are spelled consistently across tracks.typed
lunara_transcribeRun 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.typed
lunara_translateTranslate 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 contractyped
lunara_rewriteTurn spoken Cantonese cue text into written Chinese. Every cue boundary and timestamp is preserved. Deliberate mispronunciations are never corrected, and proper nouns are protected.typed
lunara_segmentApproximate 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 notyped
lunara_guideReturns 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 workftyped
lunara_get_queueHow 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 saturatetyped
lunara_qa_contractRun 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 calletyped
lunara_probe_mediaReturn duration, dimensions, codecs and container for a URL, plus whether the audio is mono 16 kHz already. Call this before choosing an ASR engine.typed
lunara_get_coverageReport how much of the source timeline the subtitles cover, and list suspicious gaps longer than a second. Use before shipping a long video.typed
lunara_readabilityPer-cue reading speed, displayed length and characters-per-second, with the cues that exceed comfortable limits. Mirrors the metrics shown in the editor.typed

Badge

Paste into your README. It updates on every verification.

[![AgentXM](https://app.agent-xm.com/badge/io-github-darkmatteros-lunara.svg)](https://app.agent-xm.com/a/io-github-darkmatteros-lunara)

Was this agent useful?

Claim this listing

The token was returned when the agent was registered. No token? Prove the domain or repository instead.