ScreenshotNeo

BlogAI agents

How to Use Claude Desktop to Capture Website Screenshots with an MCP Server

Connect Claude Desktop to a local or hosted MCP server, capture a public website, verify the tools, and troubleshoot common setup problems.

By the ScreenshotNeo team4 October 20269 min read

To capture a website screenshot from Claude Desktop, connect an MCP server that exposes a website-capture tool, then ask Claude to use that tool with a public URL. MCP is the connection protocol; the server supplies the screenshot capability. This guide covers a local Puppeteer-based option and a hosted option, then shows how to verify the tools and fix common connection problems.

1. Understand what Claude Desktop and the MCP server do

The Model Context Protocol (MCP) connects an LLM application such as Claude Desktop to external tools and data. Claude does not capture a page just because MCP is enabled: an MCP server must provide a screenshot tool, and Claude must be connected to that server.

The Universal Screenshot MCP project documents website capture with Puppeteer in headless Chromium. It also documents separate tools for capturing the operating-system desktop or a screen region. A webpage screenshot and a desktop screenshot are different operations; for a website URL, use the webpage-capture tool.

2. Choose local or hosted setup

Option Where it runs What you configure When it fits
Universal Screenshot MCP A local process on your computer Node.js, a local command, and Claude Desktop’s MCP server configuration You want a locally launched server and its documented webpage and desktop capture tools.
Capture MCP A hosted remote service A remote endpoint and bearer token You prefer a hosted MCP endpoint and are comfortable sending requests to a third-party service.
ScreenshotNeo Hosted screenshot API and MCP server An API key for API calls, or MCP connection setup in the product documentation You want clean website captures, explicit page and billing verdicts, or an MCP server for AI agents.

For local setup, the project lists Node.js 18 or later and says Puppeteer downloads Chromium on first run. Its Linux native screenshot dependencies apply to its operating-system screenshot functionality; they are not automatically prerequisites for capturing a webpage with Puppeteer. See the project’s README for current requirements and tool details.

For hosted setup, Capture documents a Streamable HTTP MCP endpoint at https://capture.page/mcp/v1 using a bearer token. Treat that token as a secret credential. A hosted server is a third-party service, so review its documentation and your organization’s data requirements before connecting it.

3. Configure the local Universal Screenshot MCP server

Install or run the server

The project README documents these options:

# Option A: install globally
npm install -g universal-screenshot-mcp

# Option B: run with npx
npx -y universal-screenshot-mcp

The Claude Desktop configuration below uses npx, so a global install is not required for that route. Use a current Node.js version that meets the project’s Node.js 18-or-later requirement. On first use, allow time for Puppeteer to download Chromium.

Add the MCP server to Claude Desktop

The project README gives this example configuration:

{
  "mcpServers": {
    "screenshot-server": {
      "command": "npx",
      "args": ["-y", "universal-screenshot-mcp"]
    }
  }
}

Save this structure in Claude Desktop’s MCP configuration file, merging it into an existing mcpServers object if you already have one. Do not replace other server entries. The README’s sample path, ~/Library/Application Support/Claude/claude_desktop_config.json, is for macOS; do not assume it is the right path on another operating system. Check the project’s current instructions and Claude Desktop’s current guidance for your OS.

If you build the project from source instead, the README shows a configuration that runs node with an absolute path to the built JavaScript entry point. Use the actual path on your machine; a path copied from someone else’s setup will not resolve on your computer.

Do not confuse server configuration with desktop extensions

Claude Desktop also supports packaged extensions. Anthropic documents extension management under Settings > Extensions, and custom .mcpb packages under Advanced settings > Extension Developer > Install Extension…. Use that path only if your selected server is packaged as an extension. A command-line MCP server configured in JSON is a different installation route.

4. Configure a hosted MCP server (optional)

Capture’s documentation provides a Claude-compatible remote configuration with an HTTP transport, endpoint URL, and Authorization header. Keep the token as a placeholder in configuration examples and substitute your own credential locally:

{
  "mcpServers": {
    "capture": {
      "type": "http",
      "url": "https://capture.page/mcp/v1",
      "headers": {
        "Authorization": "Bearer YOUR_CAPTURE_TOKEN"
      }
    }
  }
}

Follow the hosted provider’s current setup instructions for where to enter remote server settings in your Claude Desktop version. After saving a remote configuration, Capture says to restart the client or start a new conversation for tools to appear. Never publish a real bearer token in a tutorial, repository, or shared screenshot.

5. Restart Claude Desktop and verify the tools

  1. Save the configuration and confirm the JSON is valid, with commas and braces in the right places.
  2. Restart Claude Desktop. If you installed an extension, Anthropic also recommends restarting when its tools do not appear.
  3. Open a chat and click the + button beneath the chat box, then choose Connectors. Anthropic says this view lists connected MCP servers and their tools.
  4. Open Developer settings to inspect connection status and server logs if the server or its tools are missing.
  5. Confirm that the connected server exposes a website screenshot tool. Tool names and parameters depend on the server; do not assume every screenshot server uses the same name or arguments.

These current interface labels and troubleshooting steps come from Anthropic’s Claude Desktop MCP guidance. UI labels and setup behavior can change, so check that guidance if a menu has moved.

6. Ask Claude to capture a public website

Once the tool appears, ask for the URL and the capture scope. For example:

