Skip to main content
Glama

SnapRender インテグレーション

npm MCP npm SDK PyPI SDK License: MIT

SnapRender Screenshot API の公式インテグレーション — ウェブサイトのスクリーンショットを PNG、JPEG、WebP、または PDF として撮影します。

リモート MCP サーバー

SnapRender はホスト型 MCP サーバーを実行しており、インストール不要で任意の MCP クライアントから接続できます:

https://app.snap-render.com/mcp
  • トランスポート: Streamable HTTP (MCP 仕様 2025-03-26)

  • 認証: X-API-Key ヘッダーまたは Authorization: Bearer ヘッダー

  • ツール: take_screenshot, check_screenshot_cache, get_usage

  • プロンプト: screenshot_website, compare_devices

Claude Desktop (リモート — 推奨)

{
  "mcpServers": {
    "snaprender": {
      "type": "streamable-http",
      "url": "https://app.snap-render.com/mcp",
      "headers": {
        "Authorization": "Bearer sk_live_your_key_here"
      }
    }
  }
}

任意の MCP クライアント (curl)

# Initialize a session
curl -X POST https://app.snap-render.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "X-API-Key: sk_live_your_key_here" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

サーバーは Mcp-Session-Id ヘッダーを返します。セッションを再利用するために、後続のリクエストにこれを含めてください。

Smithery

Smithery 経由でインストールすると、任意の MCP クライアントで自動セットアップが可能です。

Related MCP server: screenshots-snapshot-site

ローカル MCP サーバー (npm)

stdio トランスポート経由でローカル実行したい場合:

