Decodo

ทางการ

การเข้าถึงข้อมูลเว็บอย่างง่ายดาย การดึงข้อมูลจากเว็บไซต์และแหล่งข้อมูลออนไลน์ที่เรียบง่ายขึ้น

GitHub
37
ลองใช้ MCP นี้ผู้สนับสนุน

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

  • Scrape หน้าเว็บใด ๆ เป็น Markdown — ขอให้ผู้ช่วยของคุณดึงข้อมูลจาก URL และส่งคืนเนื้อหาที่สะอาด พร้อมใช้งานกับ LLM ผ่าน scrape_as_markdown
  • จับภาพหน้าจอเว็บเพจ — ขอภาพ PNG ของเว็บไซต์ใด ๆ โดยเลือกประเทศต้นทางได้ ผ่านเครื่องมือ screenshot
  • ค้นหา Google และ Bing — รับผลการค้นหาจากเครื่องมือค้นหาที่แยกวิเคราะห์แล้วสำหรับคำค้นใด ๆ รวมถึงโฆษณา โหมด AI และ Google Lens ผ่าน google_search, bing_search และเครื่องมือที่เกี่ยวข้อง
  • ติดตามสินค้าและราคา eCommerce — ดึงรายละเอียดสินค้า ราคา ผู้ขาย และสินค้าขายดีจาก Amazon, Walmart, Target และ TikTok Shop
  • เก็บข้อมูลโซเชียลมีเดีย — ดึงโพสต์ โปรไฟล์ผู้ใช้ วิดีโอช่อง และคำบรรยายจาก Reddit, TikTok และ YouTube
  • สอบถามเครื่องมือค้นหา AI — ถาม ChatGPT หรือ Perplexity เพื่อรับคำตอบและการสนทนาที่สร้างโดย AI ผ่านชุดเครื่องมือ ai

เอกสาร

เซิร์ฟเวอร์ Decodo MCP

Install MCP Server

เชื่อมต่อ LLM และเอเจนต์ AI เข้ากับข้อมูลเว็บแบบเรียลไทม์โดยใช้ MCP (Model Context Protocol) เซิร์ฟเวอร์ Decodo MCP ช่วยให้คุณดึงข้อมูลจากเว็บไซต์ เสิร์ชเอนจิน แพลตฟอร์มอีคอมเมิร์ซ และโซเชียลมีเดียได้โดยตรงจาก เครื่องมือ AI เช่น Claude, Cursor และ Windsurf โดยไม่จำเป็นต้องสร้างโครงสร้างพื้นฐานสำหรับการดึงข้อมูล ขึ้นมาเองตั้งแต่ต้น

  • ผลลัพธ์ที่มีโครงสร้างในรูปแบบ JSON, Markdown และภาพหน้าจอ
  • การเรนเดอร์ JavaScript ฝั่งเซิร์ฟเวอร์และการจัดการระบบป้องกันบอท
  • IP มากกว่า 125 ล้านรายการใน 195+ ตำแหน่งที่ตั้ง

เซิร์ฟเวอร์ Decodo MCP คืออะไร?

เซิร์ฟเวอร์ Decodo MCP เป็นชั้นการดึงข้อมูลเว็บสำหรับเอเจนต์ AI โดยเชื่อมต่อไคลเอนต์ที่รองรับ MCP เข้ากับ Web Scraping API ของ Decodo ซึ่งช่วยให้:

  • ดึงข้อมูลเว็บสำหรับ LLM
  • ดึงข้อมูลแบบเรียลไทม์สำหรับ RAG
  • เอเจนต์ AI เรียกดูและค้นคว้าข้อมูล
  • แยกข้อมูลที่มีโครงสร้างจากเว็บไซต์แบบไดนามิก

แทนที่จะต้องดูแลพร็อกซี ตัวแยกวิเคราะห์ และตรรกะการลองใหม่ คุณจะได้จุดเชื่อมต่อเดียว สำหรับการเข้าถึงข้อมูลเว็บที่เชื่อถือได้

ทำไมต้องใช้ MCP สำหรับการดึงข้อมูลเว็บ?

