60e0ffc959
Upgrade checks / Notify on failure (push) Has been cancelled
Upgrade checks / Close issue on success (push) Has been cancelled
Schema Crash Test / Real-world schema crash test (232K schemas) (push) Has been cancelled
Run static analysis / static_analysis (push) Has been cancelled
Tests / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Tests / Tests with lowest-direct dependencies (push) Has been cancelled
Tests / MCP conformance tests (push) Has been cancelled
Tests / Integration tests (push) Has been cancelled
Tests / Package install smoke (push) Has been cancelled
Upgrade checks / Static analysis (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Upgrade checks / Integration tests (push) Has been cancelled
Update MCPServerConfig Schema / update-config-schema (push) Has been cancelled
Update SDK Documentation / update-sdk-docs (push) Has been cancelled
35 lines
852 B
Python
35 lines
852 B
Python
# /// script
|
|
# dependencies = ["pyautogui", "Pillow", "fastmcp"]
|
|
# ///
|
|
|
|
"""
|
|
FastMCP Screenshot Example
|
|
|
|
Give Claude a tool to capture and view screenshots.
|
|
"""
|
|
|
|
import io
|
|
|
|
from fastmcp import FastMCP
|
|
from fastmcp.utilities.types import Image
|
|
|
|
# Create server
|
|
# Dependencies are configured in screenshot.fastmcp.json
|
|
mcp = FastMCP("Screenshot Demo")
|
|
|
|
|
|
@mcp.tool
|
|
def take_screenshot() -> Image:
|
|
"""
|
|
Take a screenshot of the user's screen and return it as an image. Use
|
|
this tool anytime the user wants you to look at something they're doing.
|
|
"""
|
|
import pyautogui
|
|
|
|
buffer = io.BytesIO()
|
|
|
|
# if the file exceeds ~1MB, it will be rejected by Claude
|
|
screenshot = pyautogui.screenshot()
|
|
screenshot.convert("RGB").save(buffer, format="JPEG", quality=60, optimize=True)
|
|
return Image(data=buffer.getvalue(), format="jpeg")
|