AVCLabs Media MCP

O MCP da AVCLabs integra upscaling de vídeo com IA, aprimoramento de qualidade e segmentação de imagem SAM3 em fluxos de trabalho MCP. Ele melhora vídeos de baixa resolução, limpa gravações com ruído e extrai objetos-alvo por meio de prompts de texto.

Documentação

media-mcp (Node.js)

Atualização de implantação (2026-09-06): o código-fonte SAM3 e os scripts de release agora são mantidos em sam3-http-server, com raiz em /opt/ai/sam3. O candidato a head do schema da API é 20260906_0007. O bootstrap de produção do SAM3 e o E2E de nove ferramentas continuam pendentes. Consulte o rollout de quatro projetos.

Inglês | 中文

npm version Node.js >=18 License: MIT

Um serviço de aprimoramento de vídeo, aprimoramento/colorização/remoção de ruído de imagem e segmentação de imagem baseado no protocolo MCP, atuando como um Cliente-Servidor MCP para interagir com Servidores HTTP de backend.

Status do release (2026-09-06): o npm latest é 0.2.1; esse artefato publicado contém 5 ferramentas (3 de vídeo + 2 SAM3) e seus metadados de runtime informam incorretamente 0.3.0. Este repositório é o candidato não publicado 0.3.0, que corrige a consistência de versão e adiciona 4 ferramentas de imagem, além de uma substituição opcional de IMAGE_API_BASE_URL. Imagem e vídeo compartilham o mesmo servidor HTTP público e a URL base /enhance; o backend candidato mantém a concorrência de preparação, filas Redis, workers e concorrência de processamento separados. As rotas de imagem agora existem no código candidato, mas não estão implantadas nem verificadas por IA real/TOS, portanto as ferramentas de imagem abaixo não são uma capacidade npm de produção até que todas as 9 ferramentas passem nos testes de fumaça e 0.3.0 seja publicado.

Recursos

Fornece as seguintes Ferramentas MCP:

Aprimoramento de Vídeo

  • create_task - Criar uma tarefa de aprimoramento de vídeo (suporta upload por URL ou arquivo local)
  • get_task_status - Consultar o status da tarefa
  • enhance_video_sync - Aprimorar vídeo de forma síncrona (espera bloqueante, truncada em ~50s por padrão)

Aprimoramento de Imagem (candidato 0.3.0 não publicado)

  • enhance_image_sync - Aprimorar a qualidade da imagem e otimizar rostos (suporta upload por URL ou arquivo local)
  • colorize_image_sync - Colorizar fotos em preto e branco (suporta upload por URL ou arquivo local)
  • denoise_image_sync - Remover ruído de imagens (suporta upload por URL ou arquivo local)
  • get_image_task_status - Consultar o status da tarefa de imagem (para polling após timeout síncrono)

Segmentação de Imagem (SAM3)

  • sam3_predict - Segmentação de imagem SAM3 (suporta caminho local, URL ou imagem Base64)
  • get_sam3_task_status - Consultar o status da tarefa SAM3 (para polling após timeout síncrono)

Pré-requisitos

  • Node.js >= 18 (verifique: node --version)
  • Chave de API (necessária para autenticação)

Instalação Preguiçosa (Recomendada)

Se o seu Agente de IA tiver um caminho de configuração MCP conhecido, basta copiar a linha abaixo e enviá-la para a sua IA:

Install the npm package @avclabs.ai/media-mcp as an MCP server. My API Key is: sk-xxxxxxxx.

A IA irá automaticamente:

  1. Detectar seu cliente MCP
  2. Encontrar o caminho do arquivo de configuração
  3. Escrever a configuração correta
  4. Solicitar que você reinicie o cliente

Instalação Manual

Nenhuma instalação necessária. Use npx diretamente na configuração do seu cliente MCP.

1. Claude Code (CLI)

Execute no Claude Code:

/mcp