Model Context Protocol (MCP) เป็นมาตรฐานใหม่ที่กำลังเกิดขึ้นสำหรับการเชื่อมต่อเอเจนต์ AI เข้ากับเครื่องมือภายนอกและ แหล่งข้อมูล ด้วย MCP:

  • เอเจนต์สามารถเรียกใช้เครื่องมือได้แบบไดนามิก
  • การผสานรวมยังคงเป็นมาตรฐานเดียวกัน
  • เวิร์กโฟลว์สามารถขยายขนาดได้ในทุกสภาพแวดล้อม

เซิร์ฟเวอร์ Decodo MCP มอบการเข้าถึงเว็บที่เชื่อถือได้และพร้อมใช้งานจริงให้กับเอเจนต์ของคุณผ่านมาตรฐานนี้

คุณสมบัติหลัก

การดึงข้อมูลเว็บสำหรับเอเจนต์ AI โดยไม่ต้องมีโครงสร้างพื้นฐาน ดึงข้อมูลจากเว็บไซต์ใดก็ได้ รวมถึง หน้าที่ใช้ JavaScript จำนวนมาก โดยไม่ต้องจัดการการหมุนพร็อกซี การแก้ CAPTCHA หรือระบบป้องกันบอท

ผลลัพธ์ที่มีโครงสร้างสำหรับเวิร์กโฟลว์ LLM Markdown (พร้อมสำหรับ LLM), JSON (สำหรับไปป์ไลน์ที่มีโครงสร้าง) และ ภาพหน้าจอ (สำหรับบริบทภาพ) สร้างขึ้นสำหรับไปป์ไลน์ RAG เอเจนต์วิจัย AI และโฟลว์อัตโนมัติ

รองรับเป้าหมายยอดนิยมในตัว เครื่องมือพร้อมใช้สำหรับ Google และ Bing (SERPs), Amazon, Walmart และ Target (อีคอมเมิร์ซ), Reddit, TikTok และ YouTube (โซเชียลมีเดีย) และ ChatGPT และ Perplexity (การค้นหา AI)

โครงสร้างพื้นฐานพร็อกซีทั่วโลก IP ที่พักอาศัยมากกว่า 125 ล้านรายการ 195+ ตำแหน่งที่ตั้งทางภูมิศาสตร์ และอัตรา ความสำเร็จ 99.99% แม้กับเป้าหมายที่ได้รับการป้องกันมากที่สุด

ชุดเครื่องมือ MCP แบบโมดูลาร์ เปิดใช้เฉพาะสิ่งที่คุณต้องการ: web, search, ecommerce, social_media, ai เพื่อการเลือกเครื่องมือที่สะอาดขึ้นและประสิทธิภาพของเอเจนต์ที่ดีขึ้น

รวดเร็วสู่คุณค่า จากคีย์ API ไปจนถึงการดึงข้อมูลครั้งแรกในไม่กี่นาที โดยไม่มีค่าใช้จ่ายในการตั้งค่า

กรณีการใช้งาน

ใช้เซิร์ฟเวอร์ Decodo MCP เมื่อคุณต้องการการดึงข้อมูลเว็บสำหรับเอเจนต์ AI การแยกข้อมูลที่มีโครงสร้างใน ระดับขนาดใหญ่ การเข้าถึงเว็บไซต์แบบไดนามิกที่เชื่อถือได้ ข้อมูลแบบเรียลไทม์สำหรับ RAG หรือทางเลือกแทนการสร้าง โครงสร้างพื้นฐานการดึงข้อมูลขึ้นมาเอง สถานการณ์ทั่วไป:

  • การดึงข้อมูลเว็บที่ขับเคลื่อนด้วย AI – ให้ LLM สามารถรวบรวมข้อมูลสดแทนการพึ่งพา ข้อมูลฝึกอบรมแบบคงที่
  • RAG ด้วยข้อมูลสด – ดึงผลการค้นหา Google, Bing และ AI แบบเรียลไทม์เข้าสู่ไปป์ไลน์ การดึงข้อมูล
  • ข้อมูลเชิงลึกด้านอีคอมเมิร์ซ – ติดตามราคาสินค้า รายการ และผู้ขายในตลาดซื้อขายต่างๆ โดยไม่ถูกบล็อก
  • การรวบรวมข้อมูลโซเชียลมีเดีย – รวบรวมโพสต์ ช่อง และข้อมูลการมีส่วนร่วมจาก Reddit, TikTok และ YouTube
  • การรวมราคาการเดินทาง – สร้างเครื่องมือที่รวบรวมราคาและความพร้อมใช้งานสดจาก เว็บไซต์ต่างๆ

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

  1. สร้างบัญชีฟรี ที่ dashboard.decodo.com – รับคำขอฟรีสูงสุด 2K รายการ ไม่ต้องใช้บัตรเครดิต
  2. รับคีย์ API ของคุณ รับโทเค็นการตรวจสอบสิทธิ์พื้นฐานของ Web Scraping API จากแดชบอร์ด
  3. ดาวน์โหลด Node.js 18+ จาก https://nodejs.org.
  4. รับไคลเอนต์ MCP เช่น Claude Desktop, Cursor, Windsurf หรือเครื่องมืออื่นๆ ที่รองรับ MCP
  5. กำหนดค่าเซิร์ฟเวอร์ MCP ในไคลเอนต์ AI ของคุณ (ดูตัวอย่างการกำหนดค่าด้านล่าง)

