Arcmira

Pesquise transcrições do YouTube e de podcasts: menções, momentum, patrocinadores, recomendações orgânicas e transcrições completas.

Servidor MCP hospedado

npx add-mcp 'https://mcp.arcmira.com/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

Arcmira: Pesquisa de Transcrições do YouTube

Dê à sua IA a capacidade de descobrir quem disse o quê com timestamps, identificar o que está sendo discutido em vídeos e transmissões ao vivo, e distinguir recomendações orgânicas de leituras de anúncios patrocinados.

Conecte sua IA

Copie isto no seu agente de codificação:

Fetch and execute the appropriate instructions to set me up for Arcmira from https://arcmira.com/agent-setup/prompt.md

Para Claude, ChatGPT, Cursor e outros clientes MCP, use https://mcp.arcmira.com/mcp e faça login no Arcmira. Configuração por host · Documentação · Site · Plugin e habilidades

Experimente: "Quais marcas patrocinam tanto o TBPN quanto o All-In Podcast?" ou "Encontre o que Sam Altman disse sobre agentes de IA, com links com timestamp."

Os resultados cobrem vídeos indexados. A identificação de falantes e as classificações patrocinado-versus-orgânico podem estar incompletas ou incorretas; verifique a fonte vinculada. Limites do plano se aplicam.

Compartilhar feedback do plugin · Atualizar habilidades instaladas

Conectar

Duas formas de entrada. Hosts que falam o spec de autorização MCP fazem seu login; todo o resto envia uma chave.

Entre pelo host. Adicione https://mcp.arcmira.com/mcp sem chave. O servidor responde 401 com um desafio OAuth, o host se registra contra api.arcmira.com, abre arcmira.com para login e consentimento, e conecta com um token que carrega as permissões que você permitiu. Tokens se renovam sozinhos; revogue um host em Configurações, Aplicativos conectados.

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 e Cursor: adicione a URL como um conector personalizado ou servidor MCP sem cabeçalhos e siga o prompt de login. Passos por host estão em https://arcmira.com/agent-setup.

Envie uma chave. Qualquer cliente que não possa fazer o login envia um token bearer, e o servidor pula OAuth.

Uma chave de conta (arc_sk_...) vem de https://arcmira.com. Plano e escopos decidem o que cada ferramenta retorna. Sem conta e sem navegador, cadastre-se pela API. Envie um endereço de e-mail, depois envie o código de seis dígitos dessa caixa de entrada de volta.

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_..." }
    }
  }
}

O corpo do 401 carrega essa chamada de cadastro sob error.data.unlock.action, então um agente que não pode entrar pode criar uma conta e reconectar. Descoberta: https://mcp.arcmira.com/.well-known/oauth-protected-resource nomeia o servidor de autorização; https://api.arcmira.com/.well-known/oauth-authorization-server lista seus endpoints.

Ferramentas

FerramentaEntradaRetorna
describetopic?A referência do cliente arcmira: a regra de id, qual método responde qual pergunta, dez métodos com argumentos e campos de retorno, oito programas de exemplo trabalhados, as peculiaridades que custam respostas, códigos de erro e links de documentação. Cerca de 2.800 tokens; topic reduz para um método e seus exemplos. Nunca cobra.
executecodeO que o programa imprimiu mais seu valor de retorno. O código é o corpo de uma função assíncrona com arcmira e ArcmiraError no escopo. Limites: 30 segundos, 40 chamadas de API, 20.000 caracteres de saída.

Ambas as ferramentas declaram readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false. Duas ferramentas custam cerca de 1.500 tokens de definições por conversa; as dez ferramentas que elas substituem custam 8.163.

Os métodos do cliente são os comandos da CLI do arcmira, com os mesmos nomes e as flags como opções, então o MCP, a CLI e o SDK ensinam um vocabulário:

MétodoFrenteUse para
arcmira.resolve(q, { type?, context?, limit? })GET /v1/entities/resolveUm nome, @handle, URL ou id UC para uma de três respostas: best, suggested (com reason e evidence), ou ask com opções
arcmira.search({ query, channelIds?, about?, speakerIds?, kind?, entityIds?, after?, before?, source?, limit? })GET /v1/transcripts/searchFatias faladas para um tópico, ou sobre uma entidade, ou faladas por uma pessoa, com links de visualização e datas
arcmira.mentions({ entityId, channelId?, after?, before?, limit?, cursor? })GET /v1/mentionsX mencionou Y, primeira vez visto, última vez visto
arcmira.momentum(entityId)GET /v1/entities/{id}/momentumÚltimos 30 dias contra os 30 anteriores, com um veredito
arcmira.sponsors(channelId, { minAdReads?, status?, limit? })GET /v1/channels/{id}/sponsorsPatrocinadores recorrentes de um programa
arcmira.recommendations(entityId, { kind?, channelId?, after?, before?, limit?, cursor? })GET /v1/entities/{id}/recommendationsQuem recomenda uma entidade, patrocinado ou orgânico, com a citação
arcmira.episodes(channelId, { limit?, after?, before? })GET /v1/channels/{id}/videosEpisódios indexados mais recentes, com o video_id que os outros levam
arcmira.transcript(videoIdOrUrl, { quality?, language?, timestamps?, start?, end? })GET /v1/transcripts/{video_id}A transcrição de um vídeo, legendas ou Premium, inteira ou uma janela
arcmira.occurrences({ channelIds?, entityIds?, videoIds?, types?, mode?, after?, before?, limit? })GET /v1/mentions/countsSobre o que os programas falam, o que compartilham, o que um episódio menciona
arcmira.status({ channelId?, jobId? })GET /v1/channels/{id}/coverage, GET /v1/transcriptions/{id}, GET /v1/meCobertura e a data do índice, um trabalho de transcrição, ou a chave

arcmira.today() e arcmira.daysAgo(n) dão datas ISO do relógio do servidor para janelas de data.

Filtros aceitam apenas ids verbatim. Um nome onde um id pertence lança id_required antes de qualquer chamada de rede, e a mensagem nomeia a correção. Resolva primeiro, depois consulte. resolve responde best (o nome significa uma linha), suggested (uma linha se destaca; diga que você assumiu e por quê), ou ask (várias se encaixam; deixe o usuário escolher):

const r = await arcmira.resolve("Linear");
const e = r.best ?? r.suggested;
if (!e) return { ask: r.ask };
const m = await arcmira.momentum(e.id);
return { entity: e.name, id: e.id, assumed: Boolean(r.suggested), why: r.suggested?.evidence ?? null, verdict: m.verdict, last30: m.volume.mentions_30d, prior30: m.volume.mentions_prior_30d, as_of: m.as_of };

Exemplos de prompts uma vez que o servidor está conectado:

  • Quais marcas patrocinam tanto o TBPN quanto o All-In Podcast?
  • Quão quente está o Linear, a ferramenta de gerenciamento de projetos, na web falada agora?
  • Encontre um momento no TBPN dos últimos 90 dias onde alguém fala sobre stablecoins, e cite-o.
  • Quem está falando no primeiro minuto do último episódio do TBPN, de acordo com a transcrição Premium?
  • No TBPN, quantos episódios mencionaram Cursor em julho versus agosto?

Bons primeiros ids: TBPN é o canal UC-DRzaGnL_vtBUpCFH5M0tg, All-In Podcast é UCESLZhusAkFfsNsApnjF_Cg, Ramp é ent_14.

A sandbox

execute executa o programa em um isolado Dynamic Worker fresco. A única rede do isolado é o proxy de saída do pai, que recusa qualquer coisa que não seja GET https://api.arcmira.com/v1/* com outbound_refused e adiciona a credencial do chamador ao que encaminha, então o programa nunca segura a chave. O isolado recebe 5 segundos de CPU, execute espera 30 segundos de tempo de parede, o cliente para em 40 chamadas de API com call_budget, e a saída renderizada é cortada em 20.000 caracteres com uma linha que diz como encolhê-la. Um erro de sintaxe volta como syntax_error com a regra do corpo da função; um erro lançado como program_error com sua mensagem.

O resultado é um bloco de texto: as linhas console.log, depois RETURN: <json> ou ERROR: <json>. Não há structuredContent, então todo host lê a mesma coisa. _meta["arcmira.com/execution"] carrega a contagem de chamadas e a build da API.

Gates

Um gate dentro de um programa lança um ArcmiraError com os campos de erro da API, e execute o retorna como ERROR com isError: true:

ERROR: {"name":"ArcmiraError","code":"recommendations_not_enabled","message":"Sponsor recommendations require Pro.","unlock":{"tier":"pro","url":"https://arcmira.com/pricing?src=mcp-tool","offer":null},"gate":"plan","status":403,...}

Ligue code, retransmita unlock.url ao humano, e honre retry_after_seconds em rate_limited. Um 200 que reteve algo (texto de transcrição Premium, a divisão pago-versus-orgânico, patrocinadores além da fatia gratuita) é um resultado normal carregando o mesmo corpo sob access. O catálogo completo está em https://arcmira.com/docs/errors.

