urlDNA MCP Server
ทางการสแกนและวิเคราะห์ URL ที่อาจเป็นอันตรายแบบไดนามิกโดยใช้ urlDNA.io
เอกสาร
urlDNA MCP Server

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
เริ่มต้นอย่างรวดเร็ว
- โคลนและตั้งค่าโปรเจกต์:
git clone <repository-url>
cd urlDNA-mcp-server
uv sync
- รันเซิร์ฟเวอร์ MCP ในเครื่อง (โหมด stdio):
uv run python urldna_mcp/run.py
- รันเซิร์ฟเวอร์ 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
การมีส่วนร่วม
- Fork repository
- สร้าง branch ฟีเจอร์:
git checkout -b feature-name - ติดตั้ง dependencies สำหรับการพัฒนา:
uv sync --dev - ทำการเปลี่ยนแปลงของคุณและตรวจสอบให้แน่ใจว่าการทดสอบผ่าน
- จัดรูปแบบโค้ด:
uv run black . - ส่ง pull request
ติดต่อและสนับสนุน
สำหรับการสนับสนุนหรือการเข้าถึง API โปรดไปที่ https://urldna.io หรืออีเมล [email protected]