การเชื่อมต่อกับ เซิร์ฟเวอร์ MCP ของ Decodo

เปิดไคลเอนต์ MCP ที่คุณต้องการและเพิ่มการกำหนดค่าต่อไปนี้ (ดูตัวอย่างสำหรับ Claude Code, Cursor, Windsurf ด้านล่าง):

{
  "mcpServers": {
    "Decodo": {
      "url": "https://mcp.decodo.com/mcp",
      "headers": {
        "Authorization": "Basic <basic_auth_token>"
      }
    }
  }
}

Claude Desktop

  1. เปิด Claude Desktop → การตั้งค่า → นักพัฒนา → แก้ไขการกำหนดค่า
  2. เพิ่มลงใน claude_desktop_config.json:
{
  "mcpServers": {
    "Decodo": {
      "command": "npx",
      "args": ["-y", "@decodo/mcp-server"],
      "env": {
        "SCRAPER_API_TOKEN": "<basic_auth_token>",
        "TOOLSETS": "web,ai"
      }
    }
  }
}
  1. บันทึกและรีสตาร์ท Claude Desktop

Cursor

  1. เปิดการตั้งค่า → MCP
  2. คลิกเพิ่มเซิร์ฟเวอร์ MCP ใหม่ทั่วโลก (เปิด mcp.json)
  3. เพิ่มการกำหนดค่าเดียวกันกับด้านบน
  4. บันทึก — มองหาตัวบ่งชี้สถานะสีเขียวถัดจาก Decodo

Windsurf

  1. เปิดการตั้งค่า → การตั้งค่า Windsurf
  2. เลื่อนไปที่ Cascade → เพิ่มเซิร์ฟเวอร์ที่กำหนดเอง + (เปิด mcp_config.json)
  3. เพิ่มการกำหนดค่าเดียวกันกับด้านบน
  4. บันทึกและรีสตาร์ท Windsurf

ทดสอบการตั้งค่าของคุณ

เมื่อเชื่อมต่อแล้ว ให้ลองใช้พรอมต์นี้ในไคลเอนต์ของคุณ:

▎ "ดึงชื่อบทความ 5 อันดับแรกจาก Hacker News"

คุณควรได้รับรายการที่มีโครงสร้างกลับมาภายในไม่กี่วินาที หากคุณเห็นข้อผิดพลาดการตรวจสอบสิทธิ์ ให้ตรวจสอบโทเค็นของคุณจากแดชบอร์ดอีกครั้ง

ไม่บังคับ: เปิดใช้ชุดเครื่องมือเฉพาะ

การรันเซิร์ฟเวอร์ MCP ในเครื่อง

ข้อกำหนดเบื้องต้น

  • Node.js 18.0+
  • ไคลเอนต์ MCP - ตัวเลือกยอดนิยมคือ Claude Desktop และ Cursor

คำแนะนำทีละขั้นตอน

  1. โคลนพื้นที่เก็บข้อมูลนี้:
git clone https://github.com/Decodo/mcp-server
  1. รันคำสั่งต่อไปนี้ในเทอร์มินัล:
cd decodo-mcp-server
npm install
npm run build
  1. จดตำแหน่งบิลด์ของคุณ:
cd build/
pwd

