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 dayong@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.comnotexample.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