opn-mcp

Encurte links, leia análises de cliques e gerencie links curtos do opn.onl (hospedados ou auto-hospedados) a partir do seu assistente de IA.

Documentação

opn-mcp

opn-mcp MCP server

Um servidor MCP para opn.onl — o encurtador de URLs open-source e auto-hospedável. Ele permite que assistentes de IA (Claude Desktop, Cursor, etc.) encurtem links, leiam análises, gerem códigos QR e gerenciem links em linguagem natural.

Funciona com o serviço hospedado ou com sua própria instância auto-hospedada.

Configuração

1. Obtenha uma chave de API

Na sua instância opn.onl, vá em Configurações → Chaves de API, crie uma chave e copie-a (ela começa com opn_ e é exibida apenas uma vez).

2. Adicione o servidor ao seu cliente MCP

Claude Desktop — edite claude_desktop_config.json (~/Library/Application Support/Claude/ no macOS, %APPDATA%\Claude\ no Windows):

{
  "mcpServers": {
    "opn": {
      "command": "npx",
      "args": ["-y", "opn-mcp"],
      "env": {
        "OPN_API_KEY": "opn_your_key_here"
      }
    }
  }
}

Reinicie seu cliente. Pronto — ele fala com a API hospedada (https://l.opn.onl) por padrão.

Prefere executar a partir do código-fonte? Troque o args pela versão do GitHub — mesma configuração: "args": ["-y", "github:ysalitrynskyi/opn-mcp"] (ele compila na instalação).

Instância auto-hospedada

Aponte OPN_BASE_URL para o host da API da sua própria instância:

{
  "mcpServers": {
    "opn": {
      "command": "npx",
      "args": ["-y", "opn-mcp"],
      "env": {
        "OPN_API_KEY": "opn_your_key_here",
        "OPN_BASE_URL": "https://l.your-domain.com"
      }
    }
  }
}

Configuração

Variável de ambienteObrigatórioPadrãoDescrição
OPN_API_KEY✅—Sua chave de API (opn_…), de Configurações → Chaves de API
OPN_BASE_URL—https://l.opn.onlURL base da API — defina isso para uma instância auto-hospedada

Ferramentas

Links

FerramentaDescrição
shorten_urlCrie um link curto — alias opcional, título, notas, agendamento (starts_at/expires_at), max_clicks, senha, queimar após leitura, pasta e tags
shorten_urls_bulkEncurte várias URLs de uma vez, opcionalmente em uma pasta
list_linksListe seus links (limite, deslocamento, busca, filtro por pasta ou tag)
update_linkAtualize destino, título, notas, agendamento, limite de cliques, pasta ou proteções; limpe campos com flags remove_*
delete_linkExclua um link
clone_linkDuplique um link com um novo código curto
toggle_link_pinFixe ou desafixe um link
check_alias_availableVerifique se um alias personalizado está disponível antes de usá-lo

Análises

FerramentaDescrição
get_link_statsAnálises por link (cliques, visitantes únicos, geo, cidades, dispositivos, navegadores, SO, referenciadores); janela opcional days
get_dashboard_statsAnálises de toda a conta em todos os seus links

Utilitários de QR e URL

FerramentaDescrição
get_qr_codeObtenha a imagem QR de um link — cor da marca opcional, logotipo central, PNG/SVG
check_url_healthVerifique se uma URL de destino está acessível antes de encurtar
build_utm_urlAdicione parâmetros de campanha UTM a uma URL
preview_url_metadataObtenha metadados Open Graph (título, descrição, imagem) para uma URL

Tags e pastas

FerramentaDescrição
list_tags / create_tagListe ou crie tags
add_tags_to_link / remove_tags_from_linkAnexe ou desanexe tags em um link
list_folders / create_folderListe ou crie pastas
move_links_to_folderMova links para uma pasta

Exemplos de prompts

  • "Encurte https://example.com/very/long/url e chame-o de launch-2026"
  • "Encurte estas cinco URLs em uma nova pasta chamada Q3 Campaign"
  • "Quantos cliques o link 42 obteve nos últimos 30 dias, e de quais países?"
  • "Me dê um código QR SVG com marca para o link 42"
  • "Marque meus últimos 10 links como 'newsletter' e mostre minhas estatísticas do painel"
  • "Crie um link UTM para https://example.com — fonte newsletter, meio email"

Desenvolvimento

npm install
npm run build      # tsc → dist/
npm test           # vitest
OPN_API_KEY=opn_… npm run dev   # run from source (stdio)

Publicação

Todos os três registros são de propriedade de ysalitrynskyi (usuário npm, usuário GitHub e o namespace io.github.ysalitrynskyi do registro MCP), então a publicação deve ser feita enquanto estiver conectado como essa conta.

  1. Aumente a versão em três lugares e mantenha-os idênticos: package.json, server.json (no nível superior e o packages[0].version), e SERVER_VERSION em src/server.ts.
  2. Finalize: faça commit para main e envie. CI (.github/workflows/ci.yml) executa build + test — ele não publica.
  3. Publique no npm (como usuário npm ysalitrynskyi):
    npm login
    npm publish        # prepublishOnly runs the build
    
  4. Publique no registro MCP (como usuário GitHub ysalitrynskyi):
    mcp-publisher validate      # optional, offline check
    mcp-publisher login github  # interactive browser OAuth
    mcp-publisher publish
    

Smithery (smithery.yaml) e Glama (glama.json) rastreiam a publicação npm/registro automaticamente — nenhuma etapa separada.

Licença

MIT © ysalitrynskyi. Parte do projeto opn.onl.