การเพิ่ม index.js ต่อท้ายไดเรกทอรีนี้ ตำแหน่งไฟล์บิลด์ของคุณควรมีลักษณะดังนี้:

/Users/your.user/projects/decodo-mcp/build/index.js
  1. อัปเดตไคลเอนต์ MCP ของคุณด้วยข้อมูลเซิร์ฟเวอร์:
{
  "mcpServers": {
    "decodo-mcp": {
      "command": "node",
      "args": ["/Users/your.user/projects/decodo-mcp/build/index.js"],
      "env": {
        "SCRAPER_API_TOKEN": "<web_scraping_api_base64_token>"
      }
    }
  }
}

ชุดเครื่องมือ

เครื่องมือถูกจัดระเบียบเป็นชุดเครื่องมือ คุณสามารถเปิดใช้ชุดเครื่องมือเฉพาะได้โดยการส่ง รายการที่คั่นด้วยเครื่องหมายจุลภาคผ่านพารามิเตอร์คิวรี toolsets:

    "Decodo MCP Server": {
      "url": "https://mcp.decodo.com/mcp?toolsets=web,ai",
      "headers": {
        "Authorization": "Basic <your_auth_token>"
      }
    }

เมื่อไม่ระบุชุดเครื่องมือ เครื่องมือทั้งหมดจะถูกลงทะเบียน

ชุดเครื่องมือเครื่องมือ
webscrape_as_markdown, screenshot
searchgoogle_search, google_ads, google_lens, google_travel_hotels, bing_search
ecommerceamazon_search, amazon_product, amazon_pricing, amazon_sellers, amazon_bestsellers, walmart_search, walmart_product, target_search, target_product, tiktok_shop_search, tiktok_shop_product, tiktok_shop_url
social_mediareddit_post, reddit_subreddit, reddit_user, tiktok_post, youtube_metadata, youtube_channel, youtube_subtitles, youtube_search
aichatgpt, perplexity, google_ai_mode

เครื่องมือ

เซิร์ฟเวอร์เปิดเผยเครื่องมือต่อไปนี้:

