Serpstat API MCP Server
Um servidor TypeScript que integra a API de SEO da Serpstat com o Protocolo de Contexto de Modelo (MCP) da Anthropic, permitindo que assistentes de IA como o Claude acessem dados abrangentes de SEO e ferramentas de análise.
Documentação
Servidor MCP Serpstat
Um servidor TypeScript que integra a API de SEO Serpstat com o Protocolo de Contexto de Modelo (MCP) da Anthropic, permitindo que assistentes de IA como o Claude acessem dados abrangentes de SEO e ferramentas de análise.
Sumário
- Sobre o MCP
- Pré-requisitos
- Instalação
- Configuração
- Exemplos de Uso
- Ferramentas MCP
- Solução de Problemas
- Desenvolvimento
- Limites de Taxa da API
- Contribuição
- Suporte
- Licença
Sobre o MCP
O Protocolo de Contexto de Modelo (MCP) é um padrão aberto desenvolvido pela Anthropic que permite que assistentes de IA se conectem com segurança a fontes de dados e ferramentas externas. Este servidor implementa o MCP para fornecer ao Claude e outros assistentes de IA compatíveis acesso à poderosa API de análise de SEO da Serpstat.
Descrição
Este projeto implementa um servidor TypeScript que fornece uma interface de API para trabalhar com as ferramentas Serpstat através do protocolo MCP. O servidor suporta manipulação de requisições, validação de parâmetros, registro de logs e trabalho com múltiplas ferramentas de análise de SEO.
Recursos
- 🔍 Análise Abrangente de SEO: Acesse informações de domínio, pesquisa de palavras-chave, análise de concorrentes e dados de backlinks
- ✅ Validação de Entrada: Validação robusta de parâmetros usando esquemas Zod
- 📊 Registro de Eventos: Registro detalhado com Winston para depuração e monitoramento
- ⚙️ Configuração Flexível: Configuração baseada em ambiente com padrões sensatos
- 🧪 Bem Testado: Testes Jest para validação de parâmetros e lógica de negócio
- 🚀 TypeScript: Segurança total de tipos em todo o código
Pré-requisitos
- Node.js 18.0.0 ou superior (Baixar Node.js)
- Token válido da API Serpstat (obtenha um em Serpstat)
- Assistente de IA compatível: Claude Desktop, Gemini CLI ou qualquer cliente compatível com MCP
Instalação
Instalação Global (Recomendada)
npm install -g @serpstat/serpstat-mcp-server
Instalação Local
npm install @serpstat/serpstat-mcp-server
Configuração
Variáveis de Ambiente
Defina as seguintes variáveis de ambiente (podem estar em um arquivo .env):
SERPSTAT_API_TOKEN— Seu token da API Serpstat (obrigatório)SERPSTAT_API_URL— URL da API Serpstat (padrão: https://api.serpstat.com/v4)LOG_LEVEL— Nível de registro: error, warn, info, debug (padrão: info)SERPSTAT_ENABLED_CATEGORIES— Filtrar ferramentas por categorias (opcional, separadas por vírgula, padrão: todas as categorias habilitadas)
Configuração do Claude Desktop e Gemini CLI
Adicione ao arquivo de configuração do seu Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Adicione à configuração do seu Gemini CLI:
Linux: ~/.gemini/settings.json
{
"mcpServers": {
"serpstat": {
"command": "npx",
"args": ["-y", "@serpstat/serpstat-mcp-server"],
"env": {
"SERPSTAT_API_TOKEN": "YOUR_SERPSTAT_API_TOKEN_HERE",
"LANG": "en_US.UTF-8",
"LC_ALL": "en_US.UTF-8"
}
}
}
}
Para desenvolvimento local, use o caminho completo:
{
"mcpServers": {
"serpstat": {
"command": "node",
"args": ["/path/to/node_modules/serpstat-mcp-server/dist/index.js"],
"env": {
"SERPSTAT_API_TOKEN": "YOUR_SERPSTAT_API_TOKEN_HERE"
}
}
}
}
Filtrando Ferramentas por Categoria
Você pode limitar quais ferramentas estão disponíveis especificando a variável de ambiente SERPSTAT_ENABLED_CATEGORIES. Isso é útil para:
- Reduzir o uso da janela de contexto em assistentes de IA
- Focar em áreas específicas de análise de SEO
- Criar configurações especializadas para diferentes casos de uso
Categorias disponíveis:
domain- Ferramentas de análise de domínio (informações de domínio, concorrentes, palavras-chave do domínio, etc.)keywords- Ferramentas de pesquisa de palavras-chave (sugestões de palavras-chave, volume de pesquisa, dificuldade, etc.)backlinks- Ferramentas de análise de backlinks (resumo de backlinks, âncoras, domínios de referência, etc.)url- Ferramentas de análise de URL (tráfego de URL, concorrentes, palavras-chave, etc.)projects- Ferramentas de gerenciamento de projetos (criar, listar, excluir projetos)credits- Ferramentas de monitoramento de créditos e usort- Ferramentas de monitoramento de posições (histórico de posições, monitoramento de SERP, etc.)audit- Ferramentas de auditoria de site (auditoria completa de SEO do site, relatórios de erros, etc.)page-audit- Ferramentas de auditoria de página única (análise de página única, SEO on-page, etc.)
Exemplo: Habilitar apenas ferramentas de palavras-chave e domínio
{
"mcpServers": {
"serpstat": {
"command": "npx",
"args": ["-y", "@serpstat/serpstat-mcp-server"],
"env": {
"SERPSTAT_API_TOKEN": "YOUR_SERPSTAT_API_TOKEN_HERE",
"SERPSTAT_ENABLED_CATEGORIES": "keywords,domain"
}
}
}
}
Exemplo: Habilitar apenas análise de backlinks
{
"mcpServers": {
"serpstat": {
"command": "npx",
"args": ["-y", "@serpstat/serpstat-mcp-server"],
"env": {
"SERPSTAT_API_TOKEN": "YOUR_SERPSTAT_API_TOKEN_HERE",
"SERPSTAT_ENABLED_CATEGORIES": "backlinks"
}
}
}
}
Comportamento padrão (todas as ferramentas habilitadas):
Se SERPSTAT_ENABLED_CATEGORIES não for especificada ou estiver vazia, todas as ferramentas estarão disponíveis (65 ferramentas no total em todas as categorias).
Exemplos de Uso
Após a instalação e configuração no Claude Desktop, você pode pedir ao Claude:
Análise de Domínio
- "Mostre-me informações de domínio para example.com"
- "Encontre concorrentes para my-site.com no Google dos EUA"
- "Obtenha as 50 principais palavras-chave para as quais example.com está classificado"
Pesquisa de Mercado
- "Mostre-me todas as categorias de pesquisa de mercado disponíveis"
- "Encontre os principais domínios na categoria 'E-commerce' para o Google dos EUA"
- "Obtenha os 20 principais domínios na categoria '/Artes e Entretenimento/TV e Vídeo' ordenados por tráfego"
- "Analise o cenário competitivo na categoria 'Negócios e Industrial' com domínios que tenham SDR acima de 50"
- "Encontre os principais players no mercado 'Saúde e Fitness' com mínimo de 100 mil de tráfego mensal"
Pesquisa de Palavras-Chave
- "Encontre palavras-chave relacionadas a 'marketing digital'"
- "Obtenha sugestões de palavras-chave para 'iphone 15' excluindo palavras-chave 'aluguel'"
- "Obtenha dados abrangentes de palavras-chave para [
iphone,samsung,googel pixel] incluindo volume de pesquisa, CPC e dificuldade"
Análise de Concorrentes
- "Mostre-me domínios concorrentes classificados para a palavra-chave
pizza deliverycom métricas de visibilidade" - "Obtenha os principais resultados de pesquisa para a palavra-chave
laptop computersmostrando posições, domínios e recursos de SERP" - "Obtenha palavras-chave exclusivas para domain1.com vs domain2.com"
Análise de Backlinks
- "Analise o resumo de backlinks para domain.com"
- "Obtenha análise de texto âncora para backlinks de domain.com"
- "Obtenha backlinks ativos para domain.com mostrando páginas de referência e URLs de destino"
- "Obtenha domínios de referência para domain.com com métricas de autoridade de domínio"
- "Obtenha backlinks perdidos para domain.com mostrando links removidos e datas de exclusão"
- "Obtenha as 10 principais âncoras para domain.com com contagens de backlinks e domínios de referência"
- "Obtenha interseção de backlinks para domain.com vs competitor1.com e competitor2.com mostrando domínios de referência compartilhados"
- "Obtenha backlinks de ameaça para domain.com mostrando links maliciosos de sites sinalizados por ameaças de segurança"
Gerenciamento de Projetos
- "Crie um novo projeto para example.com chamado Meu Projeto de SEO"
- "Liste todos os meus projetos com paginação"
- "Exclua o projeto com ID 1234567"
Monitoramento de Créditos e Uso
- "Mostre-me minhas estatísticas de créditos de auditoria"
- "Verifique meu uso de créditos da API e cota restante"
Monitoramento de Posições
- "Liste todos os meus projetos de monitoramento de posições"
- "Verifique o status de análise para o projeto 12345 na região 2840"
Auditoria de Site
- "Obtenha configurações de auditoria para o projeto 1113915"
- "Inicie a auditoria do site para o projeto 1113915"
- "Pare a auditoria do site para o projeto 1113915"
Ferramentas MCP
Ferramentas de Análise de Domínio
| Nome da Ferramenta | Descrição | Parâmetros Principais |
|---|---|---|
| get_domains_info | Obtenha informações de SEO para múltiplos domínios | domains, se, filters |
| get_domain_competitors | Obtenha lista de domínios concorrentes | domain, se, size, filters |
| get_domain_keywords | Obtenha palavras-chave para as quais o domínio está classificado | domain, se, page, size |
| get_domain_urls | Obtenha URLs dentro de um domínio e suas contagens de palavras-chave | domain, se, page, size |
| get_domain_regions_count | Obtenha contagem de palavras-chave por região para um domínio | domain, sort, order |
| get_domain_uniq_keywords | Obtenha palavras-chave exclusivas para dois domínios não classificadas por um terceiro domínio | se, domains, minusDomain |
| get_market_categories | Obtenha lista completa de mais de 1000 categorias de pesquisa de mercado | nenhum |
| get_category_top_domains | Obtenha domínios de melhor desempenho em uma categoria de mercado específica com métricas de SEO | category_id, se, filters, sort, page, size |
Ferramentas de Pesquisa de Palavras-Chave
| Nome da Ferramenta | Descrição | Parâmetros Principais |
|---|---|---|
| get_keywords | Obtenha palavras-chave orgânicas relacionadas para uma palavra-chave dada | keyword, se, filters |
| get_related_keywords | Obtenha palavras-chave semanticamente relacionadas com dados de frequência, CPC, concorrência e dificuldade | keyword, se, filters, sort |
| get_keyword_suggestions | Obtenha sugestões de pesquisa para uma palavra-chave usando busca de texto completo com informações de nomes geográficos | keyword, se, filters |
| get_keywords_info | Obtenha visão geral de palavras-chave com volume, CPC, concorrência, dificuldade e recursos de SERP | keywords, se, withIntents |
| get_keyword_full_top | Obtenha os 100 principais resultados de pesquisa do Google para palavras-chave analisadas | keyword, se, size |
| get_keyword_top_urls | Obtenha páginas de sites classificadas para a maior quantidade de variações de palavras-chave analisadas | keyword, se, page, page_size |
| get_keyword_competitors | Obtenha domínios classificados para a palavra-chave dada nos 20 principais resultados do Google com análise de concorrentes | keyword, se, filters, sort |
| get_keyword_top | Obtenha os 100 principais resultados de pesquisa do Google para a palavra-chave analisada com posição, URL e recursos de SERP | keyword, se, filters, size |
Ferramentas de Análise de URL
| Nome da Ferramenta | Descrição | Parâmetros Principais |
|---|---|---|
| get_url_summary_traff | Obtenha estatísticas de tráfego e palavras-chave para páginas de sites que correspondem a uma máscara de URL específica | se, domain, urlContains |
| get_url_competitors | Obtenha lista de concorrentes de URL mostrando domínios competindo pelas mesmas palavras-chave nos 10 principais resultados | se, url, sort, page |
| get_url_keywords | Obtenha palavras-chave para as quais a URL especificada está classificada nos 100 principais resultados do Google e nos 50 principais do Bing | se, url, filters, sort |
| get_url_missing_keywords | Obtenha palavras-chave para as quais os concorrentes estão classificados, mas a URL dada não está, identificando lacunas de palavras-chave | url, se, filters, sort |
Ferramentas de Análise de Backlinks
| Tool Name | Description | Key Parameters |
|---|---|---|
| get_backlinks_summary | Obtenha um resumo abrangente de backlinks com domínios de referência, métricas de qualidade e alterações | domain, subdomain |
| get_anchors | Obtenha análise de texto âncora para backlinks com métricas de domínios de referência e backlinks | query, searchType, anchor, sort |
| get_active_backlinks | Obtenha uma lista de backlinks ativos mostrando páginas de origem, páginas de destino e atributos do link | query, searchType, sort, page |
| get_referring_domains | Obtenha uma lista de domínios de referência com métricas de classificação de domínio e contagem de páginas de referência | query, searchType, sort, page |
| get_lost_backlinks | Obtenha uma lista de backlinks perdidos mostrando páginas de origem, páginas de destino e datas de exclusão | query, searchType, sort, page |
| get_top_pages_by_backlinks | Obtenha uma lista das principais páginas por backlinks com vários parâmetros de filtragem e ordenação | query, searchType, sort, size |
| get_top10_anchors | Obtenha os 10 principais textos âncora com o número de backlinks e domínios de referência | query, searchType |
| get_backlinks_intersection | Obtenha backlinks de domínios que linkam para vários sites analisados para análise competitiva | query, intersect, sort, page |
| get_active_outlinks | Obtenha links de saída ativos de um domínio ou URL com URLs de destino e texto âncora | query, searchType, sort, filters |
| get_active_outlink_domains | Obtenha domínios externos que recebem links de saída do domínio analisado | query, searchType, sort, filters |
| get_threat_backlinks | Obtenha backlinks maliciosos apontando para o domínio analisado de sites sinalizados por ameaças de segurança | query, searchType, sort, filters |
Ferramentas de Gerenciamento de Projetos
| Tool Name | Description | Key Parameters |
|---|---|---|
| create_project | Crie um novo projeto no Serpstat para acompanhar métricas de SEO e auditorias de site | domain, name, groups |
| delete_project | Exclua um projeto existente do Serpstat pelo ID do projeto | project_id |
| list_projects | Recupere uma lista de projetos associados à conta com paginação | page, size |
Ferramentas de Monitoramento de Créditos e Uso
| Tool Name | Description | Key Parameters |
|---|---|---|
| get_credits_for_audit_stats | Verifique os créditos de auditoria disponíveis (auditoria de uma página, varredura JavaScript, limites de rastreamento) Sem custo | none |
| get_credits_stats | Verifique o uso de créditos da API, informações da conta e limites do plugin do navegador Sem custo | none |
Ferramentas de Rastreamento de Posições
| Tool Name | Description | Key Parameters |
|---|---|---|
| get_rt_projects_list | Obtenha projetos do rastreador de posições com ID, nome, domínio, data de criação e status de rastreamento Sem custo | page, pageSize |
| get_rt_project_status | Verifique se o projeto do rastreador de posições está processando (true=processando, false=pronto) Sem custo | projectId, regionId |
| get_rt_project_regions_list | Obtenha lista de regiões para um projeto do rastreador de posições com status, tipo de SERP, dispositivo e localização Sem custo | projectId |
| get_rt_project_keyword_serp_history | Obtenha o histórico do top-100 do Google para palavras-chave do rastreador de posições com posições e URLs Sem custo | projectId, projectRegionId, page |
| get_rt_project_url_serp_history | Obtenha o histórico de classificação de URLs para palavras-chave do rastreador de posições com dados históricos de posição Sem custo | projectId, projectRegionId, page |
Ferramentas de Auditoria de Site
| Tool Name | Description | Key Parameters |
|---|---|---|
| get_site_audit_settings | Obtenha configurações de auditoria para um projeto, incluindo parâmetros de varredura, agendamento e limites de erro Sem custo | projectId |
| set_site_audit_settings | Atualize as configurações de auditoria de um projeto com configuração de varredura, agendamento e notificações Sem custo | projectId, mainSettings, ... |
| start_site_audit | Inicie a sessão de auditoria para um projeto e receba o reportId para acompanhar o progresso (1 crédito/página, 10 créditos/página com renderização JS) | projectId |
| stop_site_audit | Pare a sessão de auditoria ativa para um projeto Sem custo | projectId |
| get_site_audit_results_by_categories | Obtenha estatísticas de resultados de auditoria agrupadas por categorias de problemas (status das páginas, meta tags, links, etc.) Sem custo | reportId |
| get_site_audit_history | Obtenha dados históricos de contagem de erros para um tipo específico de erro em vários relatórios de auditoria Sem custo | projectId, errorName, limit, offset |
| get_site_audits_list | Obtenha lista de todos os relatórios de auditoria para um projeto com estatísticas resumidas e informações de progresso Sem custo | projectId, limit, offset |
| get_site_audit_scanned_urls_list | Obtenha lista de URLs que serão varridas com base nas configurações de varredura do projeto Sem custo | projectId |
| get_site_audit_project_default_settings | Obtenha o modelo de configurações padrão de auditoria para usar ao criar novos projetos Sem custo | - |
| get_site_audit_bref_info | Obtenha informações essenciais do resumo da auditoria mais recente, incluindo pontuação SDO, contagem de problemas por prioridade, progresso da varredura e status de conclusão Sem custo | reportId |
| get_site_audit_deteailed_report | Obtenha o número de erros categorizados por tipo com comparação ao relatório anterior mostrando countAll, countNew e countFixed Sem custo | reportId, compareReportId (opcional) |
| get_site_audit_pages_spec_errors | Obtenha lista de todas as páginas onde um erro específico foi detectado com filtragem por modo (todos/novos/resolvidos) e suporte a paginação Sem custo | reportId, compareReportId, projectId, errorName, mode, limit, offset |
| get_site_audit_elements_with_issues | Obtenha lista de subelementos (URLs) contendo erros específicos usando CRC da resposta de get_site_audit_pages_spec_errors Sem custo | reportId, projectId, errorName, crc, compareReportId (opcional), mode, limit, offset |
Ferramentas de Auditoria de Página Única
| Nome da Ferramenta | Descrição | Parâmetros Principais |
|---|---|---|
| page_audit_start_scan | Escaneia uma única página da web com renderização de JavaScript. Retorna pageId e reportId para rastreamento. Use page_audit_get_reports_for_page para verificar o progresso via campos de status e progresso (10 créditos por escaneamento) | name, url, userAgent (recomendado: 0 para Chrome), httpAuthLogin (opcional), httpAuthPass (opcional) |
| page_audit_get_last_scans | Obtém a lista de todos os projetos de auditoria de página única com pageId, url, name, status, lastActiveReport (resultados do último escaneamento com pontuação SDO), finishedReportCount, settings Sem custo | limit (opcional, padrão 30), offset (opcional, padrão 0), teamMemberId (opcional) |
| page_audit_get_reports_for_page | Obtém o histórico de todos os relatórios de auditoria para uma página específica com reportId, auditDate, status (1=em andamento, 3=finalizando, 4=concluído), pontuação SDO (0-100), contagens de erros, progresso (0-100) Sem custo | pageId, limit (opcional), offset (opcional) |
| page_audit_get_results_report | Obtém resultados detalhados da auditoria com array de categorias (erros agrupados por meta_tags, headings, content, multimedia, https, pagespeed_desktop/mobile, etc), flag hasAdditionRows para disponibilidade de drill-down Sem custo | pageId (de page_audit_get_last_scans ou page_audit_start_scan) |
| page_audit_rescan | Reescaneia um projeto de auditoria de página única existente e cria um novo relatório de auditoria. Retorna reportId. Acompanhe o progresso via page_audit_get_reports_for_page (10 créditos por reescaneamento) | pageId, name, userAgent (recomendado: 0 para Chrome), httpAuthLogin (opcional), httpAuthPass (opcional) |
| page_audit_stop | Interrompe um escaneamento de auditoria de página única ativo. Retorna booleano indicando sucesso Sem custo | pageId |
| page_audit_delete | Remove permanentemente um projeto de auditoria de página única da lista de projetos do cliente. Retorna booleano Sem custo | pageId |
| page_audit_get_report_by_categories | Obtém resultados de auditoria por categorias para um relatório específico. Use compareReportId para ver countNew (erros adicionados) e countFixed (erros resolvidos) Sem custo | reportId, compareReportId (opcional, habilita rastreamento de mudanças) |
| page_audit_report_drill_down | Obtém lista detalhada de elementos problemáticos. Funciona APENAS para erros com hasAdditionRows=true. A resposta varia conforme o tipo de erro (ex.: URLs de imagens para erros de multimídia) Sem custo | reportId, error (deve corresponder a error.key), mode (all/new/solved, opcional), compareReportId (opcional), page (opcional), size (opcional, máx. 1000) |
| page_audit_get_scan_names | Obtém lista de todos os nomes de projetos de auditoria de página única com pageId, name, url, finishedReportCount para descoberta de projetos Sem custo | teamMemberId (opcional) |
| page_audit_scan_logs | Obtém log cronológico de eventos de escaneamento com message (nome do evento), type (info/warning/error), params (dados específicos do evento ou []), timestamp created_at para depuração Sem custo | reportId (opcional, todos os escaneamentos se não especificado), page (opcional, padrão 0), pageSize (opcional, padrão 100) |
Mecanismos de Busca (parâmetro se)
Códigos comuns de mecanismos de busca:
g_us- Google EUAg_uk- Google Reino Unidog_ca- Google Canadág_au- Google Austráliag_de- Alemanhag_fr- Google Françag_es- Google Espanhag_it- Google Itáliag_pl- Google Polôniag_ua- Google Ucrânia
Veja a lista completa de Nomes Curtos de Mecanismos de Busca
Solução de Problemas
Problemas Comuns
"Comando não encontrado: serpstat-mcp-server"
- Certifique-se de que instalou o pacote globalmente com a flag
-g - Verifique se seu PATH inclui binários globais do npm:
npm config get prefix - Tente reinstalar:
npm uninstall -g @serpstat/serpstat-mcp-server && npm install -g @serpstat/serpstat-mcp-server
"Erro de token da API" ou "Não autorizado"
- Verifique se
SERPSTAT_API_TOKENestá configurado corretamente no seu ambiente - Confirme se seu token é válido e ativo na sua conta Serpstat
- Garanta que seu token tenha créditos e permissões de API suficientes
Erros de "Módulo não encontrado"
- Certifique-se de que todas as dependências estão instaladas:
npm install - Tente reconstruir:
npm run clean && npm run build
Claude Desktop não reconhece o servidor
- Reinicie o Claude Desktop após alterações de configuração
- Verifique o caminho do arquivo de configuração e a sintaxe JSON
- Confirme se o servidor inicia corretamente: execute
serpstat-mcp-serverno terminal
"Não é possível encontrar npx"
- Você precisa instalar o Node.js - baixe e instale o Node.js
Erros de limite de taxa
- A maioria dos planos Serpstat tem limite de 1 RPS (1 requisição por segundo)
- Aguarde entre requisições ou contate o suporte Serpstat para limites maiores
- Verifique seu uso da API no painel Serpstat
Modo de Depuração
Habilite o log de depuração definindo:
export LOG_LEVEL=debug
Ou na configuração do Claude Desktop:
{
"mcpServers": {
"serpstat": {
"command": "npx",
"args": ["-y", "@serpstat/serpstat-mcp-server"],
"env": {
"SERPSTAT_API_TOKEN": "YOUR_TOKEN_HERE",
"LANG": "en_US.UTF-8",
"LC_ALL": "en_US.UTF-8",
"LOG_LEVEL": "debug"
}
}
}
}
Desenvolvimento
Começando
-
Clone o repositório:
git clone git@github.com:SerpstatGlobal/serpstat-mcp-server-js.git cd serpstat-mcp-server-js -
Instale as dependências:
npm install -
Defina as variáveis de ambiente:
cp .env.example .env # Edit .env with your Serpstat API token -
Compile o projeto:
npm run build -
Inicie o servidor:
npm start -
Para modo de desenvolvimento (recarga automática):
npm run dev
Testes
Para executar os testes:
npm test
Execute um arquivo de teste específico:
npx jest src/__tests__/services/keyword_tools.test.ts
Execute um teste específico pelo nome:
npx jest --testNamePattern="methodName"
Scripts
npm run build— Compila fontes TypeScript para JavaScript (saída emdist/)npm start— Executa o servidor compilado a partir dedist/npm run dev— Executa o servidor em modo de desenvolvimento com recarga automáticanpm test— Executa todos os testesnpm run lint— Executa lintingnpm run clean— Limpa o diretório de build
Estrutura do Projeto
serpstat-mcp-server/
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # Main MCP server
│ ├── handlers/ # Tool handlers
│ ├── services/ # Services for Serpstat API
│ ├── types/ # Data types
│ ├── utils/ # Utilities (config, logger, validation)
│ └── __tests__/ # Tests
├── dist/ # Compiled JavaScript (after build)
├── package.json
├── tsconfig.json
├── README.md
└── .env.example
Limites de Taxa da API
Por padrão, a maioria dos planos Serpstat tem 1 RPS (1 requisição por segundo) - isso é suficiente para a maioria das tarefas. Se precisar de maior throughput, contate o suporte Serpstat para discutir upgrades de plano.
Importante: O servidor respeita os limites de taxa automaticamente. Se encontrar erros de limite de taxa, aguarde antes de fazer requisições adicionais.
Contribuindo
Aceitamos contribuições! Siga estes passos:
- Faça um fork do repositório
- Crie um branch de funcionalidade:
git checkout -b feature/amazing-feature - Faça suas alterações
- Adicione testes para novas funcionalidades
- Garanta que os testes passem:
npm test - Faça commit das suas alterações:
git commit -m 'Add amazing feature' - Envie para o branch:
git push origin feature/amazing-feature - Envie um pull request
Diretrizes de Desenvolvimento
- Siga o estilo de código existente e as convenções TypeScript
- Adicione testes para novos recursos
- Atualize a documentação conforme necessário
- Use mensagens de commit convencionais
- Garanta que todo linting passe:
npm run lint
Changelog
Veja CHANGELOG.md para detalhes sobre alterações em cada versão.
Suporte
A forma mais eficaz de receber suporte da Serpstat é usar o recurso de chat ao vivo diretamente na plataforma. Alternativamente, você pode enviar um e-mail para support@serpstat.com.
Agradecimentos
- Model Context Protocol por Anthropic
- API Serpstat para serviços de dados SEO
Licença
Licença MIT
Este projeto está sob licença MIT, o que significa que você pode copiar, usar, modificar e até vender qualquer parte deste código sem complicações.
- Veja o arquivo LICENSE para detalhes
- Quer pegar um pedaço para o seu projeto? Pode ir em frente
- Quer reescrever metade e lançar um produto comercial? Fique à vontade
- A única coisa que você precisa fazer é não excluir os direitos autorais e a própria licença dos arquivos que você pegar, e lembrar da equipe Serpstat com uma palavra gentil quando receber esse pagamento
Com amor, Equipe de P&D Serpstat