CertIndex MCP

ทางการ

MCP เซิร์ฟเวอร์ certificate-transparency เพียงหนึ่งเดียว ค้นหาใบรับรอง TLS กว่า 2.15B+ ตรวจสอบโดเมนเพื่อการออกใหม่ สตรีม CT firehose ระดับโลกไปยังเอเจนต์ของคุณ

คุณทำอะไรได้บ้างด้วย CertIndex MCP?

  • ค้นหาข้อมูลใบรับรองความโปร่งใส — ขอใบรับรอง TLS ที่ถูกจัดทำดัชนีสำหรับโดเมน, CN, ผู้ออกใบรับรอง, SAN หรือสถานะ wildcard ผ่านทาง search_certificates
  • ดึงรายละเอียดใบรับรอง — ดึงข้อมูล PEM เต็มรูปแบบและเมตาดาต้าของ CT log สำหรับใบรับรองเดียวโดยใช้ลายนิ้วมือ SHA-256 ผ่านทาง get_certificate
  • แจกแจงซับโดเมน — แสดงรายการซับโดเมนที่ไม่ซ้ำกันที่พบใน CT สำหรับโดเมน พร้อมการแบ่งหน้าแบบ cursor ผ่านทาง get_subdomains
  • ติดตามการหมดอายุของใบรับรอง — ค้นหาใบรับรองที่กำลังจะหมดอายุภายในจำนวนวันที่ระบุสำหรับโดเมนโดยใช้ get_expiring_certs
  • รันการสแกนทั่วโลก — ส่งการสแกน substring แบบ async ทั่วทั้งดัชนีสำหรับรูปแบบ CN/SAN ผ่านทาง submit_global_sweep จากนั้นตรวจสอบผลลัพธ์ด้วย get_sweep_results
  • ตรวจสอบการใช้งาน API — ตรวจสอบระดับของคุณ การใช้งานปัจจุบัน โควตาที่เหลือ และสิทธิ์ที่ได้รับด้วย get_usage

เอกสาร

certindex-mcp

CI PyPI License: MIT

เซิร์ฟเวอร์ MCP (Model Context Protocol) ที่เปิดเผยเครื่องมือค้นหา Certificate Transparency ของ CertIndex ให้กับไคลเอนต์ที่รองรับ MCP ทุกประเภท (Claude Desktop, MCP Inspector, Continue และอื่นๆ)

CertIndex รับใบรับรองโดยตรงจากล็อก Certificate Transparency สาธารณะ และให้บริการจากดัชนีของตัวเอง การเติมข้อมูลย้อนหลังทางประวัติศาสตร์ยังอยู่ระหว่างดำเนินการ ดังนั้นผลลัพธ์ โดยเฉพาะใบรับรองที่เก่ากว่า อาจไม่สมบูรณ์ เซิร์ฟเวอร์นี้ ครอบคลุม REST API สาธารณะของ CertIndex เพื่อให้ LLM สามารถถามคำถาม เช่น:

  • "แสดงรายการใบรับรอง TLS ที่ CertIndex จัดทำดัชนีสำหรับ example.com"
  • "Let's Encrypt เห็นซับโดเมนใดบ้างสำหรับ mycompany.io"
  • "แสดงใบรับรองที่หมดอายุภายใน 30 วันข้างหน้าสำหรับ api.mycompany.io"
  • "ดึงข้อมูล PEM เต็มรูปแบบและเมตาดาต้าล็อก CT สำหรับ SHA-256 <fingerprint>"

เหตุผลที่เรโพนี้มีอยู่

โมโนเรโพ CertIndex รวมเซิร์ฟเวอร์ MCP (ติดตั้งที่ https://api.ctindex.io/mcp) ที่สื่อสารโดยตรงกับดัชนี Postgres สำหรับการผลิต แพ็กเกจแบบสแตนด์อโลนนี้เป็น ชิมฝั่งไคลเอนต์ แบบบาง: มันพูด MCP กับเอดิเตอร์/เอเจนต์ของคุณ และส่งต่อการเรียกเครื่องมือทุกครั้ง ไปยัง REST API ของ CertIndex ที่โฮสต์ผ่าน HTTPS ผลที่ตามมาสองประการ:

  1. คุณไม่จำเป็นต้องมีสำเนาของดัชนี — สมัครรับคีย์ API ฟรี ที่ https://ctindex.io แล้วเสร็จสิ้น
  2. แพ็กเกจมีการพึ่งพาขนาดเล็กมาก (mcp, httpx, pydantic) — ตรวจสอบง่าย จัดการง่าย ไม่ต้องใช้ไดรเวอร์ฐานข้อมูล

การติดตั้ง

เวอร์ชัน 0.3.0 ใช้ MCP Python SDK 2.x (mcp>=2,<3) และ Python 3.11+ คำสั่งคอนโซล ตัวแปรสภาพแวดล้อม และชื่อเครื่องมือสิบรายการไม่มีการเปลี่ยนแปลง สำหรับแอปพลิเคชันที่ต้องคง SDK 1.x ไว้ ให้ใช้ certindex-mcp==0.2.1

pip install certindex-mcp

หรือใช้ uvx สำหรับการใช้งานครั้งเดียว:

uvx certindex-mcp

หากต้องการติดตั้งเวอร์ชันพัฒนาล่าสุดจากซอร์สโค้ดแทน:

pip install git+https://github.com/certindex/certindex-mcp

เริ่มต้นใช้งานอย่างรวดเร็ว — Claude Desktop

เพิ่มใน ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) หรือ %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "certindex": {
      "command": "uvx",
      "args": ["certindex-mcp"],
      "env": {
        "CERTINDEX_API_KEY": "ctx_live_..."
      }
    }
  }
}

