Smithery Logo
MCPsSkillsDocsPricing
Login
NewFlame, an assistant that learns and improves. Available onTelegramSlack
    aidotnet

    puppeteer

    aidotnet/puppeteer
    DevOps
    68

    About

    SKILL.md

    Install

    • Telegram
      Telegram
    • Slack
      Slack
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    • Download skill
    ├─
    ├─
    └─
    Smithery Logo

    Give agents more agency

    Resources

    DocumentationPrivacy PolicySystem Status

    Company

    PricingAboutBlog

    Connect

    © 2026 Smithery. All rights reserved.

    About

    使用Puppeteer(Google)进行浏览器自动化和PDF生成。支持无头Chrome控制,用于网页爬虫、截图、PDF生成和自动化测试。

    SKILL.md

    Puppeteer Tool

    Description

    Headless Chrome/Chromium automation for PDF generation, screenshots, web scraping, and testing.

    Source

    • Repository: puppeteer/puppeteer
    • License: Apache-2.0
    • Maintainer: Google

    Installation

    npm install puppeteer
    

    Usage Examples

    Generate PDF from HTML

    import puppeteer from 'puppeteer';
    
    async function generatePDF(html: string, outputPath: string) {
      const browser = await puppeteer.launch();
      const page = await browser.newPage();
      
      await page.setContent(html, { waitUntil: 'networkidle0' });
      
      await page.pdf({
        path: outputPath,
        format: 'A4',
        margin: { top: '20mm', right: '20mm', bottom: '20mm', left: '20mm' },
        printBackground: true,
      });
      
      await browser.close();
    }
    
    // Usage
    const html = `
      <html>
        <head><style>body { font-family: Arial; }</style></head>
        <body><h1>Invoice #001</h1><p>Total: $100.00</p></body>
      </html>
    `;
    await generatePDF(html, 'invoice.pdf');
    

    Take Screenshot

    async function takeScreenshot(url: string, outputPath: string) {
      const browser = await puppeteer.launch();
      const page = await browser.newPage();
      
      await page.setViewport({ width: 1920, height: 1080 });
      await page.goto(url, { waitUntil: 'networkidle2' });
      
      await page.screenshot({
        path: outputPath,
        fullPage: true,
        type: 'png',
      });
      
      await browser.close();
    }
    

    Web Scraping

    async function scrapeData(url: string) {
      const browser = await puppeteer.launch();
      const page = await browser.newPage();
      
      await page.goto(url, { waitUntil: 'domcontentloaded' });
      
      const data = await page.evaluate(() => {
        const items = document.querySelectorAll('.product');
        return Array.from(items).map(item => ({
          title: item.querySelector('h2')?.textContent?.trim(),
          price: item.querySelector('.price')?.textContent?.trim(),
        }));
      });
      
      await browser.close();
      return data;
    }
    

    Form Automation

    async function submitForm(url: string, formData: Record<string, string>) {
      const browser = await puppeteer.launch({ headless: false });
      const page = await browser.newPage();
      
      await page.goto(url);
      
      // Fill form fields
      for (const [selector, value] of Object.entries(formData)) {
        await page.type(selector, value);
      }
      
      // Submit
      await page.click('button[type="submit"]');
      await page.waitForNavigation();
      
      await browser.close();
    }
    

    PDF Options

    interface PDFOptions {
      path?: string;
      scale?: number;                    // 0.1 - 2, default 1
      displayHeaderFooter?: boolean;
      headerTemplate?: string;
      footerTemplate?: string;
      printBackground?: boolean;
      landscape?: boolean;
      pageRanges?: string;               // '1-5, 8, 11-13'
      format?: 'Letter' | 'Legal' | 'A4' | 'A3';
      width?: string;
      height?: string;
      margin?: { top, right, bottom, left };
    }
    

    Tags

    browser, pdf, screenshot, automation, scraping

    Compatibility

    • Codex: ✅
    • Claude Code: ✅
    Recommended Servers
    Bright Data
    Bright Data
    URL Safety Validator MCP
    URL Safety Validator MCP
    Laddro Career
    Laddro Career
    Repository
    aidotnet/moyucode
    Files