Verifique a saída para a seção "User MCPs" para encontrar o caminho do arquivo de configuração e, em seguida, edite esse arquivo.

Caminhos comuns (se /mcp não estiver disponível):

  • Windows: %USERPROFILE%\.claude.json
  • macOS: ~/.claude.json
  • Linux: ~/.claude.json
  • Legado/Alternativo: ~/.claude/mcp.json

Cole isto (substitua your-api-key):

{
  "mcpServers": {
    "video-enhancement": {
      "command": "npx",
      "args": ["-y", "@avclabs.ai/media-mcp@latest"],
      "env": {
        "API_KEY": "your-api-key"
      }
    }
  }
}

Salve e execute /mcp para verificar se foi carregado.

2. Cursor

Vá para Configurações > Ferramentas e MCPs > Adicionar Novo Servidor MCP:

  • Nome: video-enhancement
  • Tipo: command
  • Comando:
    env API_KEY=your-api-key npx -y @avclabs.ai/media-mcp@latest
    

Ou edite ~/.cursor/mcp.json:

{
  "mcpServers": {
    "video-enhancement": {
      "command": "npx",
      "args": ["-y", "@avclabs.ai/media-mcp@latest"],
      "env": {
        "API_KEY": "your-api-key"
      }
    }
  }
}

Verificar Instalação

Após reiniciar o cliente, verifique se as ferramentas estão disponíveis:

  1. Ou pergunte: "Quais ferramentas você tem disponíveis?"
  2. Com o npm latest=0.2.1 atual, você deve ver create_task, get_task_status, enhance_video_sync, sam3_predict e get_sam3_task_status.
  3. Após 0.3.0 ser publicado, você também deve ver enhance_image_sync, colorize_image_sync, denoise_image_sync e get_image_task_status.

Opções de Configuração

VariávelObrigatóriaPadrãoDescrição
API_KEYSim-Chave de autenticação da API (compartilhada pelos serviços de vídeo, imagem e SAM3)
HTTP_API_BASE_URLNãohttps://mcp.avc.ai/enhanceEndpoint do serviço HTTP compartilhado de vídeo e imagem
IMAGE_API_BASE_URLNãoIgual a HTTP_API_BASE_URLSubstituição opcional do endpoint de imagem; omita para o servidor de produção compartilhado
SAM3_API_BASE_URLNãohttps://mcp.avc.ai/samEndpoint do serviço SAM3
SAM3_POLL_INTERVALNão2000Intervalo de polling do SAM3 (milissegundos)
SAM3_POLL_MAX_ATTEMPTSNão25Número máximo de tentativas de polling do SAM3

IMAGE_API_BASE_URL é implementado pelo candidato não publicado 0.3.0 como uma substituição opcional. A produção usa o serviço compartilhado /enhance, portanto normalmente deve ser omitido; o candidato então resolve chamadas de imagem e vídeo para a mesma URL base.

Endpoint Personalizado (candidato 0.3.0)

{
  "env": {
    "HTTP_API_BASE_URL": "https://your-media-endpoint.com",
    "API_KEY": "your-api-key",
    "SAM3_API_BASE_URL": "https://your-sam3-endpoint.com"
  }
}

Ou via argumentos de CLI:

npx -y @avclabs.ai/media-mcp@0.3.0 --base-url https://your-media-endpoint.com --api-key your-api-key --sam3-base-url https://your-sam3-endpoint.com

Execute este comando somente após 0.3.0 ser publicado. O --image-base-url opcional permanece disponível apenas para implantações que dividem intencionalmente o endpoint público de imagem; o npm 0.2.1 não o suporta.

Fluxo de Trabalho Recomendado

Este projeto fornece modos síncrono e assíncrono.

Como os Agentes MCP normalmente impõem um timeout de ~60 segundos por chamada de ferramenta, tarefas com tempos de processamento mais longos (aprimoramento de vídeo) são fortemente recomendadas para usar o modo assíncrono:

