> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zenrows.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The Zenrows HTTP API serves Fetch and Extract (extract=auto) at https://api.zenrows.com/v1/, Crawl at https://api.zenrows.com/v1/crawls, and Batch at https://async.api.zenrows.com/v1. Fetch, Extract, Crawl and Batch are described in OpenAPI 3.1 at https://www.zenrows.com/openapi.json and listed in the RFC 9727 API catalog at https://www.zenrows.com/.well-known/api-catalog. Every endpoint also has its own page under /api-reference with its schema. Use the spec for exact parameter names and types. Crawl's endpoints, parameters and errors are also at https://docs.zenrows.com/crawl/endpoints.md. To call Zenrows from an agent, connect the MCP server at https://mcp.zenrows.com/mcp. To search these docs from an agent, connect the docs MCP server at https://docs.zenrows.com/mcp. Agent skills for Zenrows are published at https://github.com/ZenRows/cli and install with `npx skills add ZenRows/cli`.

# How to Integrate GitHub Copilot with Zenrows

> Install the Zenrows plugin for GitHub Copilot and give Copilot CLI, VS Code, and Copilot cloud agent live web data: scrape pages, extract fields, run batch jobs and crawls, and drive the Zenrows Browser.

Install the Zenrows plugin for GitHub Copilot and Copilot can read the live web while it works: the current content of a page, named fields from it, a list of URLs as one job, the pages behind a start URL, and multi-step flows in a hosted browser. The plugin connects Copilot to the remote Zenrows MCP server and adds skills that tell Copilot which Zenrows tool fits each task. You sign in with your Zenrows account, so there is no API key to copy.

