limelink-mcp-server
Servidor MCP para gerenciar links dinâmicos do Limelink com deep linking específico de plataforma (iOS/Android), prévias sociais e rastreamento UTM
Documentação
@limelink/mcp
한국어 · Documentation · Capability reference
Um servidor Model Context Protocol (MCP) para gerenciamento de links dinâmicos do LimeLink. Crie, consulte e gerencie links dinâmicos diretamente do Claude Code, Claude Desktop ou qualquer cliente compatível com MCP.
Nenhuma chave de API necessária para começar! Os guias de documentação e configuração do SDK funcionam sem qualquer configuração. Basta conectar e começar a explorar os recursos do LimeLink com seu assistente de IA.
Recursos
- Recursos de Documentação — Acesse a documentação do LimeLink (15 páginas + índice) diretamente do seu assistente de IA — sem necessidade de chave de API
- 5 Ferramentas — Descubra perfis e Projetos, crie links dinâmicos e consulte links (as ferramentas de API exigem um perfil configurado)
- Cache em Memória — Cache TTL de 1 hora para buscas de documentação
Ambiente de Execução
- Node.js 18 ou superior
- Apenas transporte stdio; transporte Remote MCP/HTTP não é suportado
- Pacote npm:
@limelink/mcp; executável global:limelink-mcp - stdout é reservado para o protocolo MCP; diagnósticos e logs do wrapper devem usar stderr
Consulte instalação e configuração e comportamento de rede para o contrato operacional completo.
O que funciona sem chave de API?
| Recurso | Categoria | Chave de API | Descrição |
|---|---|---|---|
limelink://docs/index | Recurso | Não necessária | Índice completo da documentação |
limelink://docs/{slug} | Recurso | Não necessária | 15 páginas individuais de documentação |
list-profiles | Ferramenta | Não necessária | Lista aliases de perfis configurados localmente sem contatar a API |
list-projects | Ferramenta | Necessária | Lista Projetos para um perfil de Organização selecionado |
list-custom-domains | Ferramenta | Necessária | Lista Domínios Personalizados para um Projeto selecionado |
create-link | Ferramenta | Necessária | Cria V2 Core Links via API |
get-link-by-suffix | Ferramenta | Necessária | Consulta links por sufixo |
get-link-by-url | Ferramenta | Necessária | Consulta links por URL |
Início Rápido
Sem Chave de API (Documentação e Guias)
Nenhuma chave de API necessária. Conecte e comece a explorar a documentação e os guias de configuração do LimeLink imediatamente:
{
"mcpServers": {
"limelink": {
"command": "npx",
"args": ["-y", "@limelink/mcp"]
}
}
}
Tente perguntar ao seu assistente de IA:
- "Leia a documentação de primeiros passos do LimeLink"
- "Como configuro deep linking para iOS?"
- "Mostre-me o guia de integração do SDK do LimeLink"
Com Perfis de Organização (Recursos Completos)
Crie o arquivo de perfil versão 1 mostrado abaixo e passe seu caminho absoluto:
{
"mcpServers": {
"limelink": {
"command": "npx",
"args": ["-y", "@limelink/mcp"],
"env": {
"LIMELINK_PROFILES_FILE": "/absolute/path/to/limelink-profiles.json"
}
}
}
}
Uso com Instalação Global
npm install -g @limelink/mcp
{
"mcpServers": {
"limelink": {
"command": "limelink-mcp",
"env": {
"LIMELINK_PROFILES_FILE": "/absolute/path/to/limelink-profiles.json"
}
}
}
}
Configuração
Claude Code
A maneira mais fácil de adicionar o servidor MCP é usando o comando claude mcp add:
# Without API key (docs & guides only)
claude mcp add --scope user --transport stdio limelink -- npx -y @limelink/mcp
# With API key (full features)
claude mcp add --scope user --transport stdio limelink \
--env LIMELINK_PROFILES_FILE=/absolute/path/to/limelink-profiles.json \
-- npx -y @limelink/mcp
Opções de escopo:
--scope user— Disponível em todos os projetos--scope project— Salvo em.mcp.json(compartilhável com a equipe via Git)
Claude Desktop e outros clientes MCP
Adicione a configuração JSON ao arquivo de configuração do seu cliente:
| Cliente | Arquivo de Configuração |
|---|---|
| Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
Arquivo de perfil
{"version":1,"defaultProfile":"work","profiles":{"work":{"apiKey":"your_api_key","organizationLabel":"Work","projects":{"marketing":"11111111-1111-4111-8111-111111111111"}}}}
Variáveis de Ambiente
| Variável | Obrigatória | Padrão | Descrição |
|---|---|---|---|
LIMELINK_PROFILES_FILE | Não | — | Caminho para um arquivo JSON versão 1 contendo perfis de credenciais de Organização nomeados. |
LIMELINK_API_KEY e LIMELINK_PROJECT_ID são ignorados. Quando nenhum perfil de credencial está configurado, as ferramentas baseadas em API direcionam o agente para Organizations para emitir uma chave de API de Organização e configurar o arquivo de perfil. Ferramentas baseadas em Projeto aceitam um UUID de Projeto diretamente. O mapa opcional projects de um perfil é uma conveniência recomendada para Projetos usados repetidamente, não um pré-requisito; adicione aliases após a descoberta de list-projects se for útil. Os perfis inicializam de forma preguiçosa por meio de introspecção de credenciais na primeira chamada baseada em API. Alterações no arquivo de perfil, incluindo adições de aliases, exigem reinicialização do servidor MCP.
Você pode obter sua chave de API no LimeLink Dashboard. Sem uma chave de API, os recursos de documentação e os guias de configuração do SDK estão totalmente disponíveis.
Ferramentas
list-profiles
Lista aliases configurados, rótulos de Organização, status padrão e status de inicialização atual sem contatar a API. Perfis já inicializados incluem escopos. Os valores das chaves de API permanecem secretos e nunca são retornados. Identificadores de Organização, Projeto, Domínio Personalizado e credenciais, bem como prefixos de chave, são identificadores não secretos e podem aparecer nas respostas das ferramentas baseadas em API quando úteis.
list-projects
Lista Projetos na Organização descoberta a partir da credencial do perfil selecionado. Aceita profile opcional; a credencial exige projects:read.
list-custom-domains
Lista Domínios Personalizados para project obrigatório (alias ou UUID). Aceita profile opcional; a credencial exige domains:read.
create-link
Cria um V2 Core Link com deep linking específico de plataforma, seleção de Domínio Personalizado, pré-visualizações sociais e rastreamento UTM.
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
dynamic_link_suffix | string | Não | Identificador de caminho de URL curto (1–100); gerado pela API quando omitido |
dynamic_link_url | string | Sim | URL de destino (máx. 500) |
dynamic_link_name | string | Sim | Nome do link (máx. 100) |
project | string | Sim | Alias do Projeto no perfil selecionado ou UUID do Projeto |
profile | string | Não | Alias do perfil; caso contrário, usa o perfil padrão configurado ou o único perfil |
custom_domain_id | string UUID | Não | Domínio Personalizado para o Core Link |
stats_flag | boolean | Não | Ativa o rastreamento de análises |
apple_options | object | Não | Opções de deep linking para iOS |
android_options | object | Não | Opções de deep linking para Android |
additional_options | object | Não | Opções de pré-visualização social + UTM |
Exemplo de uso no Claude:
"Crie um link dinâmico para https://example.com/product/123 com o sufixo 'product-123' e ative as análises"
get-link-by-suffix
Consulta um link dinâmico pelo seu sufixo.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
suffix | string | Sim | Sufixo do link dinâmico |
project | string | Sim | Alias do Projeto no perfil selecionado ou UUID do Projeto |
profile | string | Não | Alias do perfil; caso contrário, usa o perfil padrão configurado ou o único perfil |
get-link-by-url
Resolve um Link através da API V2 usando sua URL completa. O backend determina se a URL pertence a um namespace padrão gratuito, hostname de Projeto ou Domínio Personalizado ativo. Nenhum seletor de Projeto ou análise local de sufixo é necessário.
A URL deve ser HTTPS absoluta com exatamente um segmento de caminho /{suffix} e sem query, fragmento, porta explícita ou credenciais.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
url | string | Sim | URL completa do LimeLink para resolver (máx. 2048 caracteres) |
profile | string | Não | Alias do perfil; caso contrário, usa o perfil padrão configurado ou o único perfil |
Recursos
limelink://docs/index
Retorna o índice completo da documentação do LimeLink (llms.txt).
limelink://docs/{slug}
Retorna páginas individuais de documentação. Slugs disponíveis:
introduction, getting-started, project, application, dynamic-link, create-link, link-detail, link-management, appearance, sdk-integration, ios-sdk, android-sdk, api-integration, advanced, llm-agent
Exemplo de uso no Claude:
"Leia a documentação de integração da API do LimeLink"
O Claude acessará
limelink://docs/api-integration
Desenvolvimento
Pré-requisitos
- Node.js >= 18
- pnpm
Configuração
git clone https://github.com/hellovelop/limelink-mcp-server.git
cd limelink-mcp-server
pnpm install
pnpm run build
Executar localmente
LIMELINK_PROFILES_FILE=/absolute/path/to/limelink-profiles.json node dist/index.js
Testes
pnpm test # Unit tests
pnpm test:e2e # E2E tests (MCP stdio communication)
pnpm test:watch # Unit tests in watch mode
pnpm test:coverage # Coverage report
Estrutura do Projeto
src/
├── index.ts # Entry point
├── lib/
│ ├── config.ts # Environment variable loading
│ ├── cache.ts # In-memory TTL cache
│ ├── api-client.ts # LimeLink API HTTP client
│ └── doc-fetcher.ts # Documentation fetcher with caching
├── tools/
│ ├── create-link.ts # create-link tool
│ ├── get-link-by-suffix.ts
│ └── get-link-by-url.ts
└── resources/
└── documentation.ts # Documentation resources
Licença
MIT