Built for Windows and distributed as a .NET 10 tool via NuGet, this server gives Claude direct screen capture capabilities through stdio transport. You get seven tools: list connected displays, capture the full desktop or specific monitors, grab rectangular regions by coordinates, screenshot the active window, and delete captured images in bulk or by date range. It automatically hides Windows Terminal during captures to avoid self-reference artifacts. All images save as PNG files to a configurable directory (defaults to C:\capture_screen). Useful when you need Claude to see your actual screen state, analyze UI layouts, or debug visual issues without manual screenshot workflows. Windows-only implementation that runs with your user permissions.
Windows 向けのローカル実行型 MCP サーバーです(stdio transport)。
C# / .NET 10 の .NET tool として NuGet.org に公開しており、画面キャプチャとキャプチャ画像削除ツールを提供します。
io.github.ochtum/capture-screenCaptureScreenMcpcapture-screen-mcpcapture_screen / capture_display / capture_region 実行時に、撮影領域に重なった Windows Terminal を一時的に非表示化(既定で有効)list_displays()capture_screen(outputPath?: string)capture_display(display?: int | string, outputPath?: string)capture_region(x: int, y: int, width: int, height: int, outputPath?: string)capture_active_window(outputPath?: string)delete_all_capture_images()delete_capture_images_by_datetime(targetDate?: string, startDatetime?: string, endDatetime?: string)dnx を使用します。dotnet run を使用します。CAPTURE_SCREEN_DEFAULT_DISPLAY
capture_display で display 省略時の既定値primary, left, right, プライマリ, 左, 右, 2CAPTURE_SCREEN_OUTPUT_DIR
C:\capture_screen)CAPTURE_SCREEN_HIDE_FOREGROUND_WINDOWS_TERMINAL
1/true/on で有効、0/false/off で無効NuGet.org の公開済みパッケージを MCP クライアントから起動する場合は、dnx で CaptureScreenMcp を実行します。
{
"servers": {
"capture-screen": {
"type": "stdio",
"command": "dnx",
"args": ["CaptureScreenMcp@1.0.5", "--yes"],
"env": {
"CAPTURE_SCREEN_OUTPUT_DIR": "C:\\capture_screen",
"CAPTURE_SCREEN_DEFAULT_DISPLAY": "primary",
"CAPTURE_SCREEN_HIDE_FOREGROUND_WINDOWS_TERMINAL": "1"
}
}
}
}
通常の .NET tool としてインストールして起動することもできます。
dotnet tool install --global CaptureScreenMcp --version 1.0.5
capture-screen-mcp
dotnet restore
dotnet build
dotnet run --project src
開発中にソースツリーを直接参照する場合の接続設定例です。
{
"servers": {
"capture-screen": {
"type": "stdio",
"command": "dotnet",
"args": ["run", "--project", "src"],
"env": {
"CAPTURE_SCREEN_OUTPUT_DIR": "C:\\capture_screen",
"CAPTURE_SCREEN_DEFAULT_DISPLAY": "primary",
"CAPTURE_SCREEN_HIDE_FOREGROUND_WINDOWS_TERMINAL": "1"
}
}
}
}
src/CaptureScreenMcp.csproj の <Version> を更新します。.mcp/server.json のトップレベル version と packages[0].version を同じバージョンに更新します。dotnet pack src/CaptureScreenMcp.csproj -c Releasedotnet nuget push src/bin/Release/*.nupkg --api-key <NUGET_API_KEY> --source https://api.nuget.org/v3/index.jsonこのパッケージは NuGet MCP サーバーとして認識されるため、以下を含めています。
.mcp/server.jsonREADME.md の <!-- mcp-name: io.github.ochtum/capture-screen --> コメントPackageIcon に指定した icon.pngMcpServer package typePackAsTool / ToolCommandName)NuGet.org への公開だけでは、registry.modelcontextprotocol.io には自動掲載されません。
NuGet.org のパッケージ検証が完了してから、MCP Publisher で .mcp/server.json を公開します。
mcp-publisher login github
mcp-publisher publish .mcp/server.json
server.json の name と、NuGet パッケージに含まれる README.md の mcp-name は一致している必要があります。
また、packages[0].version は mcp-name が一致する NuGet パッケージのバージョンを指している必要があります。
CAPTURE_SCREEN_OUTPUT_DIR 直下の画像ファイルを削除します。server.json.mcp/server.jsonCAPTURE_SCREEN_DEFAULT_DISPLAYDefault display selector when capture_display display argument is omitted.
CAPTURE_SCREEN_OUTPUT_DIRDefault output directory for PNG captures. Default is C:\capture_screen.
CAPTURE_SCREEN_HIDE_FOREGROUND_WINDOWS_TERMINALSet 0/false/off to disable temporary hiding of overlapping Windows Terminal windows during capture.