urlDNA MCP Server

официальный

Динамическое сканирование и анализ потенциально вредоносных URL-адресов с помощью urlDNA.io

Документация

urlDNA MCP-сервер

Блог

Claude Prompt

urlDNA MCP Server обеспечивает нативное использование инструментов для LLM-агентов, ориентированных на безопасность, таких как OpenAI GPT-4.1 и Claude Desktop, предоставляя прямой интерфейс для взаимодействия с платформой анализа угроз urlDNA через API.


Установка и настройка

В этом проекте используется uv для быстрого управления пакетами Python.

Предварительные требования

Установите uv, если он ещё не установлен:

# 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

Быстрый старт

  1. Клонируйте и настройте проект:
git clone <repository-url>
cd urlDNA-mcp-server
uv sync
  1. Запустите MCP-сервер локально (режим stdio):
uv run python urldna_mcp/run.py
  1. Запустите MCP-сервер в режиме SSE:
uv run python urldna_mcp/server.py

Разработка

# 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 .

Размещённый MCP-сервер

Сервер urlDNA MCP уже размещён и доступен по адресу:

https://mcp.urldna.io/sse

Этот сервер доступен по протоколу Server-Sent Events (SSE), который поддерживает потоковое взаимодействие между LLM и внутренними инструментами.

Вы можете использовать его напрямую с любой платформой или LLM, поддерживающей спецификацию MCP (например, Claude Desktop, OpenAI GPT-4.1).


Поддерживаемые инструменты

Сканирование

ИнструментОписание
fast_checkМгновенная проверка, был ли URL просканирован. Возвращает SAFE / MALICIOUS / UNRATED.
new_scanОтправка URL на полное сканирование с ожиданием результата (~30–60 с).
get_scanПолучение полного результата сканирования по ID.

Поиск

ИнструментОписание
searchПоиск сканирований с использованием CQL (Custom Query Language) по домену, IP, технологии, флагу вредоносности и другим параметрам. Поддерживает пагинацию (страница 2+ требует PREMIUM).

Сохранённые запросы

ИнструментОписание
list_queriesСписок всех сохранённых запросов для аутентифицированного пользователя.
get_queryПолучение конкретного сохранённого запроса и его фильтров по ID.
create_queryСоздание нового сохранённого запроса с одним или несколькими условиями фильтрации CQL.
update_queryОбновление имени и фильтров существующего запроса (полная замена).
delete_queryБезвозвратное удаление сохранённого запроса по ID.
query_scansПолучение всех соответствующих сканирований для сохранённого запроса.

Мониторинг брендов

ИнструментОписание
list_brandsСписок доступных брендов с возможностью поиска по имени и фильтром видимости (ALL / FREE / PREMIUM / USER_BRANDS).
get_brandПолучение полной информации о конкретном бренде по ID.
brand_scansПолучение всех сканирований, связанных с брендом. Поддерживает дополнительную фильтрацию CQL.

Справочник API

ИнструментОписание
search_docsПолучение полной документации и OpenAPI urlDNA.

Интеграция с Claude Desktop

Чтобы интегрировать urlDNA MCP server в Claude Desktop, обновите ваш claude_desktop_config.json:

{
  "mcpServers": {
    "urlDNA": {
      "command": "uv",
      "args": [
        "--directory",
        "<YOUR_PATH>\\urldna_mcp",
        "run",
        "run.py"
      ],
      "env": {
        "x-api-key": "<urlDNA_API_KEY>"
      }
    }
  }
}

Замените <YOUR_PATH> на фактический путь к директории проекта, а <urlDNA_API_KEY> — на ваш API-ключ из https://urldna.io.

После настройки вы можете давать Claude запросы на естественном языке, например:

«Найди в urlDNA вредоносные сканирования с заголовком, похожим на paypal»

«Создай сохранённый запрос для мобильных сканирований из Италии, помеченных как вредоносные»

«Покажи все сканирования, связанные с брендом Google»

Claude автоматически вызовет нужный инструмент и вернёт результаты с платформы urlDNA.


Использование MCP-сервера с OpenAI GPT-4.1

from openai import OpenAI

# Initialize OpenAI client (assumes OPENAI_API_KEY is set via environment variable)
client = OpenAI()

response = client.responses.create(
    model="gpt-4.1",  # GPT-4.1 supports native MCP tool use
    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"}]
        }
    ],
    text={"format": {"type": "text"}},
    reasoning={},
    tools=[
        {
            "type": "mcp",
            "server_label": "urlDNA",
            "server_url": "https://mcp.urldna.io/sse",
            "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)

                # --- 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)

Развёртывание в контейнере

Сборка и запуск с помощью 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

Участие в разработке

  1. Сделайте форк репозитория
  2. Создайте ветку для функции: git checkout -b feature-name
  3. Установите зависимости для разработки: uv sync --dev
  4. Внесите изменения и убедитесь, что тесты проходят
  5. Отформатируйте код: uv run black .
  6. Отправьте pull request

Контакты и поддержка

По вопросам поддержки или доступа к API посетите https://urldna.io или напишите на [email protected].