| name | content-extractor |
| description | Extract structured content from web pages using CF Browser MCP tools |
| user_invocable | true |
Content Extractor
Extract content from JavaScript-rendered web pages using CF Browser MCP tools.
Prerequisites
CF Browser MCP server must be configured in .mcp.json (see quick start).
Modes
Analyze the user's intent and select the appropriate mode:
Mode 1: Read Page Content
Trigger: "read this page", "get content from", "what does X say"
Tool: browser_markdown
Workflow:
- Call
browser_markdown with the URL
- Clean the markdown (remove navigation, footer boilerplate)
- Return formatted content with source attribution
Mode 2: Extract Structured Data
Trigger: "extract products", "get prices", "pull data from"
Tool: browser_json
Workflow:
- Determine extraction prompt from user intent
- Call
browser_json with URL and extraction prompt
- Format and return structured JSON
Mode 3: Scrape Specific Elements
Trigger: "get the headlines", "extract article titles", "find all images"
Tool: browser_scrape
Workflow:
- Determine CSS selectors from user intent
- Call
browser_scrape with URL and selectors array
- Post-process and return results
Mode 4: Discover Links
Trigger: "find all links", "list pages on", "discover URLs"
Tool: browser_links
Workflow:
- Call
browser_links with the URL
- Filter/categorize links (internal, external, resource)
- Return organized link list
Mode 5: Visual Capture
Trigger: "screenshot", "show me what X looks like", "capture page"
Tool: browser_screenshot
Workflow:
- Call
browser_screenshot with URL and optional viewport dimensions
- Return file path to saved PNG
- Read the image to show the user
Output Format
- For text: Clean markdown with source URL attribution
- For data: JSON with clear field names
- For images: File path + display
- Truncate if output exceeds 50K characters
Examples
"Read the Hono documentation homepage"
→ browser_markdown("https://hono.dev")
"Extract all pricing tiers from Vercel"
→ browser_json("https://vercel.com/pricing", prompt="Extract all pricing tiers with name, price, and features")
"Get all h2 headings from this blog post"
→ browser_scrape("https://example.com/blog/post", selectors=["h2"])
"Screenshot the landing page at mobile width"
→ browser_screenshot("https://example.com", width=375, height=812)