{
  "mcpServers": {
    "snaprender": {
      "command": "npx",
      "args": ["-y", "snaprender-mcp"],
      "env": {
        "SNAPRENDER_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

完全なドキュメントについては mcp-server/ を参照してください。

リモート vs ローカル

リモート (ホスト型)

ローカル (npx)

インストール

不要 — HTTPS URL のみ

Node.js + npx が必要

トランスポート

Streamable HTTP

stdio

ユースケース

任意の MCP クライアント、Smithery、ウェブアプリ

Claude Desktop、Claude Code

MCP ツール

take_screenshot

ウェブサイトのスクリーンショットを撮影します。画像を PNG、JPEG、WebP、または PDF として返します。

パラメータ

型

必須

説明

url

string

はい

撮影対象の URL (http:// または https://)

format

string

いいえ

png, jpeg, webp, または pdf (デフォルト: png)

width

integer

いいえ

ビューポート幅 320-3840 (デフォルト: 1280)

height

integer

いいえ

ビューポート高さ 200-10000 (デフォルト: 800)

full_page

boolean

いいえ

スクロール可能なページ全体を撮影

device

string

いいえ

iphone_14, iphone_15_pro, pixel_7, ipad_pro, macbook_pro

dark_mode

boolean

いいえ

ダークモードを有効にする

block_ads

boolean

いいえ

広告をブロック (デフォルト: true)

block_cookie_banners

boolean

いいえ

クッキーバナーを削除 (デフォルト: true)

quality

integer

いいえ

JPEG/WebP 品質 1-100 (デフォルト: 90)

delay

integer

いいえ

ページ読み込み後の待機時間 ms (デフォルト: 0)

hide_selectors

string

いいえ

非表示にする CSS セレクター (カンマ区切り)

click_selector

string

いいえ

撮影前にクリックする CSS セレクター

check_screenshot_cache

撮影せずにスクリーンショットがキャッシュされているか確認します。クォータにはカウントされません。

パラメータ

型

必須

説明

url

string

はい

確認する URL

format

string

いいえ

出力形式 (デフォルト: png)

get_usage

スクリーンショットの使用統計を取得します。

パラメータ

型

必須

説明

month

string

いいえ

YYYY-MM 形式の月 (デフォルト: 現在の月)

エージェントフレームワークのインテグレーション

フレームワーク

ディレクトリ

説明

LangChain Python

langchain/

LangChain / LangGraph エージェント用の @tool デコレータ付き関数 (PyPI)

LangChain.js

langchain-js/

LangChain.js エージェント用の StructuredTool クラス (npm)

CrewAI

crewai/

CrewAI エージェント用の BaseTool サブクラス (PyPI)

AutoGen

autogen/

Microsoft AutoGen エージェント用の FunctionTool ラッパー (PyPI)

n8n

別リポジトリ

n8n ワークフロー用のコミュニティノード (npm)

その他のインテグレーション

インテグレーション

説明

セットアップ時間

OpenClaw Skill

OpenClaw AI エージェント用スキルファイル

5分

ChatGPT Actions

カスタム GPT および OpenAI 関数呼び出し用の OpenAPI 仕様

5分

Postman Collection

Postman 用の事前構築済み API リクエスト

1分

SDK

# Node.js
npm install snaprender

# Python
pip install snaprender

直接 API

curl "https://app.snap-render.com/v1/screenshot?url=https://example.com" \
  -H "X-API-Key: sk_live_your_key_here" \
  -o screenshot.png

API キーの取得

snap-render.com で無料でサインアップしてください。月間200枚のスクリーンショットまで、クレジットカード不要です。

リンク

ライセンス

MIT

Available Tools

11 tools
batch_screenshotsAInspect

Create a batch screenshot job for multiple URLs (1-50). Returns immediately with a job ID. Use get_batch_status to poll for results (wait 2-5 seconds between polls). All URLs share the same screenshot options. Each URL consumes one credit; failed URLs get credits rolled back.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesArray of URLs to capture (1-50)
delayNoMilliseconds to wait after load (default: 0)
widthNoViewport width in pixels (default: 1280)
deviceNoDevice preset for emulation
formatNoOutput format (default: png)
heightNoViewport height in pixels (default: 800)
qualityNoImage quality (default: 90)
block_adsNoBlock ads (default: true)
dark_modeNoEnable dark mode (default: false)
full_pageNoCapture entire scrollable page (default: false)
user_agentNoCustom user agent
click_selectorNoCSS selector to click
hide_selectorsNoCSS selectors to hide
block_cookie_bannersNoRemove cookie banners (default: true)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations: it explains the asynchronous nature (returns immediately with job ID), polling requirement, credit consumption per URL, and rollback for failed URLs. Annotations indicate readOnlyHint=false (mutation) and destructiveHint=false, which align well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3 sentences), front-loaded with the core purpose, and contains no fluff. Every sentence adds value: purpose, workflow, and credit/rollback behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (14 parameters, 1 required), the description competently covers purpose, polling workflow, credit implications, and failure behavior. No output schema is present, but the description correctly indicates the return type (job ID) without needing to specify the full response format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already provides parameter details. The description adds context that all URLs share the same options, but does not elaborate on individual parameters beyond what the schema offers. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a batch screenshot job for multiple URLs (1-50) and returns immediately with a job ID, distinguishing it from the sibling tools like 'take_screenshot' (single URL) and 'get_batch_status' (polling).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides context on when to use this tool (multiple URLs, polling with get_batch_status, wait 2-5 seconds between polls) and mentions credit consumption and rollback behavior. However, it does not explicitly state when not to use it or discuss alternative tools beyond polling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_screenshot_cacheA
Read-only
Inspect

Check if a screenshot is already cached without capturing a new one. Does not count against your quota. Pass the same parameters you would use for take_screenshot so the cache key matches correctly.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to check
widthNoViewport width (default: 1280)
deviceNoDevice preset
formatNoOutput format (default: png)
heightNoViewport height (default: 800)
qualityNoImage quality (default: 90)
block_adsNoBlock ads (default: true)
dark_modeNoDark mode (default: false)
full_pageNoFull page capture (default: false)
click_selectorNoCSS selector to click
hide_selectorsNoCSS selectors to hide

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds meaningful behavioral context beyond annotations: it does not capture a new screenshot and does not count against the quota. These quota and side-effect details are not in the annotations. It doesn't mention return value structure (e.g., boolean vs. metadata), but that's minor given the tool's simplicity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each carrying weight: purpose, quota exemption, and parameter matching. Front-loaded with the core action and no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description could mention what is returned (e.g., a boolean or timestamp). However, for a cache-check tool, the purpose, side effects, and key-matching instruction are likely sufficient for an agent to call it correctly. A minor gap in return value description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 11 parameters with descriptions and defaults. The description adds the important constraint that parameters must match those used for take_screenshot for the cache key to align, which is useful context not in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Check') and resource ('screenshot cache') and explicitly distinguishes from the capture action ('without capturing a new one'). An agent can differentiate this from take_screenshot immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: use it to check cache status before taking a screenshot, and critically instructs to pass the same parameters as take_screenshot so the cache key matches. This is actionable advice for correct invocation, though it doesn't explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_webhookAInspect

Create a webhook subscription for event notifications. Events: screenshot.completed (batch job done), quota.warning (80% used), quota.exceeded (100% used), capture.completed and change.detected (scheduled captures). Max 5 webhooks per account. Payloads are signed with HMAC-SHA256. Save the returned secret to verify signatures.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesWebhook endpoint URL. Must be a public HTTPS URL.
eventsYesEvents to subscribe to

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the safety profile (not read-only, not destructive, open-world), while the description adds genuinely new behavior: a hard cap of 5 webhooks per account, HMAC-SHA256 payload signing, and the fact that a secret is returned and must be stored to verify signatures. It stops short of describing failure behavior when the cap is hit or auth requirements, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five short sentences, each load-bearing: purpose first, then event semantics, then the quota cap, signing method, and the secret-handling instruction. No filler and no repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by telling the agent the response contains a secret that must be saved. Combined with the quota cap, signing details, and full parameter coverage, the only gap is error/permission behavior when the 5-webhook limit is reached.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the 3 baseline applies, but the description enriches the events enum with operational meaning (quota.warning = 80% used, quota.exceeded = 100% used, screenshot.completed = batch job done), which the bare enum values do not convey. The url parameter gains nothing beyond the schema's HTTPS requirement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource ('Create a webhook subscription for event notifications'), which cleanly separates it from delete_webhook, list_webhooks and test_webhook without needing to name them. An agent can pick this tool from the sibling list on the verb alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the event catalog and the 'Max 5 webhooks per account' constraint, so an agent can infer when subscriptions make sense. However, there is no explicit when-to-use versus test_webhook or list_webhooks, and no stated precondition (e.g. verifying the endpoint first).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_webhookA
Destructive
Inspect

Delete a webhook subscription by ID. This cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_idYesThe webhook ID to delete (from list_webhooks)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive nature (destructiveHint: true). Description adds 'This cannot be undone' which reinforces but does not add substantial new behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise with two short sentences that convey the essential information without any unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple deletion tool with one parameter and destructive hint, the description adequately covers purpose and permanence. Could optionally mention expected return value or confirmation, but not necessary given no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the input schema already provides a clear description for webhook_id. The tool description does not add additional parameter semantics beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Delete) and resource (webhook subscription by ID), distinguishing it from sibling tools like create_webhook and list_webhooks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a warning about irreversibility but lacks explicit guidance on when to use vs alternatives like list_webhooks or test_webhook. The schema description hints at using the ID from list_webhooks, but not directly in the tool description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_contentA
Read-only
Inspect

Extract content from a web page. Returns structured data based on the extraction type. Supports: markdown (readable content), text (plain text), html (raw HTML), article (structured with title/author/excerpt), links (all page links), metadata (OG tags, title, description).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to extract content from (must start with http:// or https://)
typeNoExtraction type (default: markdown)
cacheNoUse cached result if available (default: false)
delayNoMilliseconds to wait after page load (default: 0)
selectorNoCSS selector to scope extraction to a specific element
block_adsNoBlock advertisements and trackers (default: true)
cache_ttlNoCache TTL in seconds (default: 86400)
max_lengthNoMaximum content length in characters (default: 100000)
block_cookie_bannersNoRemove cookie consent banners (default: true)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds real value beyond that by disclosing what each extraction type returns (article = title/author/excerpt, metadata = OG tags) in the absence of an output schema. It still omits rate limits, failure modes, and JS-rendering behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action and result, followed by a compact mode list. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the necessary work of sketching return formats per mode, and 100% schema coverage handles the 9 parameters. It lacks guidance on dynamic pages, error cases, or the relationship between cache/cache_ttl/delay, which would make it fully complete for a scraping tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so defaults, ranges, and semantics for all 9 parameters are already documented in the schema. The description echoes the type enum values but adds no syntax or behavior detail beyond them, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Extract content from a web page') and immediately clarifies the return shape ('structured data based on the extraction type'). The enumeration of the six extraction modes makes its scope unambiguous and clearly separates it from the screenshot/webhook siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The list of extraction types implicitly guides the agent toward the right mode, but there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as take_screenshot for visual capture. Usage must be inferred from the mode enumeration.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_batch_statusA
Read-only
Inspect

Get the status of a batch screenshot job. Poll this until status is 'completed' or 'failed' (wait 2-5 seconds between polls). Completed items include presigned download URLs valid for 24 hours.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe batch job ID returned by batch_screenshots

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false-destructive and openWorldHint, so safety is covered. The description goes beyond them usefully by disclosing polling cadence, the terminal status values, and the 24-hour lifetime of presigned download URLs returned for completed items. It stops short of describing non-terminal status values or failure payloads, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each carrying distinct information (purpose, polling behavior, output lifetime), with the highest-value content front-loaded. Nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does partially address it by naming the returned presigned URLs and their validity window. It omits the full set of possible status values and any failure/error detail, which would round out the picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter is documented there, including its origin ('returned by batch_screenshots'). The description adds no parameter detail beyond that, so the baseline 3 for a fully-covered schema applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the status of a batch screenshot job'), which cleanly separates it from the sibling that creates jobs (batch_screenshots). An agent can identify the tool's role without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly prescribes the usage pattern: poll until status is 'completed' or 'failed' with a 2-5 second interval. It also implicitly situates this tool after batch_screenshots via the job_id reference, leaving no ambiguity about when to call it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usageA
Read-only
Inspect

Get current month's screenshot usage statistics including screenshots used, limit, and remaining quota.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description goes beyond them by disclosing the temporal scope (current month, not all-time) and the shape of the returned metrics in the absence of an output schema. It says nothing about auth requirements or whether limits reset, so it stops short of full behavioral coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the scope qualifier ('current month') comes before the metric list, so an agent reads the most decision-relevant fact first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, no output schema, and annotations covering the safety profile, the remaining gap is what the tool returns — and the description fills that by naming the three metrics. It doesn't say how the quota is consumed or when it resets, but nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to clarify, and it correctly does not invent arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource (get usage statistics) scoped to the current month, and it enumerates the returned metrics (used, limit, remaining). It is plainly distinct from siblings like take_screenshot or batch_screenshots, though it never explicitly names an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus alternatives or any prerequisite (e.g., call before taking screenshots to check remaining quota). The purpose hints at its role, but no usage guidance is actually provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_webhooksA
Read-only
Inspect

List all webhook subscriptions on your account. Returns webhook IDs, URLs, subscribed events, and creation dates.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. Description adds that it returns specific fields, which is helpful but not deep behavioral detail like pagination. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters, the description covers purpose and output adequately. No missing context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema, so description doesn't need to add param details. Baseline 4 for zero-param tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (list), resource (webhook subscriptions), and return fields. Distinguishes from sibling tools like create_webhook and delete_webhook.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use or alternatives. Usage is implied as listing subscriptions, but no when-not-to-use or comparison with other list tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sign_screenshot_urlA
Read-only
Inspect

Generate a signed URL for a screenshot that can be used without an API key. Useful for embedding screenshots in emails, documents, or sharing with third parties. Signing is free, rendering the URL consumes one credit. URLs expire after the specified duration.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to capture (must start with http:// or https://)
delayNoMilliseconds to wait after load (default: 0)
widthNoViewport width in pixels (default: 1280)
deviceNoDevice preset for emulation
formatNoOutput format (default: png)
heightNoViewport height in pixels (default: 800)
qualityNoImage quality (default: 90)
block_adsNoBlock ads (default: true)
dark_modeNoEnable dark mode (default: false)
full_pageNoCapture entire scrollable page (default: false)
expires_inNoURL validity in seconds, 60-2592000 (default: 86400 = 1 day)
user_agentNoCustom user agent
click_selectorNoCSS selector to click
hide_selectorsNoCSS selectors to hide
block_cookie_bannersNoRemove cookie banners (default: true)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/non-destructive, so the safety bar is low. The description adds genuinely useful behavior beyond that: signing is free while rendering consumes one credit, and URLs expire after the specified duration — a cost/expiry model the agent would otherwise not know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with purpose before use cases and the billing/expiry nuance. No sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With full schema coverage and annotations covering the safety profile, and no output schema to explain, the description covers purpose, use context, and cost/expiry. Only the sibling-routing guidance is thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 15 parameters, so the schema already documents every input. The description only alludes to the expiry duration ('specified duration') without adding format or syntax beyond expires_in. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (generate/sign) and resource (screenshot URL) and immediately names the property that distinguishes it from take_screenshot: the URL works 'without an API key'. An agent can tell it apart from its siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear use cases (embedding in emails, documents, sharing with third parties), which is real when-to-use guidance. However it never explicitly contrasts with take_screenshot or check_screenshot_cache, so the routing decision is left partly to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

take_screenshotA
Read-only
Inspect

Capture a screenshot of a website URL, raw HTML, or Markdown content. Provide exactly one of: url, html, or markdown. Returns the image as a PNG, JPEG, WebP, or PDF. Supports device emulation (iPhone, Pixel, iPad), dark mode, ad blocking, cookie banner removal, full-page capture, and custom viewports.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL to capture (must start with http:// or https://). Mutually exclusive with html and markdown.
htmlNoRaw HTML content to render and capture (max 2MB). Mutually exclusive with url and markdown.
cacheNoUse cached result if available. Set to true to enable caching (default: false)
delayNoMilliseconds to wait after page load (default: 0)
widthNoViewport width in pixels (default: 1280)
deviceNoDevice preset for mobile/tablet emulation
formatNoOutput format (default: png)
heightNoViewport height in pixels (default: 800)
qualityNoImage quality for JPEG/WebP, 1-100 (default: 90)
markdownNoMarkdown content to render with a clean styled template and capture (max 500KB). Mutually exclusive with url and html.
block_adsNoBlock advertisements and trackers (default: true)
cache_ttlNoCache TTL in seconds, 0-2592000. Clamped to your plan max (default: 86400)
dark_modeNoEnable dark mode CSS emulation (default: false)
full_pageNoCapture entire scrollable page (default: false)
user_agentNoCustom user agent string to use for the request
click_selectorNoCSS selector to click before capture
hide_selectorsNoComma-separated CSS selectors to hide before capture
block_cookie_bannersNoRemove cookie consent banners (default: true)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), and the description adds useful behavioral context: the output media types and the rendering feature set (ad blocking, cookie banner removal, full-page capture). It omits auth/plan limits implied by cache_ttl clamping and any failure behavior for bad URLs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with what the tool does and the input constraint, then output formats, then optional features. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter tool with full schema coverage and no output schema, the description adequately covers inputs and return types. It is slightly short on caching semantics (cache/cache_ttl interaction) and error handling, but nothing critical for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 18 parameters are already documented with defaults and bounds; the baseline is 3. The description restates a subset of capabilities (device emulation, dark mode, ad blocking, full-page, viewports) without adding syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Capture a screenshot') and enumerates the three accepted input types (url, html, markdown), which separates it cleanly from siblings like extract_content and batch_screenshots. Output formats are named as well, so an agent knows what it gets back.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Provide exactly one of: url, html, or markdown', a clear usage constraint. However it never routes to alternatives such as batch_screenshots for multiple targets or check_screenshot_cache for cached results, so sibling selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_webhookAInspect

Send a test payload to a webhook endpoint to verify it receives events correctly. Returns the delivery status and HTTP response code.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_idYesThe webhook ID to test (from list_webhooks)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: it sends a test payload and returns delivery status and HTTP response code. Since annotations already declare readOnlyHint=false, destructiveHint=false, the description's mention of a test action with non-destructive consequences is appropriate and adds value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, no filler, and front-loaded with the core action. Every word is necessary and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is complete: it explains the action, the return value (delivery status and HTTP code), and the parameter is fully described in the schema. Annotations provide additional safety context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter (webhook_id) described as 'The webhook ID to test (from list_webhooks)'. The description mentions 'webhook endpoint' but adds little beyond the schema. Baseline 3 is appropriate since the schema already fully documents the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: sending a test payload to a webhook endpoint to verify event reception. It names the specific verb 'send' and resource 'test payload', and distinguishes from sibling tools like create_webhook (creation) and list_webhooks (listing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is used to verify that a webhook receives events correctly, providing clear context. However, it does not explicitly state when not to use it or suggest alternatives, such as checking webhook configuration via list_webhooks before testing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv1.5.6
    • Addedbatch_screenshots
    • Changedcheck_screenshot_cache9 fields changed
      • addedInput schema / properties / block_ads
        Added value: +{
        +  "description": "Block ads (default: true)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / click_selector
        Added value: +{
        +  "description": "CSS selector to click",
        +  "type": "string"
        +}
      • addedInput schema / properties / dark_mode
        Added value: +{
        +  "description": "Dark mode (default: false)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / device
        Added value: +{
        +  "description": "Device preset",
        +  "type": "string"
        +}
      • addedInput schema / properties / full_page
        Added value: +{
        +  "description": "Full page capture (default: false)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / height
        Added value: +{
        +  "description": "Viewport height (default: 800)",
        +  "type": "integer"
        +}
      • addedInput schema / properties / hide_selectors
        Added value: +{
        +  "description": "CSS selectors to hide",
        +  "type": "string"
        +}
      • addedInput schema / properties / quality
        Added value: +{
        +  "description": "Image quality (default: 90)",
        +  "type": "integer"
        +}
      • addedInput schema / properties / width
        Added value: +{
        +  "description": "Viewport width (default: 1280)",
        +  "type": "integer"
        +}
    • Addedcreate_webhook
    • Addeddelete_webhook
    • Addedextract_content
    • Addedget_batch_status
    • Addedlist_webhooks
    • Addedsign_screenshot_url
    • Changedtake_screenshot7 fields changed
      • addedInput schema / properties / cache
        Added value: +{
        +  "description": "Use cached result if available. Set to true to enable caching (default: false)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / cache_ttl
        Added value: +{
        +  "description": "Cache TTL in seconds, 0-2592000. Clamped to your plan max (default: 86400)",
        +  "maximum": 2592000,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / html
        Added value: +{
        +  "description": "Raw HTML content to render and capture (max 2MB). Mutually exclusive with url and markdown.",
        +  "type": "string"
        +}
      • addedInput schema / properties / markdown
        Added value: +{
        +  "description": "Markdown content to render with a clean styled template and capture (max 500KB). Mutually exclusive with url and html.",
        +  "type": "string"
        +}
      • changedInput schema / properties / url / description
        Previous value: -"URL to capture (must start with http:// or https://)"New value: +"URL to capture (must start with http:// or https://). Mutually exclusive with html and markdown."
      • addedInput schema / properties / user_agent
        Added value: +{
        +  "description": "Custom user agent string to use for the request",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[]
    • Addedtest_webhook
  2. 3 tool updatesv1.0.0
    • First observedcheck_screenshot_cache
    • First observedget_usage
    • First observedtake_screenshot

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct action+resource: single capture, batch capture, cache check, URL signing, batch polling, content extraction, webhook CRUD/test, and usage. The capture-family tools (take_screenshot, batch_screenshots, extract_content) are clearly differentiated by descriptions covering single vs. bulk vs. structured extraction.

Naming Consistency4/5

Mostly a consistent verb_noun pattern (take_screenshot, check_screenshot_cache, get_batch_status, extract_content, list_webhooks, create_webhook, delete_webhook, test_webhook, get_usage). The lone deviation is batch_screenshots, which is noun-first but still readable and unambiguous.

Tool Count5/5

11 tools is well within the sweet spot for a screenshot/rendering service, with each tool covering a distinct capability (capture, batch, cache, signing, extraction, webhooks, usage). No tool feels redundant or padded.

Completeness4/5

Covers the core lifecycle: single/batch capture, cache check, signed sharing, content extraction, webhook management, and usage reporting. Minor gaps exist such as no batch cancel/list or update_webhook (delete-and-recreate is the workaround), but no workflow dead-ends.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers