urlDNA
oficialDigitalize e analise dinamicamente URLs potencialmente maliciosas usando o urlDNA.io
O que você pode fazer com urlDNA MCP?
- Verificação instantânea de segurança de URL — Peça para verificar rapidamente se uma URL é SEGURA, MALICIOSA ou NÃO CLASSIFICADA usando
fast_check. - Verificação completa de URL — Envie uma URL para uma varredura abrangente com
new_scane recupere os resultados pelo ID viaget_scan. - Busca de ameaças baseada em CQL — Pesquise varreduras em domínios, IPs, tecnologias e sinalizadores maliciosos usando
searchcom expressões AND/OR. - Gerenciamento de consultas salvas — Crie, liste, atualize e exclua filtros CQL reutilizáveis com
create_query,list_queries,update_queryedelete_query. - Monitoramento de marcas — Liste marcas, busque detalhes e recupere varreduras associadas usando
list_brands,get_brandebrand_scans. - Consulta de documentação da API — Busque a documentação completa da OpenAPI do urlDNA diretamente com
search_docs.
Documentação
Servidor MCP urlDNA

O urlDNA MCP Server permite o uso nativo de ferramentas para agentes de LLM focados em segurança, como OpenAI GPT, Google Gemini e Claude Desktop, fornecendo uma interface direta para interagir com a plataforma de inteligência de ameaças urlDNA via API.
O repositório expõe o mesmo conjunto de ferramentas por meio de dois transportes:
stdiopara integrações locais de desktop, como Claude Desktop.streamable-httppara implantações hospedadas, como Cloud Run.
Instalação e Configuração
Este projeto usa uv para gerenciamento rápido de pacotes Python.
Pré-requisitos
Instale o uv se ainda não o tiver:
# On macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Or with pip
pip install uv
Início Rápido
- Clone e configure o projeto:
git clone <repository-url>
cd urlDNA-mcp-server
uv sync
- Execute o servidor MCP localmente (modo stdio):
uv run python urldna_mcp/run.py
- Execute o servidor MCP no modo HTTP transmissível (streamable HTTP):
uv run python urldna_mcp/server.py
O servidor hospedado lê estas variáveis de ambiente:
PORT: Porta HTTP para vincular. O padrão é8080.MCP_PATH: Caminho público do endpoint MCP. O padrão é/.
Desenvolvimento
# Install development dependencies
uv sync --dev
# Run tests (when available)
uv run pytest
# Format code
uv run black .
# Type checking
uv run mypy .
# Lint code
uv run flake8 .
Servidor MCP Hospedado
O servidor urlDNA MCP já está hospedado e disponível em:
https://mcp.urldna.io/
Este servidor é acessível via HTTP transmissível (streamable HTTP), o que o torna adequado para Cloud Run e outras plataformas orientadas a solicitações.
Você pode usá-lo diretamente com qualquer plataforma ou LLM que suporte a especificação MCP (por exemplo, Claude Desktop, OpenAI GPT, Google Gemini).
Ferramentas Suportadas
Varredura (Scanning)
| Ferramenta | Descrição |
|---|---|
fast_check | Verifique instantaneamente se uma URL foi varrida. Retorna SEGURO / MALICIOSO / NÃO AVALIADO. |
new_scan | Envie uma URL para uma varredura completa e aguarde o resultado (~30–60s). |
get_scan | Recupere um resultado completo de varredura por ID. |
Busca
| Ferramenta | Descrição |
|---|---|
search | Busque varreduras usando CQL (Linguagem de Consulta Personalizada) em domínio, IP, tecnologia, sinalizador malicioso e mais. Suporta expressões AND e OR além de paginação (página 2+ requer PREMIUM). |
Consultas Salvas
| Ferramenta | Descrição |
|---|---|
list_queries | Liste todas as consultas salvas do usuário autenticado. |
get_query | Recupere uma consulta salva específica e seus filtros por ID. |
create_query | Crie uma nova consulta salva com uma ou mais condições de filtro CQL. |
update_query | Atualize o nome e os filtros de uma consulta existente (substituição completa). |
delete_query | Exclua permanentemente uma consulta salva por ID. |
query_scans | Recupere todas as varreduras correspondentes a uma consulta salva. |
Monitoramento de Marca
| Ferramenta | Descrição |
|---|---|
list_brands | Liste marcas disponíveis com busca opcional por nome e filtro de visibilidade (ALL / FREE / PREMIUM / USER_BRANDS). |
get_brand | Recupere detalhes completos de uma marca específica por ID. |
brand_scans | Obtenha todas as varreduras associadas a uma marca. Suporta filtragem CQL adicional. |
Referência da API
| Ferramenta | Descrição |
|---|---|
search_docs | Busque a documentação completa do OpenAPI do urlDNA. |
Integração com Claude Desktop
Para integrar o urlDNA MCP server no Claude Desktop, atualize seu claude_desktop_config.json:
{
"mcpServers": {
"urlDNA": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH>\\urldna_mcp",
"run",
"urldna_mcp\\run.py"
],
"env": {
"x-api-key": "<urlDNA_API_KEY>"
}
}
}
}
Substitua
<YOUR_PATH>pelo diretório pai que contém este repositório e<urlDNA_API_KEY>pela sua chave de API de https://urldna.io.
Para clientes MCP hospedados, aponte-os para https://mcp.urldna.io/ ou para seu próprio MCP_PATH implantado.
Uma vez configurado, você pode solicitar ao Claude em linguagem natural, por exemplo:
"Pesquise no urlDNA por varreduras maliciosas com título semelhante a paypal"
"Crie uma consulta salva para varreduras móveis da Itália sinalizadas como maliciosas"
"Mostre-me todas as varreduras associadas à marca Google"
O Claude chamará automaticamente a ferramenta correta e retornará os resultados da plataforma urlDNA.
Usando o Servidor MCP com OpenAI GPT
from openai import OpenAI
# Initialize OpenAI client (assumes OPENAI_API_KEY is set via environment variable)
client = OpenAI()
response = client.responses.create(
model="gpt-3.5-turbo", # Note: MCP tool use requires a Responses API-compatible model
input=[
{
"role": "system",
"content": [{"type": "input_text", "text": "You are a cybersecurity analyst using urlDNA."}]
},
{
"role": "user",
"content": [{"type": "input_text", "text": "Search in urlDNA for malicious scans with title like paypal or login"}]
}
],
text={"format": {"type": "text"}},
reasoning={},
tools=[
{
"type": "mcp",
"server_label": "urlDNA",
"server_url": "https://mcp.urldna.io/",
"headers": {
"x-api-key": "<URLDNA_API_KEY>" # Replace with your urlDNA API key
},
"allowed_tools": [
# --- Scanning ---
"new_scan", # Submit a URL for a full scan and wait for the result
"get_scan", # Retrieve a scan result by ID
"fast_check", # Lightweight instant safety check (SAFE / MALICIOUS / UNRATED)
# --- Search ---
"search", # Search scans using CQL (Custom Query Language, AND/OR supported)
# --- Saved Queries (PREMIUM) ---
"list_queries",
"get_query",
"create_query",
"update_query",
"delete_query",
"query_scans",
# --- Brand Monitoring (PREMIUM) ---
"list_brands",
"get_brand",
"brand_scans",
# --- API Reference ---
"search_docs",
],
"require_approval": "never"
}
],
temperature=0.7,
top_p=1,
max_output_tokens=2048,
store=True
)
print(response.output)
Usando o Servidor MCP com Google Gemini
O Gemini se conecta ao servidor urlDNA MCP via fastmcp, e as ferramentas são descobertas automaticamente em vez de passadas como uma lista allowed_tools.
import os
import asyncio
from fastmcp import Client
from fastmcp.client.transports import StreamableHttpTransport
from google import genai
async def main():
# 1. Connect FastMCP client directly to streamable-http
transport = StreamableHttpTransport(
"https://mcp.urldna.io/",
headers={"x-api-key": os.getenv("URLDNA_API_KEY", "YOUR_KEY")},
)
client_mcp = Client(transport)
async with client_mcp:
ai = genai.Client(vertexai=True, project=os.getenv("GOOGLE_CLOUD_PROJECT", "YOUR_PROJECT_ID"))
response = await ai.aio.models.generate_content(
model="gemini-2.5-flash",
contents="Search in urlDNA for malicious scans with title like paypal",
# Pass the live MCP session (not just tool declarations) so Gemini
# can automatically call tools and receive their results.
config=genai.types.GenerateContentConfig(tools=[client_mcp.session]),
)
print(response.text)
if __name__ == "__main__":
asyncio.run(main())
Implantação em Contêiner
Compile e execute com Docker:
# Build the container
docker build -t urldna-mcp-server .
# Run the server
docker run -p 8080:8080 -e x-api-key=<URLDNA_API_KEY> urldna-mcp-server
# Optional: override the public MCP path if you do not want /
docker run -p 8080:8080 -e MCP_PATH=/custom-path -e x-api-key=<URLDNA_API_KEY> urldna-mcp-server
# Cloud Run example
gcloud run deploy urldna-mcp-server \
--source . \
--allow-unauthenticated \
--set-env-vars MCP_PATH=/
Sintaxe de Busca
As ferramentas search e brand_scans encaminham o CQL fornecido diretamente para a API do urlDNA. Você pode combinar condições com AND ou OR.
Exemplos:
malicious = true AND technology LIKE wordpress
domain = google.com OR domain = youtube.com
(domain = paypal.com OR title LIKE paypal) AND country_code = IT
Contribuindo
- Faça um fork do repositório
- Crie um branch de funcionalidade:
git checkout -b feature-name - Instale as dependências de desenvolvimento:
uv sync --dev - Faça suas alterações e garanta que os testes passem
- Formate o código:
uv run black . - Envie um pull request
Contato e Suporte
Para suporte ou acesso à API, visite https://urldna.io ou envie um e-mail para urldna@urldna.io.