{"url_pattern":"^https?://(www\\.)?baidu\\.com(/.*)?$","site_name":"baidu","allowed_domains":["baidu.com"],"tools":[{"name":"baidu_search","description":"百度搜索","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query"},"count":{"type":"string","description":"Number of results (default 10)"}},"required":["query"]},"handler":"(params) => {\n  const run = async function(args) {\n\n      const query = args.query;\n      if (!query) return {error: 'query is required'};\n      const count = args.count || 10;\n\n      const url = 'https://www.baidu.com/s?wd=' + encodeURIComponent(query) + '&rn=' + count;\n      const resp = await fetch(url, {credentials: 'include'});\n      if (!resp.ok) return {error: 'HTTP ' + resp.status};\n\n      const html = await resp.text();\n      const parser = new DOMParser();\n      const doc = parser.parseFromString(html, 'text/html');\n\n      const containers = doc.querySelectorAll('div.result, div.c-container');\n      const results = [];\n\n      containers.forEach(el => {\n        const titleEl = el.querySelector('h3 a') || el.querySelector('a[href]');\n        if (!titleEl) return;\n\n        const title = (titleEl.textContent || '').trim();\n        if (!title) return;\n\n        const href = titleEl.getAttribute('href') || '';\n\n        const snippetEl = el.querySelector('.c-abstract, .c-span-last, span.content-right_8Zs40');\n        let snippet = '';\n        if (snippetEl) {\n          snippet = (snippetEl.textContent || '').trim();\n        } else {\n          // fallback: grab text from common snippet containers\n          const fallback = el.querySelector('span[class*=\"content\"], div[class*=\"abstract\"]');\n          if (fallback) snippet = (fallback.textContent || '').trim();\n        }\n\n        results.push({\n          title: title,\n          url: href,\n          snippet: snippet.substring(0, 300)\n        });\n      });\n\n      return {\n        query: query,\n        count: results.length,\n        results: results\n      };\n  };\n  return run(params || {});\n}"}]}