Todo resultado, gates incluídos, carrega o orçamento da chave após a chamada sob _meta["arcmira.com/rate_limit"] como { "limit": 20, "remaining": 17, "reset": 1788819360 }, lido dos cabeçalhos RateLimit da API, e _meta["arcmira.com/build"]: server, deploy, api (a build da API que respondeu) e client (o nome do host do seu handshake, encaminhado à API como x-arcmira-client).

Atualizando da 0.6.0

As dez ferramentas (resolve_entities, search_transcripts, list_mentions, entity_momentum, count_occurrences, list_episodes, list_sponsors, list_recommendations, index_status, get_transcript) sumiram de tools/list. Um host que armazenou em cache a lista antiga e chama uma recebe tool_retired, que nomeia describe. Cada ferramenta antiga é um método do cliente: resolve_entities é arcmira.resolve, search_transcripts é arcmira.search, list_mentions é arcmira.mentions, entity_momentum é arcmira.momentum, count_occurrences é arcmira.occurrences, list_episodes é arcmira.episodes, list_sponsors é arcmira.sponsors, list_recommendations é arcmira.recommendations, index_status é arcmira.status, get_transcript é arcmira.transcript. A abreviação recency virou arcmira.daysAgo(n).

Plugin

plugins/arcmira empacota a URL do MCP e seis habilidades para Claude Code, Codex, Cursor, hosts de Agent Plugins e Gemini CLI:

HabilidadePara
arcmiraA referência do cliente: a regra de id, todo método, programas trabalhados
sponsor-researchQuem patrocina um programa, ou quais programas uma marca patrocina, com que frequência, desde quando
company-watchO que os programas disseram sobre uma empresa esta semana: programas, contagens, momentum, citações
find-quotesCitações faladas exatas com falante, data, um link com timestamp, início e fim do clipe
person-researchPreparação de entrevista ou reunião: aparições, as próprias palavras de uma pessoa, quem discute sobre ela
compare-showsDois programas lado a lado: tamanho, tópicos, sobreposição, patrocinadores compartilhados

Toda habilidade começa de nomes, nunca de ids: cada programa resolve o nome, retorna opções ask quando várias entidades se encaixam e nenhuma se destaca, diz quando assumiu uma, e nomeia a entidade que usou. As habilidades são geradas de src/reference.ts e src/skills.ts por scripts/build-skill.ts; CI falha quando um arquivo deriva ou um programa chama um método que a referência não documenta, e pnpm examples:check executa todo programa contra produção.

claude plugin marketplace add arcmira/mcp
claude plugin install arcmira@arcmira

Mantenha-se atualizado

Arcmira envia mudanças semanalmente. Mantenha a atualização automática ligada.

  • O servidor MCP não precisa de nada. Ele é remoto: hosts buscam suas ferramentas e instruções na conexão, e describe retorna a referência do servidor em toda chamada, abrindo com uma linha de versão. O servidor MCP sozinho está sempre atualizado.

  • Plugin Claude Code. A atualização automática está desligada por padrão para um marketplace de terceiros. Ligue-a: execute /plugin, abra Marketplaces, escolha arcmira, e selecione Enable auto-update. Ou defina em ~/.claude/settings.json:

    { "extraKnownMarketplaces": { "arcmira": { "source": { "source": "github", "repo": "arcmira/mcp" }, "autoUpdate": true } } }
    

    Atualizar agora: claude plugin update arcmira@arcmira.

  • Plugin Codex. codex plugin marketplace upgrade arcmira, depois reinicie o Codex.

  • Habilidades instaladas com npx skills add arcmira/mcp. npx skills update.

Cada lançamento aumenta a versão em todo manifesto de plugin (um teste impõe isso), porque Claude Code só atualiza um plugin cuja versão mudou.

Desenvolver

pnpm install
pnpm dev            # wrangler dev on :8790 with a local Worker Loader
pnpm test           # node:test, sandbox programs run under a fake loader
pnpm typecheck
pnpm manifest:check # every client call matches the live OpenAPI document
pnpm skill:check    # every plugins/arcmira/skills/*/SKILL.md matches src/reference.ts and src/skills.ts
ARCMIRA_KEY=arc_sk_... pnpm examples:check   # every worked program and task-skill program runs against production
pnpm sandbox:check  # src/sandbox/client-source.ts matches src/sandbox/client.js
ARCMIRA_KEY=arc_sk_... node --experimental-strip-types scripts/smoke.ts http://localhost:8790/mcp

src/reference.ts é a superfície de direção: o texto describe, as instruções do servidor e a habilidade do plugin vêm todos dela.

Copyright Arcmira. Todos os direitos reservados para o servidor (veja LICENSE); plugins/arcmira é Apache-2.0.