Hosted screenshot MCP server, without local Chromium.

Connect an MCP client to one remote endpoint, then capture a public webpage as an inline PNG, JPEG, or PDF. Latchshot keeps the browser, network guards, render deadline, and successful-render quota on the server.

Streamable HTTP · Two bounded tools · Updated July 19, 2026

Connect the remote endpoint.

Use a client that supports MCP Streamable HTTP and custom authorization headers. Put the API key in the client's secret or credential manager; do not commit it with the configuration.

Representative client configurationStreamable HTTP
{
  "mcpServers": {
    "latchshot": {
      "type": "http",
      "url": "https://latchshot.fly.dev/mcp",
      "headers": {
        "Authorization": "Bearer ls_live_replace_me"
      }
    }
  }
}

Configuration keys differ between clients, but the transport contract does not: send authenticated MCP requests to https://latchshot.fly.dev/mcp. The server is stateless and responds with JSON over Streamable HTTP.

Need a key for the first connection?

The Free plan issues one key per email with 100 successful renders each UTC calendar month. No card or approval queue is required.

Use the install path your client supports.

Every path reaches the same hosted tools. What changes is where the client keeps the key and how much of that path has been checked in the client itself.

VS Code + GitHub Copilot

Password-masked input variable; no key in the install link.

Install
One-click definition or code --add-mcp
Checked
Definition and secret prompt reviewed; live tool call not claimed.

Cursor

LATCHSHOT_API_KEY from the environment that launches Cursor.

Install
One-click deep link or cursor --add-mcp
Checked
Configuration accepted by Cursor 3.12.17; live capture not claimed.

Claude Code

LATCHSHOT_API_KEY from the process environment.

Install
Public plugin repository and fixed remote endpoint
Checked
Remote server connected; an in-client tool invocation is not claimed.

Gemini CLI

Sensitive extension setting; no local executable or always-on prompt.

Install
Directly from the public extension repository
Checked
Live PNG capture verified through the installed extension.

goose

Custom Streamable HTTP extension with an explicit Authorization header.

Install
Manual authenticated remote-extension setup
Checked
Live PNG capture verified in goose.
Direct installs work without a catalog listing.

Registry, marketplace, and gallery discovery are separate downstream processes. The recipes state the current acceptance boundary for each client and do not imply placement that has not happened.

Expose two tools, not a remote browser.

The narrow tool surface keeps capture work inspectable. There is no tool for arbitrary JavaScript, cookies, sessions, payment, or plan changes.

ToolWhat it doesImportant inputs
capture_pageReturns one public page as an inline image or PDF resource plus render diagnostics.url, format, viewport, full page, dark mode, delay, paper, landscape
get_usageReturns the current plan, successful renders, remaining quota, reset time, and existing upgrade-request state.None

A representative capture_page call asks for only the artifact controls the job needs:

capture_page argumentsPNG at a fixed viewport
{
  "url": "https://example.com",
  "format": "png",
  "width": 1440,
  "height": 900,
  "darkMode": false,
  "delayMs": 250
}

Keep the artifact inside the tool result.

The client does not need a second download URL. Successful captures return a compact JSON diagnostic summary followed by the artifact in the same MCP result.

Requested formatMCP contentDiagnostic evidence
png or jpegInline image content with its MIME type and base64 dataBytes, render time, navigation, fonts, scripts, quota remaining and reset
pdfEmbedded resource at latchshot://capture/document.pdfThe same render and quota fields
Failed captureStructured tool error with the HTTP status and public error codeNo successful-render quota consumed

The public production verification used the official MCP TypeScript SDK to initialize the server, list both tools, read usage, and receive a 16,001-byte inline PNG from example.com. That is a checked integration path, not a customer claim or SLA.

Give the agent a bounded capability.

capture_page reaches the open web, so the server treats the URL as untrusted input and applies the same guardrails as the REST API.

  • Targets must be public HTTP or HTTPS pages on ports 80 or 443.
  • Private, loopback, link-local, special-use, metadata-network, and mixed public/private DNS destinations are rejected.
  • Viewport, full-page height, extra delay, browser deadline, request rate, concurrency, and queue depth are bounded.
  • Cookies, login sessions, arbitrary scripts, CAPTCHA solving, proxy rotation, and anti-bot bypass are not supported.
  • The transport requires Bearer authentication, limits JSON-RPC bodies to 64 KB, validates the production host, and stores no MCP session state.

The server annotation marks capture as an open-world, non-destructive operation. Your application should still require user intent before an agent captures an unfamiliar public URL.

Choose hosted MCP for artifact jobs.

A hosted capture tool and a local browser server solve different problems. Pick the smaller operating model that satisfies the workflow.

DecisionHosted Latchshot MCPBrowser running near the client
Desired resultOne screenshot or PDF artifactInteractive browsing or a multi-step session
Browser operationsHosted and quota-meteredInstalled, updated, and isolated by you
Reachable pagesPublic HTTP/HTTPS onlyCan reach environments you explicitly expose to it
Control surfaceBounded capture optionsPotentially arbitrary navigation and page actions
Artifact deliveryInline in the MCP resultDepends on the server and client

Keep the browser local for authenticated apps, private previews, clicks, form workflows, cookies, or custom scripts. Use Latchshot when the agent starts with a public URL and must finish with a screenshot or PDF.

Meter successful artifacts, not attempts.

The Free plan renews to 100 successful renders each UTC calendar month. Launch is $19 for 2,500, Build is $49 for 12,000, and Scale is $149 for 50,000. Automatic overages are disabled, and failed direct renders do not consume quota.

The server contract is published as io.github.BaiqingL/latchshot 1.0.2 in the official MCP Registry. Read the public metadata repository for client-specific setup notes and the benchmark method before using capture in a production decision.

Connect the first capture.

Create a Free-plan key, store it with the client, then ask for a fixed-size PNG of one public page.

Get a free key