urlDNA MCP Server
官方使用 urlDNA.io 動態掃描並分析潛在的惡意網址。
文件
urlDNA MCP 伺服器

urlDNA MCP Server 為 OpenAI GPT-4.1 和 Claude Desktop 等以安全為導向的 LLM 代理程式提供原生工具使用能力,透過 API 直接與 urlDNA 威脅情報平台互動。
安裝與設定
本專案使用 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
快速入門
- 複製並設定專案:
git clone <repository-url>
cd urlDNA-mcp-server
uv sync
- 在本機執行 MCP 伺服器(stdio 模式):
uv run python urldna_mcp/run.py
- 以 SSE 模式執行 MCP 伺服器:
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
此伺服器可透過**伺服器傳送事件(SSE)**協定存取,支援 LLM 與後端工具之間的串流互動。
您可以直接將其與任何支援 MCP 規範的平台或 LLM(例如 Claude Desktop、OpenAI GPT-4.1)搭配使用。
支援的工具
掃描
| 工具 | 說明 |
|---|---|
fast_check | 即時檢查網址是否已掃描。回傳 SAFE / MALICIOUS / UNRATED。 |
new_scan | 提交網址進行完整掃描並等待結果(約 30~60 秒)。 |
get_scan | 透過 ID 擷取完整的掃描結果。 |
搜尋
| 工具 | 說明 |
|---|---|
search | 使用 CQL(自訂查詢語言)跨網域、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 | 擷取完整的 urlDNA OpenAPI 與文件。 |
與 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>替換為來自 https://urldna.io 的 API 金鑰。
設定完成後,您可以使用自然語言提示 Claude,例如:
「在 urlDNA 中搜尋標題類似 paypal 的惡意掃描結果」
「為來自義大利且被標記為惡意的行動裝置掃描建立已儲存查詢」
「顯示所有與 Google 品牌相關的掃描結果」
Claude 將自動呼叫正確的工具,並從 urlDNA 平台回傳結果。
搭配 OpenAI GPT-4.1 使用 MCP 伺服器
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
貢獻
- Fork 此儲存庫
- 建立功能分支:
git checkout -b feature-name - 安裝開發相依套件:
uv sync --dev - 進行您的變更並確保測試通過
- 格式化程式碼:
uv run black . - 提交 Pull Request
聯絡與支援
如需支援或 API 存取,請造訪 https://urldna.io 或寄送電子郵件至 [email protected]。