Modo Assíncrono (Recomendado)

Aprimoramento de Vídeo:

  1. Chame create_task para criar uma tarefa → obtenha imediatamente task_id
  2. Aguarde alguns segundos e chame get_task_status para consultar o status
  3. Se status for processing, continue aguardando e repita o passo 2
  4. Se status for completed, a tarefa está concluída e o resultado contém video_url
  5. Se status for failed, a tarefa falhou e o resultado contém error_message

Modo Síncrono (Cenários Simples)

Aprimoramento de Vídeo:

  • Chame enhance_video_sync → o servidor faz polling internamente
  • Padrão de espera máxima de 50 segundos
  • Se concluído em 50 segundos, retorna o resultado diretamente
  • Se não concluído em 50 segundos, retorna task_id e instruções para o Agente alternar para get_task_status

Segmentação de Imagem (SAM3):

  • Chame sam3_predict → o servidor faz polling internamente
  • Padrão de espera máxima de 50 segundos (25 tentativas × intervalo de polling de 2 segundos)
  • Se concluído em 50 segundos, retorna o resultado da segmentação diretamente
  • Se não concluído em 50 segundos, retorna um aviso de truncamento indicando que a tarefa ainda está em processamento

Exemplos de Uso

Após a configuração, pergunte naturalmente ao seu agente de IA:

"Aprimore este vídeo para 1080p: https://example.com/video.mp4"

"Melhore a qualidade de /Users/me/Desktop/video.mp4 para 2k"

"Aprimore esta imagem: https://example.com/photo.jpg"

"Colorize esta foto em preto e branco: /Users/me/Desktop/old_photo.png"

"Remova o ruído desta imagem: C:\Users\xxx\noisy.jpg"

"Analise esta imagem e encontre todos os objetos: C:\Users\xxx\photo.png"

"Use SAM3 para segmentar esta imagem, prompt: 'encontre todos os carros'"

O agente escolherá automaticamente ferramentas síncronas ou assíncronas com base na complexidade da tarefa.

Ferramentas Fornecidas

Aprimoramento de Vídeo

create_task

Cria uma tarefa assíncrona de aprimoramento de vídeo.

Recomendado para a maioria dos casos de uso. Ideal para vídeos mais longos (mais de 10 segundos) para evitar timeouts e bloqueio da conexão.

ParâmetroTipoObrigatórioPadrãoDescrição
video_sourcestringSim-URL do vídeo ou caminho de arquivo local (a URL deve ser publicamente acessível; links que exigem login ou assinaturas não são suportados)
typestringNãourlurl ou local
resolutionstringNão720p480p, 540p, 720p, 1080p, 2k

Retorna:

{
  "success": true,
  "task_id": "xxx",
  "status": "processing"
}

get_task_status

Consulta o status da tarefa de aprimoramento de vídeo.

O campo status retornado pode ser: processing, completed ou failed. Se status for processing, você precisa aguardar alguns segundos e chamar esta ferramenta novamente.

ParâmetroTipoObrigatório
task_idstringSim

Retorna:

{
  "success": true,
  "task_id": "xxx",
  "status": "completed",
  "progress": 100,
  "video_url": "https://...",
  "message": "Task is still processing, please check again later"
}

O campo message só aparece quando status é processing, solicitando que o Agente continue aguardando.

enhance_video_sync

Aprimora vídeo de forma síncrona (bloqueia até a conclusão).

Melhor para vídeos curtos (tempo de processamento estimado < 1 minuto). Se a tarefa não for concluída em 50 segundos, a ferramenta retorna antecipadamente com um task_id, e você precisa usar get_task_status para continuar consultando.

ParâmetroTipoObrigatórioPadrãoDescrição
video_sourcestringSim-URL do vídeo ou caminho de arquivo local
typestringNãourlurl ou local
resolutionstringNão720pResolução alvo
poll_intervalnumberNão5Intervalo de polling (segundos)
timeoutnumberNão50Timeout de espera síncrona (segundos), retorna antecipadamente quando excedido

