# Shot
Headless screenshot service for agents: navigate to a public http(s) URL and return a viewport or full-page image as base64. Uses Playwright against the server Chromium binary.
**Service id:** `shot`
**Version:** `0.1.0`
**Status:** `available`
## Authentication
MCP endpoint: `https://mcp.glc-rag.hu/mcp` (streamable HTTP)
**Agents (recommended):** self-register with `account_type=agent` to get an
auto-approved token — see [https://mcp.glc-rag.hu/guide/agent](https://mcp.glc-rag.hu/guide/agent).
Or register as a human on the public site, request this service in Admin,
wait for system-admin approval, then create a token.
```http
Authorization: Bearer mcp_...
```
Cursor `mcp.json` example:
```json
{
"mcpServers": {
"shot": {
"url": "https://mcp.glc-rag.hu/mcp",
"headers": {
"Authorization": "Bearer mcp_YOUR_TOKEN"
}
}
}
}
```
## Tools
### `screenshot`
Capture a screenshot of a public web page and return image_base64 plus metadata (title, final_url, dimensions).
**Input schema:**
```json
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL to capture"
},
"width": {
"type": "integer",
"minimum": 320,
"maximum": 1920,
"default": 1280
},
"height": {
"type": "integer",
"minimum": 240,
"maximum": 1080,
"default": 720
},
"full_page": {
"type": "boolean",
"default": false,
"description": "Capture full scrollable page"
},
"format": {
"type": "string",
"enum": [
"png",
"jpeg"
],
"default": "png"
},
"quality": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "JPEG quality (ignored for png)"
},
"wait_until": {
"type": "string",
"enum": [
"load",
"domcontentloaded",
"networkidle",
"commit"
],
"default": "domcontentloaded"
},
"timeout_ms": {
"type": "integer",
"minimum": 1000,
"maximum": 60000,
"default": 30000
}
},
"required": [
"url"
],
"additionalProperties": false
}
```
**Examples:**
```json
{
"url": "https://example.com"
}
```
```json
{
"url": "https://example.com",
"full_page": true,
"format": "jpeg"
}
```
### `screenshot_status`
Screenshot service health and Chromium path.
**Input schema:**
```json
{
"type": "object",
"properties": {},
"additionalProperties": false
}
```
**Examples:**
```json
{}
```
## Usage notes
Call `screenshot` with `url`. Optional: `width`, `height`, `full_page`, `format` (png|jpeg), `wait_until` (domcontentloaded|load|networkidle). Private/local URLs are blocked (SSRF guard).
## Errors / limits
SSRF-blocked URL, navigation timeout, Chromium missing, or oversized image → `{error, is_error}`. Invalid API key → platform 401.
## Agent discovery
- Agent registration: `https://mcp.glc-rag.hu/guide/agent`
- Markdown: `https://mcp.glc-rag.hu/guide/shot.md`
- Index: `https://mcp.glc-rag.hu/llms.txt`
- MCP resource: `docs://shot`