MCP-URL2SNAP
Uses AbstractAPI's screenshot service to capture webpage images from any URL and return access URLs for the captured images
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP-URL2SNAPtake a screenshot of https://news.ycombinator.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP URL2SNAP ππ€
A lightweight Model Context Protocol (MCP) server that enables your LLM to capture screenshots of any specified URL and return only the access URL for the captured image. This tool simplifies the process of generating and sharing webpage snapshots, making it perfect for integrating visual capture capabilities into AI applications like Claude Desktop or automation workflows.
What is Model Context Protocol (MCP)?
At its core, MCP is a standardized protocol designed to streamline communication between AI models and external systems. Think of it as a universal language that allows different AI agents, tools, and services to interact seamlessly.
Features
Email Verification: Verify email addresses in real-time.
MCP Integration: Seamlessly connect with MCP-compatible LLMs.
Easy Setup: Built with Python and the MCP SDK for quick deployment.
MCP follows a client-server architecture:
Watch the Demo
Click the image below to watch a video demo of the MCP Email Verify tool in action:
Related MCP server: SnapAPI MCP Server
Requirements
Python: Python 3.11.0 or higher.
UV: 0.6.9 or higher.
Setup
Installing via Smithery
To install MCP-URL2SNAP for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @Abhi5h3k/MCP-URL2SNAP --client claudeManual Installation
1. Clone the Repository
git clone https://github.com/Abhi5h3k/MCP-URL2SNAP.git
cd MCP-URL2SNAP2. Install UV
If you donβt have UV installed, you can install it using the following commands:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Verify the installation:
uv --version3. Set Up the Virtual Environment
Create a virtual environment using UV:
uv venvActivate the virtual environment: On Windows:
.venv\Scripts\activate4. Install Dependencies Install the required dependencies from pyproject.toml using UV:
uv installRunning the Server
Set Up Environment Variables Create a .env file in the root directory and add your AbstractAPI key:
ABSTRACT_API_KEY=your_api_key_hereRun the Server Start the MCP server:
uv run server.pyUsage
Register the Server with Claude Desktop Update the claude_desktop_config.json file to include your MCP server:
{
"mcpServers": {
"verify_mail": {
"command": "uv",
"args": [
"--directory",
"C:\\ABSOLUTE\\PATH\\TO\\MCP-Email-Verify",
"run",
"server.py"
],
"env":{
"ABSTRACT_API_KEY":"YUR_API_KEY"
}
}
}
}
Restart Claude Desktop Restart Claude Desktop to detect the new tool.
Verify Emails Use prompts like:
"can you show me the screenshot of https://github.com/Abhi5h3k"
Development
Formatting and Linting This project uses black and isort for code formatting and import sorting.
Install development dependencies:
uv add black isort --devFormat the code:
black .Sort imports:
isort .Set up pre-commit
pre-commit install
pre-commit run --all-filesArticle: Model Context Protocol (MCP): A Beginner's Guide to the Future of AI Communication
Available Tools
1 toolcapture_screenshotA
Captures a screenshot of the specified URL and returns only the access URL.
Args:
url (str): The URL to capture a screenshot of.
Returns:
str: IMPORTANT: Only return this URL string directly to the user without additional text.
Format: 'http://localhost:8011/screenshots/[unique-identifier].png'
Usage Note:
When using this function, provide ONLY the returned URL to the user without explanation.
The user needs only this URL to access the screenshot.
Raises:
ValueError: If the API key is not found in the environment variables.
requests.exceptions.HTTPError: If the API request fails (e.g., 4xx or 5xx error).
Exception: For any other unexpected errors.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does so effectively. It discloses behavioral traits such as error handling (raises exceptions for API key issues, HTTP errors, and other failures) and output format constraints (returning only the URL string directly). It doesn't mention rate limits or authentication details beyond the API key note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for Args, Returns, Usage Note, and Raises, making it easy to parse. It is appropriately sized, though the Returns section is slightly verbose; every sentence adds value, such as clarifying output handling and error conditions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is complete. It covers purpose, usage, parameters, return behavior, and error handling, providing all necessary context for an AI agent to invoke the tool correctly without gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% coverage. It explains that the 'url' parameter is 'The URL to capture a screenshot of', clarifying its purpose and usage, fully compensating for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('captures a screenshot') and target resource ('of the specified URL'), with explicit output details ('returns only the access URL'). It distinguishes itself by focusing solely on URL capture and return, though no siblings exist for comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool (to capture screenshots of URLs and return access URLs) and includes explicit usage notes about how to handle the output. However, it lacks guidance on alternatives or exclusions, which is less critical given no sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of confusion or overlap between tools. The tool has a single, clear purpose of capturing screenshots from URLs.
With a single tool, naming consistency is inherently perfect. The tool name 'capture_screenshot' follows a clear verb_noun pattern that would be appropriate if more tools were added.
A single tool feels thin for a screenshot capture server. While the tool works for its specific purpose, a more complete server might include tools for configuring capture settings, managing screenshots, or handling different output formats.
The server provides only a basic screenshot capture function. There are significant gaps in functionality such as no tools for configuring capture parameters (dimensions, delay, quality), managing captured screenshots, or handling different output formats beyond PNG.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Screenshot any URL/HTML as PNG/JPEG/WebP, or read it as clean Markdown/text for LLMs.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
Screenshots, PDFs and Markdown from any URL or HTML for AI agents, via the SnapForge API
Screenshot, diff, audit and sitemap-capture any web page β 5 MCP tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol (MCP) server for taking screenshots of web pages using Playwright, allowing AI agents to automatically capture and analyze screenshots for UI verification or other tasks.91423AGPL 3.0
- AlicenseAqualityDmaintenanceMCP server for the SnapAPI web capture API. Take screenshots, scrape pages, extract structured data, generate PDFs, record videos, and run AI analysis on any URL β all from Claude, Cursor, VS Code, or any MCP client. 9 tools, 30+ device presets, ad/cookie blocking. Install: npx snapapi-mcp913MIT
- AlicenseAqualityCmaintenanceA small Model Context Protocol (MCP) server that gives an LLM eyes on your desktop without burning context. It can take one-off screenshots, crop a region around the mouse cursor, and run timed streaming sessions that save frames to disk and only return image bytes when explicitly asked.8MIT
- FlicenseNot gradedqualityDmaintenanceEnables tool-calling LLMs to search the internet, capture website images, extract webpage text, and more via a local MCP server.15
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Abhi5h3k/MCP-URL2SNAP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server