by arcmira
YouTube transcript search for your AI. Find who said what with timestamps, mentions, sponsors, and recommendations. Remote MCP and agent skills.
# Add to your Claude Code skills
git clone https://github.com/arcmira/mcpSee how mcp compares with popular alternatives.
mcp is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by arcmira. YouTube transcript search for your AI. Find who said what with timestamps, mentions, sponsors, and recommendations. Remote MCP and agent skills. It has 65 GitHub stars.
mcp's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/arcmira/mcp" and add it to your Claude Code skills directory (see the Installation section above).
mcp is primarily written in TypeScript. It is open-source under arcmira on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh mcp against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Give your AI the ability to find who said what with timestamps, discover what’s being discussed across videos and livestreams, and distinguish organic recommendations from sponsored ad reads.
Arcmira · API documentation · OpenAPI schema · MCP setup
Copy this into your coding agent:
Fetch and execute the appropriate instructions to set me up for Arcmira from https://arcmira.com/agent-setup/prompt.md
For Claude, ChatGPT, Cursor, and other MCP clients, use https://mcp.arcmira.com/mcp and sign in to Arcmira. Setup by host · Documentation · Website · Plugin and skills
Try: “Which brands sponsor both TBPN and the All-In Podcast?” or “Find what Sam Altman said about AI agents, with timestamped links.”
Results cover indexed videos. Speaker identification and sponsored-versus-organic classifications can be incomplete or incorrect; check the linked source. Plan limits apply.
Share plugin feedback · Update installed skills
Two ways in. Hosts that speak the MCP authorization spec sign you in; everything else sends a key.
Sign in through the host. Add https://mcp.arcmira.com/mcp with no key. The server answers 401 with an OAuth challenge, the host registers itself against api.arcmira.com, opens arcmira.com for sign-in and consent, and connects with a token that carries the permissions you allowed. Tokens refresh on their own; revoke a host under Settings, Connected apps.
claude mcp add --transport http --scope user arcmira https://mcp.arcmira.com/mcp
codex mcp add arcmira --url https://mcp.arcmira.com/mcp
Claude Desktop, claude.ai, ChatGPT, and Cursor: add the URL as a custom connector or MCP server with no headers and follow the sign-in prompt. Per-host steps are on https://arcmira.com/agent-setup.
Send a key. Any client that cannot do the sign-in sends a bearer token instead, and the server skips OAuth.
An account key (arc_sk_...) comes from https://arcmira.com. Plan and scopes decide what each tool returns. With no account and no browser, sign up from the API. Post an email address, then post the six digit code from that inbox back.
curl -X POST "https://api.arcmira.com/v1/signups?src=mcp-tool" \
-H 'Content-Type: application/json' \
-d '{"email":"agent@example.com"}'
curl -X POST "https://api.arcmira.com/v1/signups/verify" \
-H 'Content-Type: application/json' \
-d '{"email":"agent@example.com","code":"482913"}'
claude mcp add --transport http --scope user arcmira https://mcp.arcmira.com/mcp --header "Authorization: Bearer $ARCMIRA_API_KEY"
{
"mcpServers": {
"arcmira": {
"url": "https://mcp.arcmira.com/mcp",
"headers": { "Authorization": "Bearer arc_sk_..." }
}
}
}
The 401 body carries that signup call under error.data.unlock.action, so an agent that cannot sign in can create an account and reconnect. Discovery: https://mcp.arcmira.com/.well-known/oauth-protected-resource names the authorization server; https://api.arcmira.com/.well-known/oauth-authorization-server lists its endpoints.
| Tool | Input | Returns |
|---|---|---|
arcmira_describe |
topic? |
The arcmira client reference: the id rule, which method answers which question, every method with arguments and return fields, worked example programs, the quirks that cost answers, the usage and monitor rules, error codes, and doc links. About 23,000 characters; topic narrows it to one method and its examples. Never bills. |
arcmira_execute_read |
code |
What the program printed plus its return value. The code is the body of an async function with arcmira and ArcmiraError in scope. Reads, Premium transcripts included, and the user's monitors. Limits: 30 seconds, 40 API calls, and 12,000 characters of output in total, 3,000 per string, and 100 items per array. |
arcmira_execute_write |
code |
The same as arcmira_execute_read, with the account writes added: arcmira.monitors.create, arcmira.monitors.update (including paused), arcmira.monitors.addEntities, arcmira.monitors.addName and arcmira.monitors.attachTrackers. Nothing is deleted. |
arcmira_feedback |
category, note, request_id?, call_id? |
One POST /v1/feedback of type experience. category is wrong_entity, bad_data, missing, slow, confusing or other; note says what happened. Returns the feedback id. |
Every tool also takes an optional intent, at most 300 characters: the user's request in a few words. A host that omits it loses nothing. See What we log.
Only arcmira_describe is annotated read-only. Both program tools can start Premium transcription, which uses credits from the plan and then the on-demand budget, so neither is read-only. Only arcmira_execute_write is destructive, because it can overwrite monitor settings and pause monitors; a Premium read only adds. Both can request arbitrary public videos and carry open-world annotations. Feedback adds a stored record and is an additive write. These labels describe possible effects; the execute_read name identifies the client access level, not a guarantee of no side effects.
Metered reads use credits from your plan, then the on-demand budget you set in the dashboard. Arcmira enforces that budget on every read, and no tool takes a spending amount. A search uses 4 credits per passage it returns past the first 5, a captions read 4 credits per started 15 minutes of its window, and a Premium transcript 300 credits per started 15 minutes of the whole video. A Premium read that starts a transcription reports its charge (credits, and whether they came from the plan, on-demand usage, or both). arcmira.quote(video) returns that price beforehand and uses no credits; it is a price check, not a spoken quote. When the plan or budget blocks a read, the tool result is an error (isError: true) with the API's code (paid_plan_required, quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap or on_demand_paused), a message that states what was reached and what lifts it, and unlock when a plan or setting change lifts it. The server gives the agent these facts, not a script for what to say.
A Premium transcript is one read in arcmira_execute_read:
const t = await arcmira.transcript("cdLeJU_1UH8", { quality: "premium" });
return t.state === "ready" ? t.lines : { state: t.state, eta_seconds: t.eta_seconds, note: t.note };
When the video is not transcribed yet, GET /v1/transcripts/{video_id}?quality=premium starts transcribing it and answers 202 with the job and Retry-After. The client reads again at Retry-After until 22 seconds into the program, a wait all Premium reads in one program share. Reading again never uses credits twice. Still pending after that: the result carries eta_seconds, and the same read in a later program returns the lines. A failed transcription comes back as state failed or refunded with the reason, and the read does not start another unless it passes retry: true, which an agent sends only when the user asks. A plan without Premium throws paid_plan_required; a budget that blocks the read throws spend_limit_exceeded or quota_exceeded, and the price rides on the error as quote. start and end never lower a Premium charge.
Results that are empty, an error, truncated or a resolve ask carry call_id (mcpc_...), which arcmira_feedback takes to name the call.
The client's methods are the arcmira CLI's commands, with the same names and the flags as options, so the MCP, the CLI and the SDK teach one vocabulary:
| Method | Fronts | Use it for |
|---|---|---|
arcmira.resolve(q, { type?, context?, limit? }) |
GET /v1/entities/resolve |
A name, @handle, URL or UC id to one of three answers: best, suggested (with reason and evidence), or ask with options |
arcmira.search({ query, channelIds?, about?, speakerIds?, kind?, entityIds?, after?, before?, source?, limit? }) |
GET /v1/search |
Spoken slices for one topic, or about an entity, or spoken by a person, with watch links and dates |
arcmira.mentions({ entityId, channelId?, after?, before?, limit?, cursor? }) |
GET /v1/mentions |
Has X mentioned Y, first seen, last seen |
arcmira.momentum(entityId, { days? }) |
GET /v1/entities/{id}/momentum |
The last days (7 to 365, default 30) against the prior days, with a verdict and top shows for that window. 10 credits a call. |
arcmira.sponsors(channelId, { minAdReads?, status?, limit? }) |
GET /v1/channels/{id}/sponsors |
Recurring sponsors of one show |
arcmira.recommendations(entityId, { kind?, channelId?, after?, before?, limit?, cursor? }) |
GET /v1/recommendations?entity_id= |
Who recommends one entity, sponsored or organic, with the quote |
arcmira.episodes(channelId, { limit?, after?, before? }) |
GET /v1/channels/{id}/videos |
Newest indexed episodes, with the video_id the others take |
arcmira.transcript(videoIdOrUrl, { quality?, language?, timestamps?, start?, end? }) |
GET /v1/transcripts/{video_id}, read again at Retry-After while a Premium transcription is pending |
The transcript of one video, captions or Premium, whole or a window |
arcmira.occurrences({ channelIds?, entityIds?, videoIds?, types?, mode?, after?, before?, limit? }) |
GET /v1/mentions/counts |
What shows talk about, what they share, what one episode mentions |
arcmira.quote(videoIdOrUrl) |
GET /v1/transcripts/{video_id}/quote |
A price check, not a spoken quo |