Enables web crawling and endpoint discovery using ProjectDiscovery's Katana crawler, with support for JavaScript crawling, headless browsing, form extraction, XHR requests, and downloading JavaScript files from discovered URLs.
Katana MCP Server
MCP Server để tích hợp Katana web crawler của ProjectDiscovery với Claude Desktop.
Giới thiệu
Katana là một công cụ web crawling mạnh mẽ từ ProjectDiscovery, được thiết kế để khám phá các endpoints, đường dẫn và tài nguyên ẩn trên các trang web. MCP Server này cho phép Claude Desktop sử dụng Katana thông qua Model Context Protocol.
Yêu cầu
Python 3.10 trở lên
Go 1.21 trở lên (để cài đặt Katana)
Katana đã được cài đặt
Cài đặt
1. Cài đặt Katana
Kiểm tra cài đặt:
2. Cài đặt MCP Server
Clone repository này hoặc tải về code, sau đó:
3. Cấu hình Claude Desktop
Mở Claude Desktop và điều hướng đến:
File → Settings → Developer → Edit Config
Thêm cấu hình sau vào file config (thường ở %APPDATA%\Claude\claude_desktop_config.json trên Windows):
Lưu ý: Thay đổi đường dẫn /path/to/katana-server/katana_server.py cho phù hợp với hệ thống của bạn.
Trên Windows: Bạn có thể cần sử dụng đường dẫn đầy đủ đến Python:
Trên macOS/Linux:
4. Khởi động lại Claude Desktop
Sau khi cấu hình, khởi động lại Claude Desktop để áp dụng thay đổi.
Sử dụng
Sau khi cấu hình thành công, bạn có thể yêu cầu Claude sử dụng Katana để crawl các trang web:
Ví dụ sử dụng:
Crawl một URL đơn giản:
Hãy crawl trang web https://example.com bằng KatanaCrawl với các tùy chọn:
Crawl https://example.com với độ sâu 3, sử dụng headless browser và crawl JavaScriptCrawl nhiều URLs:
Crawl các URLs sau: https://example.com, https://test.com với độ sâu 2Kiểm tra version Katana:
Kiểm tra phiên bản Katana đã cài đặt
Các Tools có sẵn
1. katana_crawl
Crawl một URL hoặc danh sách URLs với các tùy chọn (đã được tinh chỉnh mạnh cho pentest):
url: URL mục tiêu (bắt buộc, nếu không dùngurls)urls: Danh sách URLs (tùy chọn, thay thế chourl)depth: Độ sâu crawl (mặc định: 5)concurrency: Số requests đồng thời (mặc định: 10)scope: Phạm vi crawl -subs,folder,domain,any(mặc định:folder)headless: Sử dụng headless browser (mặc định: true, bật-hl)js_crawl: Crawl JavaScript files (mặc định: true, bật-jc)js_links: Crawl JavaScript links (mặc định: true, bật-jsl)xhr: Crawl XHR requests (mặc định: true, bật-xhr)keep_form_data: Giữ form data (mặc định:all, tương ứng-kf all)form_extract: Trích xuất form (mặc định: true, bật-fx)form_submit: Kiểu submit form (mặc định:dn, tương ứng-fs dn)filter_format: Định dạng filter output (mặc định:qurl, tương ứng-f qurl)form_fill: Tự động điền form (ví dụ:"username=admin&password=admin")output_format:jsonhoặctext(mặc định:json)store_response: Lưu response body (mặc định:false, bật-store-responsenếutrue)store_response_dir: Thư mục lưu responses (kết hợp vớistore_response)filter_status: Lọc theo status code (ví dụ:"200,301,302", tương ứng-fc)filter_regex: Lọc URLs theo regex riêng (được map sang flag khác để tránh xung đột với-f qurl)exclude_regex: Loại trừ URLs theo regex riêngexclude_file_extensions: Danh sách đuôi file cần bỏ qua (mặc định:woff,css,png,svg,jpg,woff2,jpeg,gif,svg, tương ứng-ef)
2. katana_crawl_from_file
Crawl từ file chứa danh sách URLs:
file_path: Đường dẫn đến file (bắt buộc)depth: Độ sâu crawl (mặc định: 5)concurrency: Số requests đồng thời (mặc định: 10)scope: Phạm vi crawl (subs,folder,domain,any, mặc định:folder)output_format: Định dạng output (jsonhoặctext, mặc định:json)
3. katana_check_version
Kiểm tra phiên bản Katana đã cài đặt.
4. katana_download_js
Chạy Katana để crawl, lọc toàn bộ URL file JavaScript (.js) và tải toàn bộ file JS đó về thư mục trên máy:
url: URL gốc để crawl JS (ví dụ:https://example.com)urls: Danh sách nhiều URL để crawl JS (mỗi phần tử là một URL)file_path: Đường dẫn đến file chứa danh sách URL (mỗi dòng một URL)depth: Độ sâu crawl (mặc định: 5)scope: Phạm vi crawl (subs,folder,domain,any, mặc định:folder)concurrency: Số lượng requests đồng thời của Katana (mặc định: 10)output_dir: Thư mục để lưu các file JS tải về (mặc định:katana_js_downloads)timeout: Timeout (giây) cho mỗi request tải JS (mặc định: 20)max_files: Giới hạn số lượng file JS tối đa cần tải (mặc định: 200,0= không giới hạn)
Kết quả trả về sẽ bao gồm:
Tổng số URL
.jsphát hiện được từ KatanaSố file JS đã cố gắng tải / tải thành công / bị lỗi
Thư mục lưu file JS
Một số file JS đã tải và một số lỗi (nếu có)
Ví dụ nâng cao
Crawl với JavaScript và Headless Browser:
Crawl và lưu responses:
Crawl với filter:
Troubleshooting
Lỗi: "Katana chưa được cài đặt"
Đảm bảo Katana đã được cài đặt và có trong PATH
Kiểm tra bằng lệnh:
katana --version
Lỗi: "Command not found"
Kiểm tra đường dẫn đến Python trong config
Đảm bảo file
katana_server.pycó quyền thực thi
Lỗi kết nối MCP
Khởi động lại Claude Desktop
Kiểm tra log trong Claude Desktop để xem lỗi chi tiết
Đảm bảo Python và các dependencies đã được cài đặt đúng
Tài liệu tham khảo
License
MIT License