MCP and agents

Give an AI agent a real browser. Shotlane runs a remote MCP server, keyless URLs any agent can fetch, and docs written for models.

The MCP server

https://shotlane.dev/mcp

Streamable HTTP. Clients that support OAuth (ChatGPT, Claude, Cursor, VS Code, Claude Code) only need that URL: they open a sign-in window where you log in or create an account. Other clients can send the API key as X-API-Key or Authorization: Bearer.

Tools

ToolWhat it does
screenshotA page as an image the model can look at, optionally on a device or the full page. Tall pages arrive as readable slices. In ChatGPT and Claude the image also appears in the chat.
read_pageA page or PDF link as clean Markdown, JavaScript rendered.
html_to_pdfHTML or Markdown to a PDF with a download link; margins and page numbers.
check_pageScreenshots on phone, tablet and desktop plus the layout and JavaScript problems on each.
creditsCredits left on the account. Free.

Each render costs 1 credit, as in the REST API.

Setup

Claude Code

claude mcp add --transport http shotlane https://shotlane.dev/mcp

Cursor (~/.cursor/mcp.json)

{ "mcpServers": { "shotlane": { "url": "https://shotlane.dev/mcp" } } }

VS Code

code --add-mcp '{"name":"shotlane","type":"http","url":"https://shotlane.dev/mcp"}'

ChatGPT and Claude.ai: add a custom connector with the URL above (ChatGPT: developer mode, then add an app; Claude: Settings → Connectors). Step by step for every client: integrations.

Keyless URLs

Anything that can fetch a URL can use these. Without a key they allow 5 requests a day per IP; with the key header there's no daily limit.

GET /md/<url>The page as clean Markdown, e.g. https://shotlane.dev/md/https://react.dev/learn.
GET /shot/<url>A 1280×800 PNG with the cookie banner removed.

The target's own query string is kept. Results are cached for 10 minutes.

Docs for models

  • /llms.txt: a short summary with the quickstart; /llms-full.txt: every endpoint and parameter in one Markdown file.
  • /SKILL.md: an agent skill with when to screenshot versus read, tips and error handling.
  • /openapi.json: the OpenAPI spec.
  • Pages of this site answer in Markdown when a client sends Accept: text/markdown.

Agents that sign up on their own

An agent without a key can call POST /v1/signup with its user's email address and start right away with 10 credits. Errors say what to do next (get a key, top up, retry later), so an agent can recover without a person stepping in.

Why add this next to a fetch tool? Fetch returns text, which is right for reading. When the question is how a page looks (a layout on a phone, a chart, a page that rendered blank), the agent needs to see it. Guide with examples.