Exemplo de retorno truncado (não concluído em 50s):

{
  "success": true,
  "status": "processing",
  "task_id": "xxx",
  "message": "Task is still processing (waited 50 seconds). Please use get_task_status to continue polling.",
  "note": "The synchronous wait for this long-running task has been truncated. Switch to get_task_status polling."
}

Aprimoramento de Imagem

Três ferramentas de processamento de imagem são fornecidas, cada uma voltada para um caso de uso específico:

FerramentaFunçãoCaso de Uso
enhance_image_syncAprimoramento de qualidade de imagem e otimização de rostosFotos borradas, de baixa resolução ou degradadas
colorize_image_syncColorização de fotos em preto e brancoRestauração de fotos antigas em P&B com cores realistas
denoise_image_syncRemoção de ruído de imagemFotos com ruído/grão tiradas em pouca luz

Todas as três ferramentas compartilham os mesmos parâmetros e padrão de comportamento. Elas são síncronas — a ferramenta bloqueia até que a imagem seja processada ou o timeout seja atingido.

Formatos de imagem suportados: PNG, JPG, JPEG, BMP, WebP, etc.

Dois métodos de upload:

  1. Upload por URL: forneça uma URL de imagem publicamente acessível (type: "url")
  2. Upload local: forneça um caminho de arquivo local; o Servidor MCP faz upload automático para o armazenamento de objetos TOS (type: "local", tamanho máximo do arquivo: 100MB)

enhance_image_sync

Aprimora uma imagem de forma síncrona para melhorar a qualidade e otimizar rostos.

A ferramenta cria internamente uma tarefa e faz polling do resultado. Se o processamento for concluído dentro do timeout (padrão 50s), o resultado é retornado diretamente. Se não, a ferramenta retorna antecipadamente com um task_id — use get_image_task_status para continuar o polling.

ParâmetroTipoObrigatórioPadrãoDescrição
image_sourcestringSim-URL da imagem ou caminho de arquivo local (a URL deve ser publicamente acessível; links que exigem login ou assinaturas não são suportados)
typestringNãourlurl ou local
scalenumberNão2Multiplicador de escala de aprimoramento (ex.: 2 para 2x, 4 para upscaling de 4x)
poll_intervalnumberNão5Intervalo de polling em segundos
timeoutnumberNão50Timeout de espera síncrona em segundos, retorna antecipadamente quando excedido

Retorno de conclusão normal:

{
  "success": true,
  "task_id": "xxx",
  "status": "completed",
  "progress": 100,
  "image_url": "https://..."
}

Retorno truncado (não concluído em 50s):

{
  "success": true,
  "status": "processing",
  "task_id": "xxx",
  "message": "Task is still processing (waited 50 seconds). Please use get_image_task_status to continue polling.",
  "note": "The synchronous wait for this long-running task has been truncated. Switch to get_image_task_status polling."
}

colorize_image_sync

Coloriza uma foto em preto e branco de forma síncrona com IA.

Melhor para fotos antigas em preto e branco. A IA adicionará cores realistas à imagem. Suporta os mesmos parâmetros e formato de retorno que enhance_image_sync. | Parâmetro | Tipo | Obrigatório | Padrão | Descrição | |---|---|---|---|---| | image_source | string | Sim | - | URL da imagem ou caminho de arquivo local (a URL deve ser publicamente acessível, links que exigem login ou assinaturas não são suportados) | | type | string | Não | url | url ou local | | poll_interval | number | Não | 5 | Intervalo de polling em segundos | | timeout | number | Não | 50 | Tempo limite de espera de sincronização em segundos, retorna antecipadamente quando excedido |

Retorna: Mesmo formato que enhance_image_sync.

denoise_image_sync

Remove ruído de uma imagem de forma síncrona.

