Windows 向けのローカル実行型 MCP サーバーです(stdio transport)。
C# / .NET 10 の .NET tool として NuGet.org に公開しており、画面キャプチャとキャプチャ画像削除ツールを提供します。
- NuGet: CaptureScreenMcp
- MCP Registry name:
io.github.ochtum/capture-screen - NuGet package ID:
CaptureScreenMcp - Tool command:
capture-screen-mcp
- 接続ディスプレイ情報の取得
- デスクトップ全体、指定ディスプレイ、指定領域、アクティブウィンドウの PNG キャプチャ
- 出力先ディレクトリ内のキャプチャ画像一括削除
- 日付/日時範囲でのキャプチャ画像削除
capture_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)
- Windows
- .NET 10 SDK
- NuGet から MCP サーバーとして起動する場合は
dnxを使用します。 - 開発中にソースから起動する場合は
dotnet runを使用します。
- NuGet から MCP サーバーとして起動する場合は
CAPTURE_SCREEN_DEFAULT_DISPLAYcapture_displayでdisplay省略時の既定値- 例:
primary,left,right,プライマリ,左,右,2
CAPTURE_SCREEN_OUTPUT_DIR- 保存先ディレクトリ(既定:
C:\capture_screen)
- 保存先ディレクトリ(既定:
CAPTURE_SCREEN_HIDE_FOREGROUND_WINDOWS_TERMINAL1/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-mcpdotnet restore
dotnet builddotnet 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.pngMcpServerpackage type- .NET tool 設定(
PackAsTool/ToolCommandName)
NuGet.org への公開だけでは、registry.modelcontextprotocol.io には自動掲載されません。
NuGet.org のパッケージ検証が完了してから、MCP Publisher で .mcp/server.json を公開します。
mcp-publisher login github
mcp-publisher publish .mcp/server.jsonserver.json の name と、NuGet パッケージに含まれる README.md の mcp-name は一致している必要があります。
また、packages[0].version は mcp-name が一致する NuGet パッケージのバージョンを指している必要があります。
- 本サーバーはローカル実行型です。MCP クライアントと同じユーザー権限で動作します。
- 画面キャプチャ結果はローカルファイルとして保存されます。機密情報が映り込む可能性に注意してください。
- 画像削除ツールは
CAPTURE_SCREEN_OUTPUT_DIR直下の画像ファイルを削除します。 - Windows 専用実装です。Windows 以外で実行するとエラーになります。
- 開発実行用:
server.json - NuGet MCP 公開用:
.mcp/server.json