เครื่องมือคำอธิบายตัวอย่างพรอมต์
scrape_as_markdownดึงข้อมูลจาก URL เป้าหมายใด ๆ โดยคาดหวังให้ระบุ URL ผ่านพรอมต์ ผลลัพธ์จะถูกส่งกลับในรูปแบบ MarkdownScrape peacock.com from a US IP address and tell me the pricing.
screenshotจับภาพหน้าจอของเว็บเพจใด ๆ และส่งกลับเป็นภาพ PNGTake a screenshot of github.com from a US IP address.
google_searchดึงข้อมูลจาก Google Search สำหรับคำค้นหาที่กำหนด และส่งกลับผลลัพธ์ที่แยกวิเคราะห์แล้วScrape Google Search for shoes and tell me the top position.
google_adsดึงข้อมูลผลการค้นหา Google AdsScrape Google Ads for laptop and show me the top ads.
google_lensดึงข้อมูลผลการค้นหารูปภาพ Google LensSearch Google Lens for this image: https://example.com/image.jpg
google_ai_modeดึงข้อมูลผลการค้นหา Google AI Mode (Search with AI)Ask Google AI Mode: What are the top three dog breeds?
google_travel_hotelsดึงข้อมูลผลการค้นหาโรงแรม Google Travel HotelsSearch Google Travel Hotels for hotels in Paris.
amazon_searchดึงข้อมูลจาก Amazon Search สำหรับคำค้นหาที่กำหนด และส่งกลับผลลัพธ์ที่แยกวิเคราะห์แล้วScrape Amazon Search for wireless keyboard.
amazon_productดึงข้อมูลหน้าสินค้า AmazonScrape Amazon product B09H74FXNW and show me the details.
amazon_pricingดึงข้อมูลราคาสินค้า AmazonGet pricing for Amazon product B09H74FXNW.
amazon_sellersดึงข้อมูลผู้ขาย AmazonGet information about Amazon seller A1R0Z7FJGTKESH.
amazon_bestsellersดึงข้อมูลรายการสินค้าขายดี AmazonShow me Amazon bestsellers in electronics.
walmart_searchดึงข้อมูลจาก Walmart Search สำหรับคำค้นหาที่กำหนด และส่งกลับผลลัพธ์ที่แยกวิเคราะห์แล้วScrape Walmart Search for camping tent.
walmart_productดึงข้อมูลหน้าสินค้า WalmartScrape Walmart product 15296401808.
target_searchดึงข้อมูลจาก Target Search สำหรับคำค้นหาที่กำหนด และส่งกลับผลลัพธ์ที่แยกวิเคราะห์แล้วScrape Target Search for kitchen appliances.
target_productดึงข้อมูลหน้าสินค้า TargetScrape Target product 92186007.
tiktok_postดึงข้อมูลจาก URL โพสต์ TikTok สำหรับข้อมูลที่มีโครงสร้าง (เช่น การมีส่วนร่วม คำบรรยาย แฮชแท็ก)Scrape this TikTok post: https://www.tiktok.com/@nba/video/7393013274725403950
tiktok_shop_searchดึงข้อมูลจาก TikTok Shop Search สำหรับคำค้นหาที่กำหนด และส่งกลับผลลัพธ์ที่แยกวิเคราะห์แล้วScrape TikTok Shop Search for phone cases.
tiktok_shop_productดึงข้อมูลหน้าสินค้า TikTok ShopScrape TikTok Shop product 1731541214379741272.
tiktok_shop_urlดึงข้อมูลหน้า TikTok Shop ตาม URLScrape this TikTok Shop URL: https://www.tiktok.com/shop/s?q=HEADPHONES
youtube_metadataดึงข้อมูลเมตาดาตาของวิดีโอ YouTubeGet metadata for YouTube video dFu9aKJoqGg.
youtube_channelดึงข้อมูลวิดีโอจากช่อง YouTubeScrape YouTube channel @decodo_official.
youtube_subtitlesดึงข้อมูลคำบรรยายวิดีโอ YouTubeGet subtitles for YouTube video L8zSWbQN-v8.
youtube_searchค้นหาวิดีโอ YouTubeSearch YouTube for "How to care for chinchillas".
reddit_postดึงข้อมูลโพสต์ Reddit เฉพาะScrape the following Reddit post: https://www.reddit.com/r/horseracing/comments/1nsrn3/
reddit_subredditดึงข้อมูลผลลัพธ์จาก subreddit บน RedditScrape the top 5 posts on r/Python this week.
reddit_userดึงข้อมูลโปรไฟล์ผู้ใช้ Reddit และโพสต์/ความคิดเห็นของพวกเขาScrape this Reddit user: https://www.reddit.com/user/IWasRightOnce/
bing_searchดึงข้อมูลผลการค้นหา BingSearch Bing for laptop reviews.
chatgptค้นหาและโต้ตอบกับ ChatGPT สำหรับการตอบกลับและการสนทนาที่ขับเคลื่อนด้วย AIAsk ChatGPT to explain quantum computing in simple terms.
perplexityค้นหาและโต้ตอบกับ Perplexity สำหรับการตอบกลับและการสนทนาที่ขับเคลื่อนด้วย AIAsk Perplexity what the latest trends in web development are.

พารามิเตอร์

พารามิเตอร์ต่อไปนี้ถูกอนุมานจากพรอมต์ของผู้ใช้:

พารามิเตอร์คำอธิบาย
jsRenderแสดงผล URL เป้าหมายในเบราว์เซอร์แบบไม่มีส่วนหัว
geoกำหนดประเทศที่คำขอจะถูกส่งออกไป
localeกำหนด locale ของคำขอ
tokenLimitตัดทอนเนื้อหาการตอบกลับจนถึงขีดจำกัดนี้ มีประโยชน์หากหน้าต่างบริบทมีขนาดเล็ก
promptพรอมต์ที่จะส่งไปยังเครื่องมือ AI (chatgpt, perplexity)
searchเปิดใช้งานฟังก์ชันการค้นหาเว็บของ ChatGPT (เฉพาะ chatgpt)
xhrเมื่อเป็น true จะรวมการตอบกลับ XHR หรือ fetch ในผลการดึงข้อมูลในกรณีที่รองรับ (เช่น tiktok_post)
deviceTypeประเภทอุปกรณ์ที่จะจำลอง (desktop, mobile, tablet) เป้าหมายที่แยกวิเคราะห์จะเข้มงวดกว่า: เครื่องมือ Amazon รองรับเฉพาะเดสก์ท็อปจึงละเว้นพารามิเตอร์นี้ และ bing_search/google_ai_mode รับเฉพาะ desktop และ mobile เท่านั้น
domainโดเมนที่จะใช้สำหรับคำขอ (เช่น amazon.com, amazon.co.uk, bing.com)
pageFromหมายเลขหน้าเริ่มต้นสำหรับการแบ่งหน้า
deliveryZipรหัสไปรษณีย์สำหรับสถานที่จัดส่ง (Target, Walmart)
storeIdรหัสร้านค้าสำหรับสินค้าคงคลังในพื้นที่ (Walmart)
countryประเทศสำหรับคำขอ TikTok Shop
limitจำนวนผลลัพธ์สูงสุดที่จะส่งกลับ (เช่น วิดีโอจากช่อง YouTube)
language_codeรหัสภาษาสำหรับคำบรรยาย (เช่น en, es)

