adibirzu/mcp-screenshot-server
If you are the rightful owner of mcp-screenshot-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MCP Screenshot Server for Logan Security Dashboard is a specialized server designed to automate the process of capturing and annotating screenshots for the Logan Security Dashboard.
Generic MCP Screenshot Server
A Model Context Protocol (MCP) server that provides automated screenshot capabilities for any website.
Features
- š¼ļø Universal Screenshots: Capture any website by providing a URL
- š Application Organization: Automatically organize screenshots by application (Oracle Cloud, AWS, Azure, etc.)
- š Authenticated Sessions: Support for cookies, localStorage, sessionStorage, and custom headers
- šļø Image Viewing: Screenshots are automatically displayed in Claude/ChatGPT responses
- š± Batch Processing: Take screenshots of multiple websites at once
- ⨠Smart Annotations: Add arrows, circles, rectangles, and text overlays
- š Documentation Generation: Create HTML guides with all screenshots
- šÆ High Quality: Full HD (1920x1080) PNG screenshots with timestamps
- ā” Fast & Reliable: Uses Puppeteer for consistent browser automation
Tools Available
1. take_screenshot
Capture any website with custom settings.
Parameters:
url
- Complete URL (e.g., "https://example.com", "http://localhost:3000")filename
- Output filename without extensionwidth/height
- Viewport dimensions (default: 1920x1080)waitForSelector
- CSS selector to wait for before capturingdelay
- Additional delay in milliseconds
2. take_multiple_screenshots
Automatically capture multiple websites.
Parameters:
urls
- Array of URL objects with url, filename, and optional waitForSelector
3. annotate_screenshot
Add visual annotations to existing screenshots.
Parameters:
filename
- Screenshot to annotateannotations
- Array of annotation objects (arrows, circles, rectangles, text)
4. list_screenshots
List all screenshots organized by application.
Parameters:
appName
- Filter by specific application (optional)limit
- Maximum screenshots to return (default: 50)
5. view_screenshot
View a specific screenshot by filename.
Parameters:
filename
- Screenshot filename (with or without .png extension)appName
- Application folder name (optional)
6. extract_session_data
Extract session data from a URL for authenticated screenshots.
Parameters:
url
- URL to extract session data fromincludeStorage
- Include localStorage and sessionStorage (default: true)
7. connect_to_browser
Connect to an existing browser instance with remote debugging.
Parameters:
port
- Browser remote debugging port (default: 9222)url
- Browser URL to connect to
8. create_screenshot_guide
Generate an HTML guide with all screenshots.
Parameters:
title
- Guide titleoutputFile
- HTML filename
Installation
-
Install Dependencies:
npm install
-
Build the Server:
npm run build
-
Configure Claude Desktop: Add to
~/Library/Application Support/Claude/claude_desktop_config.json
:{ "mcpServers": { "generic-screenshot": { "command": "node", "args": ["/Users/abirzu/dev/mcp-screenshot-server/dist/index.js"], "env": {} } } }
-
Restart Claude Desktop to load the MCP server.
Usage Examples
Basic Screenshot
Take a screenshot of https://cloud.oracle.com/loganalytics/explorer
Authenticated Screenshot
Take a screenshot of https://cloud.oracle.com/dashboard with session data from my browser
Multiple Websites
Take screenshots of these websites: https://cloud.oracle.com, https://console.aws.amazon.com, https://portal.azure.com
List Screenshots
List all my Oracle Cloud screenshots
View Screenshot
Show me the latest Oracle Cloud screenshot
Local Development Server
Take a screenshot of http://localhost:3000/dashboard
Annotated Screenshots
Take a screenshot of https://news.ycombinator.com and add arrows pointing to the top stories
Documentation Generation
Create a screenshot guide with all the captured images
Requirements
- Node.js 18+
- Internet connection for accessing websites
- Claude Desktop with MCP support
Project Structure
mcp-screenshot-server/
āāā src/
ā āāā index.ts # Main MCP server implementation
āāā dist/ # Compiled JavaScript
āāā screenshots/ # Generated screenshots
āāā package.json
āāā tsconfig.json
āāā README.md
Development
# Build and run
npm run dev
# Build only
npm run build
# Test server
npm test
Troubleshooting
Common Issues
-
MCP Server Not Loading
- Check Claude Desktop configuration syntax
- Verify file paths are correct
- Restart Claude Desktop
-
Screenshots Failing
- Ensure target website is accessible
- Check Puppeteer browser permissions
- Verify network connectivity
- Use complete URLs with protocol (https:// or http://)
-
Invalid URL Errors
- Provide complete URLs:
https://example.com
notexample.com
- Include protocol for local servers:
http://localhost:3000
- Provide complete URLs:
-
No Screenshots Directory
- Server automatically creates
screenshots/
directory - Ensure write permissions in project folder
- Server automatically creates
Example URLs
- Public websites:
https://www.google.com
,https://github.com
- Local development:
http://localhost:3000
,http://127.0.0.1:8080
- Specific pages:
https://example.com/about
,http://localhost:3000/dashboard
License
MIT License - see LICENSE file for details.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Generic Screenshot Server
Version: 1.0.0
Last Updated: January 2025