Ideal para fotos granuladas/com ruído tiradas em condições de pouca luz ou com configurações ISO altas. Suporta os mesmos parâmetros e formato de retorno que enhance_image_sync.

ParâmetroTipoObrigatórioPadrãoDescrição
image_sourcestringSim-URL da imagem ou caminho de arquivo local (a URL deve ser publicamente acessível, links que exigem login ou assinaturas não são suportados)
typestringNãourlurl ou local
poll_intervalnumberNão5Intervalo de polling em segundos
timeoutnumberNão50Tempo limite de espera de sincronização em segundos, retorna antecipadamente quando excedido

Retorna: Mesmo formato que enhance_image_sync.

get_image_task_status

Consulta o status da tarefa de processamento de imagem. Usado para fazer polling dos resultados quando uma ferramenta síncrona expira.

O campo status retornado pode ser: processing, completed ou failed. Se status for processing, aguarde alguns segundos e chame esta ferramenta novamente.

ParâmetroTipoObrigatório
task_idstringSim

Retorna:

{
  "success": true,
  "task_id": "xxx",
  "status": "completed",
  "progress": 100,
  "image_url": "https://...",
  "message": "Task is still processing, please check again later"
}

O campo message só aparece quando status é processing, solicitando que o Agente continue aguardando.

Fluxo de Trabalho Recomendado para Ferramentas de Imagem

  1. Para a maioria das imagens: Chame enhance_image_sync / colorize_image_sync / denoise_image_sync diretamente — a ferramenta lida com tudo e retorna o resultado
  2. Se truncado: A ferramenta retorna um task_id, então use get_image_task_status para fazer polling até que status se torne completed ou failed
  3. Se falhou: Verifique o campo error_message para detalhes

Segmentação de Imagem (SAM3)

sam3_predict

Analisa uma imagem usando a API de segmentação SAM3 para gerar resultados de inferência (máscaras, caixas delimitadoras, pontuações).

Parâmetros:

Entrada de imagem (escolha um, deve fornecer exatamente um):

  • imagePath (string): Caminho absoluto de um arquivo de imagem local. Suporta formatos comuns (PNG, JPG, JPEG).

    • Exemplo: "C:\\Users\\xxx\\photo.png", "/home/user/images/cat.jpg"
    • Use quando: O usuário fornece explicitamente um caminho de arquivo local
  • imageUrl (string): URL publicamente acessível da imagem.

    • Exemplo: "https://example.com/photo.jpg"
    • Use quando: A imagem já está online e o usuário fornece um link
    • Nota: A URL deve ser publicamente acessível. Links que exigem login ou assinaturas não são suportados
  • imageBase64 (string): Dados de imagem codificados em base64.

    • Exemplo: "iVBORw0KGgoAAAANSUhEUgAA..."
    • Use quando: O usuário arrasta ou envia um anexo de imagem, e o Agente o codifica como base64
    • Nota: Imagens grandes produzirão strings base64 muito grandes, o que pode atrasar a transmissão

Outros parâmetros:

  • prompt (string, obrigatório): Prompt de texto em inglês especificando o objeto alvo a segmentar. Como o modelo SAM3 só aceita prompts em inglês, forneça uma descrição em inglês. Se o usuário fornecer texto em chinês ou outro idioma que não seja inglês, o Agente o traduzirá automaticamente antes de chamar a ferramenta.

Retorno de conclusão normal:

