aios-core
Version:
Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework
104 lines (90 loc) • 3.71 kB
YAML
tool:
schema_version: 1.0
id: browser
type: mcp
name: Browser Automation
version: 1.0.0
description: Puppeteer-based browser automation for web scraping, testing, and interaction with web applications
knowledge_strategy: declarative
capabilities:
- Navigate to URLs and take screenshots
- Execute JavaScript in browser context
- Click elements and fill forms
- Extract content from web pages
- Handle dynamic content and SPAs
- Capture network requests
- Manage cookies and local storage
- Perform automated testing
use_cases:
- web_scraping: "Extract data from dynamic websites"
- automated_testing: "Test web applications end-to-end"
- screenshot_capture: "Capture visual representations of pages"
- form_automation: "Automate form filling and submissions"
- spa_interaction: "Interact with single-page applications"
- performance_monitoring: "Capture network timing and metrics"
mcp_specific:
server_command: "npx -y @modelcontextprotocol/server-puppeteer"
transport: stdio
environment_variables:
- name: PUPPETEER_EXECUTABLE_PATH
required: false
description: "Optional path to Chrome/Chromium executable"
health_check:
method: tool_call
command: puppeteer_navigate
expected_response: "Navigation success"
timeout_ms: 30000
tools:
- id: puppeteer_navigate
description: "Navigate browser to a URL"
parameters:
- url: "URL to navigate to"
- waitUntil: "Navigation event to wait for (load, domcontentloaded, networkidle0, networkidle2)"
- id: puppeteer_screenshot
description: "Capture screenshot of current page"
parameters:
- name: "Filename for screenshot"
- fullPage: "Capture full scrollable page (default: false)"
- type: "Image format (png, jpeg, webp)"
- id: puppeteer_click
description: "Click an element on the page"
parameters:
- selector: "CSS selector for element to click"
- waitForNavigation: "Wait for navigation after click"
- id: puppeteer_fill
description: "Fill an input field"
parameters:
- selector: "CSS selector for input element"
- value: "Value to type into input"
- id: puppeteer_evaluate
description: "Execute JavaScript in browser context"
parameters:
- script: "JavaScript code to execute"
- args: "Optional arguments to pass to script"
- id: puppeteer_content
description: "Get HTML content of current page"
parameters: []
- id: puppeteer_pdf
description: "Generate PDF of current page"
parameters:
- path: "Filename for PDF"
- format: "Paper format (A4, Letter, etc.)"
- landscape: "Landscape orientation (default: false)"
best_practices:
- "Always navigate to page before interacting with elements"
- "Use appropriate waitUntil strategies for different page types"
- "Handle navigation timeouts gracefully"
- "Close browser instances when done to free resources"
- "Use headless mode for better performance unless debugging"
- "Respect robots.txt and rate limits when scraping"
security_considerations:
- "Be cautious when executing user-provided JavaScript"
- "Validate URLs before navigation"
- "Be aware of XSS risks in evaluated scripts"
- "Don't expose sensitive data in screenshots"
limitations:
- "Requires Chrome/Chromium installation"
- "Resource intensive for multiple concurrent browsers"
- "Some sites may block or detect automation"
- "Navigation can be slow for heavy pages"
- "May not work with all authentication flows"