The plugin is open source at [github.com/ZenRows/copilot-zenrows](https://github.com/ZenRows/copilot-zenrows).

## What Is GitHub Copilot?

[GitHub Copilot](https://github.com/features/copilot) is GitHub's AI coding assistant. It runs in your terminal as Copilot CLI, in VS Code as an agent in the Chat view, and on GitHub as Copilot cloud agent, which works on issues and pull requests in a repository.

Copilot loads agent plugins: packages of skills, MCP servers, and other components that extend what it can do. You add a plugin from the command line or from VS Code, and Copilot picks up its skills and tools in every session.

## Why Connect Zenrows to Copilot?

* **The real page, past anti-bot protection:** a plain fetch of a site behind Cloudflare, DataDome, or similar returns a challenge page, and Copilot then works from the wrong content. Zenrows returns the page itself.
* **JavaScript-heavy pages, rendered:** Zenrows starts with a plain request and adds JavaScript rendering or Premium Proxies only when a page needs them, so single-page apps come back with their content.
* **Fields as JSON:** Copilot can ask for named fields as JSON, which is what you want when the output becomes a fixture, a seed file, or a test.
* **More than one page at a time:** a list of URLs runs as one Batch job, and a start URL can become a Crawl over a site section, instead of Copilot fetching pages one by one.
* **Skills that pick the tool:** the plugin's skills tell Copilot when to scrape, extract, batch, crawl, or open a browser session, and to confirm the scope before a multi-page job.

## What the Plugin Adds

The plugin adds one MCP server and nine skills.

* **MCP server:** `zenrows`, connected to `https://mcp.zenrows.com/mcp` over streamable HTTP. It provides the `scrape`, `extract`, `batch_*`, `crawl_*`, `browser_*`, and `account_usage` tools. See the [MCP tool reference](https://docs.zenrows.com/mcp/tool-reference.md).
* **Skills:**

| Skill | Copilot uses it for |
| - | - |
| `using-zenrows` | An overview of the tools, their defaults, and error handling |
| `getting-started` | First-run checks and troubleshooting, including sign-in |
| `scrape-webpage` | Reading one page |
| `extract-structured-data` | Named fields or JSON from one page |
| `batch` | A list of five or more URLs as one job |
| `crawl` | Many pages under one site section |
| `map` | Listing a site's URLs without fetching them |
| `browser-automation` | Clicks, forms, pagination, and multi-step flows in the Zenrows Browser |
| `capture-api-calls` | Finding the API calls a page makes |

You don't call the skills by name. Copilot reads their descriptions and loads the one that matches your request.

## Prerequisites

* GitHub Copilot, with access to at least one of Copilot CLI, VS Code, or Copilot cloud agent.
* A Zenrows account. You can also create one during the sign-in step.

  [Create an account](https://app.zenrows.com/register)

## Install the Plugin

**Copilot CLI**

**1. Add the Zenrows marketplace**

```bash theme={"theme":"css-variables"}
copilot plugin marketplace add ZenRows/copilot-zenrows
```

Copilot CLI registers the marketplace as `zenrows` and prints `Marketplace "zenrows" added successfully.`

**2. Install the plugin**

```bash theme={"theme":"css-variables"}
copilot plugin install zenrows@zenrows
```

Copilot CLI prints `Plugin "zenrows" installed successfully. Installed 9 skills.`

**3. Check the MCP server**

```bash theme={"theme":"css-variables"}
copilot mcp list
```

`zenrows (http)` appears under **Plugin servers**.

Inside an interactive session, `/plugin marketplace add ZenRows/copilot-zenrows` and `/plugin install zenrows@zenrows` do the same.

**VS Code**

**1. Turn on agent plugins**

In your VS Code settings, make sure `chat.plugins.enabled` is `true`.

**2. Add the Zenrows marketplace**

Add the repository to the `chat.plugins.marketplaces` setting:

```json theme={"theme":"css-variables"}
"chat.plugins.marketplaces": ["ZenRows/copilot-zenrows"]
```

You can do the same from the Agent Customizations editor: select **Browse**, open the source menu, select **Configure Marketplaces**, then **Add Marketplace**, and enter `ZenRows/copilot-zenrows`.

**3. Install the plugin**

In the Agent Customizations editor, select **Browse**, pick the `zenrows` marketplace from the source menu, select the **zenrows** plugin, and select **Install**. VS Code asks you to trust the marketplace the first time.

> [!TIP]
>
> If you already installed the plugin with Copilot CLI, VS Code picks it up from `~/.copilot/installed-plugins/` without a second install.

**Copilot cloud agent**

Add the marketplace and the plugin to your repository's `.github/copilot/settings.json`, and commit the file:

```json theme={"theme":"css-variables"}
{
  "extraKnownMarketplaces": {
    "zenrows": {
      "source": { "source": "github", "repo": "ZenRows/copilot-zenrows" }
    }
  },
  "enabledPlugins": {
    "zenrows@zenrows": true
  }
}
```

The marketplace key must be `zenrows`, the name in the repository's `marketplace.json`, and the plugin ID is `zenrows@zenrows`.

## Sign In to Zenrows

The Zenrows MCP server uses OAuth, so you sign in once in the browser instead of pasting an API key. If you don't have an account yet, you can create one on the same screen.

**Copilot CLI**

Start an interactive session with `copilot` and run:

```text theme={"theme":"css-variables"}
/mcp auth zenrows
```

Copilot CLI opens the Zenrows sign-in page in your browser. Sign in, approve access, and return to the terminal.

**VS Code**

Open the Command Palette (**Cmd+Shift+P** / **Ctrl+Shift+P**) and run **MCP: List Servers**. Select `zenrows`, select **Start Server**, and allow it to authenticate. VS Code opens the Zenrows sign-in page in your browser.

> [!NOTE]
>
> Never paste a Zenrows API key into a Copilot chat. The plugin signs in with OAuth, and its skills tell Copilot not to ask for a key.

## Start Scraping

Ask Copilot in plain English. It picks the skill and the Zenrows tool for you:

```text theme={"theme":"css-variables"}
Use Zenrows to get the product names and prices from https://www.scrapingcourse.com/ecommerce/.
```

```text theme={"theme":"css-variables"}
Read https://www.scrapingcourse.com/antibot-bypass and tell me what the page says.
```

```text theme={"theme":"css-variables"}
Fetch these five product pages as one batch and save the titles and prices to products.json.
```

```text theme={"theme":"css-variables"}
Map https://www.scrapingcourse.com/ecommerce/ and list the product page URLs.
```

```text theme={"theme":"css-variables"}
Open https://www.scrapingcourse.com/login in a browser, fill in the credentials, click submit, then extract the account details.
```

For the first prompt, Copilot loads the `extract-structured-data` skill and calls the Zenrows `extract` tool. Before a crawl, a batch, or a browser loop, it confirms the scope with you, because every page fetched uses credits on your Zenrows plan.

## Update or Remove the Plugin

In Copilot CLI:

```bash theme={"theme":"css-variables"}
copilot plugin update zenrows        # update to the latest version
copilot plugin uninstall zenrows     # remove the plugin
copilot plugin marketplace remove zenrows
```

In VS Code, open the Agent Customizations editor, select **Plugins**, and use **Check for and Apply Updates**, or run **Chat: Update Plugins**. Disable or uninstall the plugin from its details view.

## Troubleshooting

### Tool calls fail with "requires authentication"

The plugin is installed but not signed in. Run `/mcp auth zenrows` in Copilot CLI, or start the `zenrows` server from **MCP: List Servers** in VS Code, and complete the browser sign-in. See [Sign in to Zenrows](#sign-in-to-zenrows).

### The Zenrows tools don't appear

Run `copilot plugin list` and check that `zenrows@zenrows` is listed, then `copilot mcp list` and check that `zenrows (http)` appears under **Plugin servers**. In VS Code, check that `chat.plugins.enabled` is `true` and that the plugin shows under **Plugins** in the Agent Customizations editor. Manage the plugin from the interface you installed it with: the CLI's `/plugin` commands and the VS Code editor keep separate lists.

### `copilot plugin install` can't find the plugin

Add the marketplace first with `copilot plugin marketplace add ZenRows/copilot-zenrows`. The install command takes the form `<plugin>@<marketplace>`, and both names are `zenrows`.

### Page content is missing or incomplete

The page probably loads its content with JavaScript after the first response. Ask Copilot to wait for the element you need, for example:

```text theme={"theme":"css-variables"}
Scrape https://www.scrapingcourse.com/javascript-rendering/ and wait for the product grid before reading it.
```

For more options, see [Troubleshooting](https://docs.zenrows.com/mcp/overview.md#troubleshooting) in the MCP overview.

## Further Reading

* [Zenrows MCP overview](https://docs.zenrows.com/mcp/overview.md): connection options and authentication for the server the plugin uses.
* [MCP tool reference](https://docs.zenrows.com/mcp/tool-reference.md): every tool and parameter.
* [VS Code](https://docs.zenrows.com/integrations/vscode.md): connect the Zenrows MCP server to VS Code directly, without the plugin.
* [Plugin source on GitHub](https://github.com/ZenRows/copilot-zenrows).

## Frequently Asked Questions

> **Do I need a Zenrows API key?**
>
> No. The plugin signs in with OAuth through your Zenrows account. If you'd rather use an API key, connect the [Zenrows MCP server](https://docs.zenrows.com/mcp/overview.md) to your client directly instead of installing the plugin.

> **Which Copilot surfaces does the plugin work in?**
>
> Copilot CLI, VS Code, and Copilot cloud agent. In VS Code, it works with Copilot's agent in the Chat view.

> **How is the plugin different from adding the MCP server to VS Code?**
>
> Both connect Copilot to the same Zenrows tools. The plugin adds nine skills that tell Copilot when to use each tool and how to keep requests efficient, signs in with OAuth instead of an API key, and installs the same way in Copilot CLI, VS Code, and Copilot cloud agent.

> **How are requests billed?**
>
> Each tool call uses credits on your Zenrows plan, the same as the equivalent API request. Zenrows starts with a plain request and adds JavaScript rendering or Premium Proxies only when a page needs them, and bills only the configuration that succeeds. See [Pricing](https://docs.zenrows.com/first-steps/pricing.md).

> **Who maintains the plugin?**
>
> Zenrows publishes and maintains it. The source is MIT-licensed at [github.com/ZenRows/copilot-zenrows](https://github.com/ZenRows/copilot-zenrows).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.