GoScry logo

GoScry

by copyleftdev

GoScry is a server application that acts as a bridge between a controlling system and a web browser. It uses the Chrome DevTools Protocol (CDP) to interact with websites based on tasks submitted via its API.

View on GitHub

Last updated: N/A

What is GoScry?

GoScry is a server application written in Go that allows programmatic control of web browsers using the Chrome DevTools Protocol (CDP). It provides an API to submit tasks that perform actions like navigation, clicking, typing, and extracting DOM content.

How to use GoScry?

To use GoScry, you need to install Go and Chrome/Chromium. Then, clone the repository, build the executable, configure the server via a YAML file or environment variables, and run the server. You can then submit tasks via the API using JSON requests to control the browser and retrieve data.

Key features of GoScry

  • Remote Browser Control via CDP

  • Task-Based API for browser actions

  • Authentication Handling (including 2FA support)

  • DOM Extraction (full HTML, simplified HTML, text content)

  • DOM AST generation

  • MCP Output for structured status updates

  • Configurable via YAML or environment variables

Use cases of GoScry

  • Automated web testing

  • Web scraping and data extraction

  • Robotic Process Automation (RPA)

  • Integration with LLMs for web interaction

FAQ from GoScry

What is the Chrome DevTools Protocol (CDP)?

CDP is a protocol that allows tools to instrument, inspect, debug and profile Chromium, Chrome and other Blink-based browsers. Many DevTools features are built using this protocol.

How does GoScry handle 2FA?

GoScry detects potential 2FA prompts and signals back via API/callback, allowing an external system or user to provide the code to continue the task.

What is the Model Context Protocol (MCP)?

MCP is a format for asynchronous results/status updates that provides clear, structured context reporting.

How do I configure GoScry?

GoScry is configured via a config.yaml file or environment variables. You can set parameters like server port, browser settings, logging level, and security settings.

How do I authenticate with the GoScry API?

Authentication via X-API-Key or Authorization: Bearer <key> header is required if security.apiKey is set in the configuration.