Back to Library
MCPDL
js • 1/27/2026
9
const axios = require('axios')
const cheerio = require('cheerio')
async function mcpedlSearch(query) {
try {
const { data } = await axios.get(`https://mcpedl.org/?s=${encodeURIComponent(query)}`, {
timeout: 30000,
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
},
})
const $ = cheerio.load(data)
const result = []
$('.g-block.size-20 article').each((i, el) => {
if (i >= 20) return
const title = $(el).find('.entry-title a').text().trim() || 'No title'
const link = $(el).find('.entry-title a').attr('href') || 'No link'
let image = $(el).find('.post-thumbnail img').attr('data-srcset') || $(el).find('.post-thumbnail img').attr('src') || 'No image'
if (image.includes(',')) {
image = image.split(',')[0].split(' ')[0]
}
const rating = $(el).find('.rating-wrapper span').text().trim() || 'No rating'
result.push({ title, link, image, rating })
})
return result
} catch (error) {
throw new Error('Failed to search MCPEDL.')
}
}
module.exports = { mcpedlSearch }