Após a inferência ser concluída, retorna uma string JSON contendo três campos:

  • masks: Array 2D. Cada elemento é uma máscara binária (valores 0 ou 1) com as mesmas dimensões da imagem de entrada, marcando a localização em nível de pixel dos objetos detectados. A i-ésima máscara corresponde à i-ésima instância de objeto detectada.

  • boxes: Array 2D. Cada elemento é uma caixa delimitadora no formato [x1, y1, x2, y2], representando a região retangular do objeto detectado. x1, y1 são as coordenadas do canto superior esquerdo; x2, y2 são as coordenadas do canto inferior direito.

    Sistema de coordenadas: O canto superior esquerdo da imagem é a origem (0, 0). O eixo x aumenta para a direita, e o eixo y aumenta para baixo, em pixels. Por exemplo, [120, 80, 300, 450] significa que a região começa a 120px da borda esquerda e 80px da borda superior, estendendo-se até 300px da esquerda e 450px do topo. Largura = x2 - x1 = 180px, Altura = y2 - y1 = 370px.

  • scores: Array 1D. Cada elemento é uma pontuação de confiança para o resultado de detecção correspondente, variando de 0 a 1. Pontuações mais altas indicam maior confiança do modelo.

Exemplo de resultado JSON:

{
  "masks": [
    [[0, 0, 1, ...], [0, 1, 1, ...], ...],
    [[0, 0, 0, ...], [0, 0, 1, ...], ...]
  ],
  "boxes": [
    [120, 80, 300, 450],
    [400, 200, 600, 500]
  ],
  "scores": [0.95, 0.87]
}

Exemplo de retorno truncado (não concluído em 50s):

{
  "success": true,
  "status": "processing",
  "task_id": "xxx",
  "message": "Task is still processing (waited about 50 seconds). Please retry later or record this task_id for manual follow-up.",
  "note": "The synchronous wait for this long-running task has been truncated."
}

get_sam3_task_status

Consulta o status da tarefa de segmentação SAM3. Usado para fazer polling dos resultados quando sam3_predict expira.

O campo status retornado pode ser: processing, completed ou failed. Se status for processing, aguarde alguns segundos e chame esta ferramenta novamente.

ParâmetroTipoObrigatório
task_idstringSim

Retorno concluído:

{
  "success": true,
  "task_id": "xxx",
  "status": "completed",
  "result_url": "https://..."
}

Retorno em processamento:

{
  "success": true,
  "task_id": "xxx",
  "status": "processing",
  "message": "Task is still processing, please check again later."
}

Retorno de falha:

{
  "success": false,
  "task_id": "xxx",
  "status": "failed",
  "error": "Task failed"
}

FAQ

O Agente relata timeout ao chamar ferramentas?

Este é o principal problema que este projeto aborda. Agentes MCP (como Claude, Cursor) normalmente impõem um timeout de ~60 segundos por chamada de ferramenta. Se o processamento da tarefa exceder esse limite, o Agente apresentará erro e desconectará.

Soluções:

  1. Prefira ferramentas assíncronas: Para aprimoramento de vídeo e outras tarefas demoradas, sempre use create_task + get_task_status. Essas ferramentas retornam instantaneamente em cada chamada e não acionarão timeouts.

  2. Mecanismo de truncamento de ferramentas síncronas: enhance_video_sync tem um limite interno de truncamento de 50 segundos. Se a tarefa não for concluída em 50 segundos, a ferramenta retorna proativamente um task_id e instrui o Agente a usar get_task_status para acompanhar.

  3. Mecanismo de truncamento SAM3: sam3_predict tem como padrão 25 tentativas de polling (~50 segundos). Se a tarefa não for concluída, retorna um aviso de truncamento indicando que a tarefa ainda está em processamento.

  4. Ajuste os parâmetros de polling do SAM3 (avançado): Se você está confiante de que as tarefas SAM3 são geralmente rápidas (por exemplo, menos de 10 segundos), você pode aumentar as tentativas de polling via variável de ambiente:

    SAM3_POLL_MAX_ATTEMPTS=60
    

    Mas garanta que o tempo total de espera não exceda o limite de timeout do seu Agente.

Anexo arrastado e solto diz que o arquivo não foi encontrado?

Esta é uma limitação conhecida do stdio MCP. Ao arrastar ou enviar um anexo pela interface do Agente, o caminho do arquivo geralmente não é passado automaticamente para o Servidor MCP.