Use the website screenshot tool to capture a full-page screenshot of https://example.com.

For a specific result, be explicit about the page URL and whether you want a viewport screenshot or a full-page screenshot. If the server supports additional options, such as a wait condition or a selected element, name the option in your request. The server determines which parameters are available; Claude cannot use an option the connected tool does not expose.

Use a public URL that the server can reach. A local address such as localhost on your computer may refer to a different machine from a hosted capture service. Private sites may require authentication or network access that the configured server does not have. Do not send credentials to a hosted service unless that use is appropriate for the site and your security requirements.

7. Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. Its MCP server can give AI agents, including Claude, tools such as take_screenshot, get_page_info, and capture_pdf. Check the ScreenshotNeo documentation for current MCP connection instructions.

For a direct API call, use the API key and a public page URL:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

ScreenshotNeo accepts consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each cleanup step can be turned off. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. An MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots. All features are on every plan.

Sign up free for 1,000 screenshots a month with no card.

8. Troubleshoot common problems

Symptom Likely cause What to do
The server does not appear under Connectors Claude Desktop has not reloaded the configuration, or the JSON is invalid. Check the file location for your operating system, validate the JSON, save it, and restart Claude Desktop. Inspect Developer settings for status and logs.
The server appears, but no screenshot tool is listed The server process failed to start, or it exposes different tools than expected. Review Developer settings and the server logs. Check the server’s README for its current tool list and startup requirements.
npx or Node.js cannot be found Node.js is missing, too old, or unavailable in the environment Claude uses to launch the command. Install Node.js 18 or later as required by the project, confirm that node and npx are available in your shell, and restart Claude Desktop after changing the environment.
The first capture is slow or Chromium fails to launch Puppeteer may still be downloading Chromium, or its browser setup did not complete. Allow the first-run download to finish, check the process output and project instructions, and retry. Do not treat Linux desktop-capture utilities as a fix for a Puppeteer webpage-capture problem unless the error specifically points to them.
A hosted server rejects the connection The endpoint, transport configuration, or bearer token may be wrong or expired. Compare the URL and HTTP configuration with the provider’s current documentation, replace the token locally if needed, and restart or start a new conversation as its instructions require.
The tool connects but cannot reach the page The URL may be private, blocked, malformed, or inaccessible from the server’s network. Check the URL and use a page the capture process can reach. For a hosted server, remember that it runs remotely; your computer’s local network access does not imply the hosted process can access the same address.
The screenshot is incomplete or captures the wrong area The request may not specify full-page capture, or the page may need time or an element-specific option. Ask for full-page capture explicitly. Consult the server’s tool parameters for supported waits, selectors, or other options; behavior is server-specific.
A packaged extension is installed but its tools are missing The extension may need a client restart, have missing configuration values, or lack required permissions. Update Claude Desktop, restart it, review the extension’s configuration, credentials, and file-path permissions, then inspect Developer settings and logs. These checks follow Anthropic’s extension troubleshooting guidance.

The Universal Screenshot MCP README documents an --doctor check for Linux native screenshot dependencies and MCP Inspector debugging. Those are relevant to diagnosing that project’s native system screenshot tools and MCP communication; they do not establish that those Linux utilities are required for its Puppeteer webpage capture.

9. Performance, reliability, and cost considerations

  • First-run time: The local project’s Puppeteer setup downloads Chromium on first run, so the initial start can take longer than later starts. Subsequent capture time also depends on the target page and the server’s behavior; the dossier provides no benchmark.
  • Where the browser runs: A local server runs on your computer. A hosted MCP server runs remotely. This affects which network locations and local pages are reachable; do not assume a remote service can access a page available only on your private network.
  • Reliability checks: Use Claude’s Developer settings status and logs to distinguish a connection failure from a page-load or capture failure. A working MCP connection does not guarantee that every target website can be captured.
  • Cost: The local project’s cited setup instructions do not establish a service price. Capture’s cited MCP documentation does not establish pricing either. ScreenshotNeo offers 1,000 shots per month free with no card; paid tiers are Starter $5 for 3,000, Growth $15 for 15,000, Pro $39 for 60,000, Scale $99 for 250,000, and Business $249 for 1,000,000. Yearly billing gives two months free.
  • Credentials: Keep hosted bearer tokens and API keys private. Anthropic documents secure storage for sensitive fields marked sensitive: true in its desktop-extension configuration mechanism; that specific guarantee should not be assumed for arbitrary values in a local JSON MCP configuration.

10. Frequently asked questions

Does MCP itself take the screenshot?

No. MCP connects Claude to a server. The connected server supplies the screenshot tool and performs the capture.

Can I use the same MCP server to capture my computer screen?

Only if that server exposes a desktop or screen-region capture tool. The Universal Screenshot MCP project documents these separately from webpage capture.

Can Claude capture a page that requires a login?

That depends on the server’s supported authentication options and the site’s access rules. The cited local and hosted setup examples do not establish a universal login workflow. Avoid sharing credentials with a third-party hosted service unless you have assessed that use.

Why does a tool name differ from an example?

MCP servers define their own tool names and parameters. Check the connected server’s documentation and the tools shown under Connectors.

Is the macOS configuration path valid on Windows or Linux?

The path cited above is the project’s macOS example. Use the current Claude Desktop and server instructions for your operating system.