Back to Browse

Arcmira MCP Server

Developer ToolsLow Risk10.0MCP RegistryRemote
Free

Server data from the Official MCP Registry

Search indexed YouTube and podcast transcripts. Full transcripts, mentions, momentum, and sponsors.

About

Search indexed YouTube and podcast transcripts. Full transcripts, mentions, momentum, and sponsors.

Remote endpoints: streamable-http: https://mcp.arcmira.com/mcp

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (2 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.

Endpoint verified · Requires authentication · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

How to Connect

Remote Plugin

No local installation needed. Your AI client connects to the remote endpoint directly.

Add this to your MCP configuration to connect:

{
  "mcpServers": {
    "io-github-arcmira-arcmira": {
      "url": "https://mcp.arcmira.com/mcp"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Arcmira MCP: search YouTube and podcast transcripts from Claude, Cursor, ChatGPT, and Codex

Arcmira is an SF-based AI company and the search engine for the spoken web.

The official Arcmira MCP server. Nine read-only tools over indexed YouTube and podcast transcripts: the full transcript of one video, the newest episodes of a show, what a show said, who was mentioned where, momentum, sponsors, and coverage. One remote URL, sign in through your host or send an account key.

It is a stateless facade over the public HTTP API at https://api.arcmira.com/v1; every gate the API raises is forwarded untouched with the link that lifts it.

Connect

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 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/docs/mcp.

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 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.

Tools

ToolUse it forFronts
resolve_entitiesTurn a name, @handle, YouTube URL, or UC id into typed ent_ rowsGET /v1/entities/search
search_transcriptsShort spoken slices for one topic, with watch links and datesGET /v1/transcripts/search
list_mentionsHas X mentioned Y yet, first seen, last seenGET /v1/mentions
entity_momentumMentions in the last 7 and 30 days against the prior 30, with a verdictGET /v1/entities/{id}/momentum
count_occurrencesWhat a set of shows talks about, and what they share; videoIds scopes it to one episodeGET /v1/mentions/counts
list_episodesThe newest indexed episodes of one channel, with the video_id the other tools takeGET /v1/channels/{id}/videos
list_sponsorsRecurring sponsors of a channel from the ad-read rollupGET /v1/channels/{id}/sponsors
index_statusWhat the index holds for a channel, or one transcription jobGET /v1/channels/{id}/coverage, GET /v1/transcriptions/{id}
get_transcriptFull transcript of one video from its URL or id, as text with [start] on every lineGET /v1/transcripts/{video_id}, GET /v1/videos/{video_id}/captions

Every tool declares readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false. Every result carries as_of where a date applies and a one-sentence note. Seven of the tools return the JSON body in both the content block and structuredContent. get_transcript returns the transcript itself as text in the content block, and structuredContent carries the metadata without the lines, so a long transcript crosses the wire once.

Good first calls: TBPN is channel UC-DRzaGnL_vtBUpCFH5M0tg, Moment of Truth is UClWkDGXEzsh77GAhs90wpXw, Ramp is ent_14.

Gates

A gate is an MCP tool result with isError: true whose content is the API's error envelope:

{
  "error": {
    "type": "permission_error",
    "code": "filter_requires_paid",
    "message": "The source filter needs Hobby.",
    "param": "source",
    "gate": "plan",
    "unlock": { "tier": "hobby", "url": "https://arcmira.com/pricing?src=mcp-tool", "offer": null },
    "doc_url": "https://arcmira.com/docs/errors#filter_requires_paid",
    "request_id": "req_..."
  }
}

Switch on error.code, relay error.unlock.url to the human, and honor retry_after_seconds on rate_limited. A 200 that withheld something (Premium transcript text, the paid-versus-organic split, sponsors past the free slice) is a normal result carrying the same body under access. The full catalog is at https://arcmira.com/docs/errors.

Every result, gates included, carries the key's budget after the call under _meta["arcmira.com/rate_limit"] as { "limit": 20, "remaining": 17, "reset": 1788819360 }, read from the API's RateLimit headers. reset is Unix seconds at the next window. Hosts do not show _meta; a client that watches its spend reads it there.

Every result also carries _meta["arcmira.com/build"]: server (this server's version), deploy (its Worker deploy id), api (the deploy id of the API build that answered, from the X-Arcmira-Build response header), and client (the host's name and version from its initialize handshake, which the server forwards to the API as x-arcmira-client). A transcript a host keeps can be joined to the exact code that produced it.

Develop

pnpm install
pnpm dev            # wrangler dev on :8790, API base from .dev.vars
pnpm test           # node:test
pnpm typecheck
pnpm manifest:check # every tool call matches the live OpenAPI document
ARCMIRA_KEY=arc_sk_... node --experimental-strip-types scripts/smoke.ts http://localhost:8790/mcp
ARCMIRA_KEY=arc_sk_... node --experimental-strip-types scripts/measure-transcript-bytes.ts <video-id> http://localhost:8790/mcp

The tool descriptions are loaded context and are the steering surface. They are maintained in Arcmira's manifest spec first and copied here verbatim; revise there before here.

Copyright Arcmira. All rights reserved. See LICENSE.

Reviews

No reviews yet

Be the first to review this server!