Soluções:

  1. Forneça o caminho simultaneamente (recomendado): Após arrastar a imagem, adicione o caminho absoluto local na sua mensagem:

    "Por favor, analise esta imagem D:\\photos\\cat.jpg e encontre o gato"

  2. Aguarde a codificação automática: O Claude pode codificar automaticamente a imagem como base64. Se for bem-sucedido, nenhuma ação extra é necessária.

  3. Responda à consulta de caminho: Se o Claude perguntar pelo caminho da imagem, simplesmente responda com o caminho absoluto local.

Existe prioridade entre os três métodos de entrada?

Não há prioridade estrita. O Claude escolherá automaticamente o método mais apropriado com base no contexto da conversa:

  • Você forneceu um caminho local → usa imagePath
  • Você forneceu um link da web → usa imageUrl
  • Você arrastou um anexo sem caminho → tenta imageBase64

Quais formatos de imagem são suportados?

Formatos comuns: PNG, JPG, JPEG, BMP, WebP, etc. PNG ou JPG é recomendado.

E se o download da imagem por URL falhar?

Garanta que a URL seja publicamente acessível, sem exigir login, cookies ou assinaturas. Se a imagem estiver em um serviço que exige autenticação (por exemplo, Bucket S3 privado, hospedagem de imagem com login), baixe-a localmente primeiro e use imagePath.

E se a imagem base64 for muito grande?

Se a imagem for muito grande (por exemplo, resolução 4K), os dados codificados em base64 serão muito grandes e podem atrasar a transmissão. Sugestões:

  1. Use imagePath em vez disso
  2. Ou comprima a imagem antes de codificar

Notas de Upload de Arquivo

Quando type é "local":

  1. O arquivo é lido localmente pelo Servidor MCP
  2. Enviado diretamente para o armazenamento de objetos TOS via URL pré-assinada
  3. Tamanho máximo do arquivo: 100MB

Solução de Problemas

"command not found: npx"

Instale Node.js >= 18: https://nodejs.org/

"Error: --api-key argument or API_KEY environment variable is required"

Sua chave de API está ausente. Verifique novamente o env.API_KEY na sua configuração.

Servidor MCP mostra vermelho/erro no cliente

Verifique os logs:

  • Claude Desktop macOS: ~/Library/Logs/Claude/mcp*.log
  • Claude Desktop Windows: %APPDATA%\Claude\logs\mcp*.log
  • Cursor: Painel de saída > MCP

"TOS upload failed"

Geralmente é uma incompatibilidade de assinatura. Garanta que seu IMAGE_API_BASE_URL (ou seu fallback HTTP_API_BASE_URL) e API_KEY estejam corretos e ativos.

Instalação Global (Alternativa)

Se você preferir não usar npx toda vez:

npm install -g @avclabs.ai/media-mcp

Então use "command": "media-mcp" com "args": ["--api-key", "your-api-key"] na sua configuração.

Desenvolvimento e Lançamento

Este pacote roda localmente no cliente MCP e é lançado via npm; não é um daemon Node remoto. O media-mcp-api-http-server irmão está ativo como o /enhance compartilhado de vídeo/imagem/proprietário de conta, embora seu lançamento de produção atual só implemente rotas de vídeo; o código candidato adiciona as rotas de imagem, outboxes de preparação/despacho duráveis, idempotência de crédito em nível de tarefa e filas separadas de imagem/vídeo. O Portal está ativo e o SAM3 permanece uma dependência de produção externa. E2E real de IA de imagem/TOS, implantação do backend de produção e saúde JSON do SAM3 ainda estão pendentes, então 0.3.0 não deve ser publicado ainda. Antes de publicar, execute:

npm ci
npm run release:verify

Veja o guia de lançamento para sincronização de versão, ordem de publicação, testes de fumaça e a relação com a implantação do portal/backend.

Licença

Licença MIT - Veja o arquivo LICENSE para detalhes