ตัวอย่าง

การดึงข้อมูลเนื้อหาที่จำกัดตามภูมิภาค

สอบถามเอเจนต์ AI ของคุณด้วยพรอมต์ต่อไปนี้:

Scrape peacock.com from a German IP address and tell me the pricing.

พรอมต์นี้จะบอกว่า peacock.com ถูกจำกัดตามภูมิภาค หากต้องการบายพาสการจำกัดตามภูมิภาค:

Scrape peacock.com from a US IP address and tell me the pricing.

การจำกัดจำนวนโทเค็นการตอบกลับ

หากเอเจนต์ของคุณมีหน้าต่างบริบทขนาดเล็ก เนื้อหาที่ส่งกลับจากการดึงข้อมูลจะถูกตัดทอนโดยอัตโนมัติ เพื่อหลีกเลี่ยงการล้นของบริบท คุณสามารถเพิ่มจำนวนโทเค็นที่ส่งกลับภายใน พรอมต์ของคุณ:

Scrape hacker news, return 50k tokens.

หากเอเจนต์ของคุณมีหน้าต่างบริบทขนาดใหญ่ ให้บอกให้ส่งกลับ full content:

Scrape hacker news, return full content.

การใช้งานร่วมกับทักษะเอเจนต์ Decodo

เซิร์ฟเวอร์นี้ให้ เครื่องมือ การดึงข้อมูลแก่เอเจนต์ของคุณ Decodo/agent-skills สอนให้เอเจนต์รู้ว่าเมื่อใดควรใช้เครื่องมือเหล่านี้ พื้นผิวใด ที่ควรใช้ และวิธีเรียกใช้ — เพื่อให้เอเจนต์ เลือกเครื่องมือและพารามิเตอร์ที่ถูกต้องได้ด้วยตัวเองแทนการเดา

ทักษะเหล่านี้ทำงานร่วมกับ decodo CLI เซิร์ฟเวอร์ MCP ที่โฮสต์นี้ และ HTTP API ดิบ และจะย้อนกลับ ไปยังเซิร์ฟเวอร์ MCP โดยอัตโนมัติเมื่อไม่มีเชลล์ การจับคู่ทั้งสองอย่างทำให้เอเจนต์ของคุณมีทั้ง เลเยอร์การดำเนินการ (เซิร์ฟเวอร์นี้) และเลเยอร์การตัดสินใจ (ทักษะ) ในการตั้งค่าเดียว

เริ่มต้นอย่างรวดเร็ว (Claude Code):

/plugin marketplace add Decodo/agent-skills
/plugin install decodo@decodo-skills

ดู agent-skills README สำหรับการติดตั้งด้วยตนเองและ เอเจนต์อื่น ๆ (Cursor, Codex, Gemini CLI, Windsurf)

ที่เก็บข้อมูลที่เกี่ยวข้อง

Web Scraping API, Decodo agent skills, Decodo OpenClaw skill

ทดลองใช้

เชื่อมต่อ Decodo MCP Server เข้ากับเวิร์กโฟลว์ AI ของคุณได้ในไม่กี่คลิก และติดตั้งข้อมูลแบบเรียลไทม์จากเว็บไซต์ใด ๆ ให้กับเอเจนต์ AI ของคุณ

เริ่มต้นฟรี | เอกสาร | Discord

สัญญาอนุญาต

โค้ดทั้งหมดเผยแพร่ภายใต้ MIT License