รีสตาร์ท Claude Desktop เครื่องมือ CertIndex สิบรายการจะปรากฏในถาดเครื่องมือ

เครื่องมือ

เครื่องมือสิบรายการ ตรงกับเซิร์ฟเวอร์ MCP ของ CertIndex ที่โฮสต์แบบ 1:1:

เครื่องมือฟังก์ชันพารามิเตอร์ที่สำคัญ
search_certificatesค้นหาดัชนี CT ตามโดเมน CN ผู้ออกใบรับรอง SAN ความถูกต้อง หรือสถานะไวลด์การ์ดdomain, cn, issuer, san, expired, is_wildcard, page/limit
get_certificateดึงใบรับรองเดียวตามลายนิ้วมือ SHA-256sha256, include_enrichment
get_domain_certificatesใบรับรองที่จัดทำดัชนีสำหรับโดเมนที่แน่นอนvalid_only, include_enrichment, include_signals (แผนแบบชำระเงิน), page/limit
get_subdomainsแสดงรายการซับโดเมนที่ไม่ซ้ำที่พบใน CTออฟเซ็ต (page/limit) หรือ โหมดเคอร์เซอร์แบบคีย์เซ็ต — ส่ง cursor="" เพื่อเริ่ม จากนั้นป้อนกลับ next_cursor ของแต่ละการตอบสนอง
get_latest_certใบรับรองที่ถูกต้องปัจจุบันล่าสุดสำหรับโดเมนinclude_enrichment, include_signals, include_precerts (ให้พรีเซอร์ติฟิเคตแข่งขันเป็น "ล่าสุด")
get_expiring_certsใบรับรองสำหรับโดเมนที่หมดอายุภายใน days วันdays
submit_global_sweepส่งการสแกนแบบอะซิงโครนัสแบบไม่มีโดเมนสำหรับสตริงย่อย CN/SAN ทั่วทั้งดัชนี (POST /v1/sweeps)cn/san_contains (3+ อักขระ ต้องมีอย่างน้อยหนึ่งรายการ), issuer, is_wildcard, is_precert, expired, first_seen_*/not_after_* ขอบเขตวันที่, strict_attribution, resume_token (การต่อเนื่องเกินขีดจำกัดผลลัพธ์)
get_sweep_resultsตรวจสอบงานสแกนและแบ่งหน้าผลลัพธ์เมื่อเสร็จสิ้น (GET /v1/sweeps/{id})sweep_id, page/limit (สูงสุด 1,000)
get_usageระดับของผู้เรียก การใช้งานปัจจุบัน โควตาคงเหลือ และสิทธิ์—
get_historical_backfill_statusตรวจสอบ / เริ่มการเติมข้อมูลย้อนหลังเชิงลึกแบบชำระเงินสำหรับโดเมนdomain

เริ่มต้นใช้งานอย่างรวดเร็ว — MCP Inspector

export CERTINDEX_API_KEY=ctx_live_...
npx @modelcontextprotocol/inspector uvx certindex-mcp

การกำหนดค่า

ตัวแปรสภาพแวดล้อมค่าเริ่มต้นคำอธิบาย
CERTINDEX_API_KEY(จำเป็น)คีย์ API CertIndex ของคุณ สร้างได้ที่ https://ctindex.io/app/keys
CERTINDEX_BASE_URLhttps://api.ctindex.ioการแทนที่สำหรับการติดตั้งแบบโฮสต์เอง / สเตจกิ้ง
CERTINDEX_TIMEOUT30หมดเวลาการร้องขอ HTTP ต่อคำขอ (วินาที)

ความปลอดภัย

การตรวจสอบอินพุต การจัดการขีดจำกัดอัตรา และท่าทีด้านซัพพลายเชนของเรา ได้รับการบันทึกไว้ใน SECURITY.md โปรดรายงานช่องโหว่ ไปที่ security@ctindex.io แทนการเปิดประเด็นสาธารณะ

การพัฒนา

git clone https://github.com/certindex/certindex-mcp
cd certindex-mcp
pip install -e ".[dev]"
pytest

CI ทำงานบน Python 3.11 / 3.12 / 3.13 ด้วยทั้ง SDK 2.0.0 และ เวอร์ชัน 2.x ล่าสุดที่อนุญาต นอกจากนี้ยังติดตั้ง wheel ที่สร้างแล้วในสภาพแวดล้อมใหม่ และทดสอบการเริ่มต้น การแจงนับเครื่องมือ และการเรียกผ่าน stdio จริง ฟิกซ์เจอร์ HTTP ทำงานบน loopback; การทดสอบไม่ต้องใช้ข้อมูลประจำตัวสำหรับการผลิต

สัญญาอนุญาต

MIT © ผู้มีส่วนร่วมของ CertIndex