Back to the catalog

Capture Screen MCP

Windows screen capture MCP server with display, region, and active-window capture tools.

Open source Open in the app JSON README (API)

About

Windows screen capture MCP server with display, region, and active-window capture tools.

Details

Kind
MCP servers
Topic
No topic detected
Publisher
ochtum
Origin
official
Category
ferramentas
Transport
local
Version
1.0.5
Stars
2
Last push
2026-04-17T14:33:46Z
Repository state
ativo
Language
C#
License
MIT
Added
2026-08-29 04:00:57
Updated
2026-08-29 04:00:57
Origin id
io.github.ochtum/capture-screen

README

<p align="left">
  <a href="README_en.md"><img src="https://img.shields.io/badge/English Mode-blue.svg" alt="English"></a>
  <a href="README.md"><img src="https://img.shields.io/badge/日本語 モード-red.svg" alt="日本語"></a>
</p>

# CaptureScreenMCP

<!-- mcp-name: io.github.ochtum/capture-screen -->

Windows 向けのローカル実行型 MCP サーバーです(`stdio` transport)。
C# / .NET 10 の .NET tool として NuGet.org に公開しており、画面キャプチャとキャプチャ画像削除ツールを提供します。

- NuGet: [CaptureScreenMcp](https://www.nuget.org/packages/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` を一時的に非表示化(既定で有効)

## 利用可能な Tools

- `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` を使用します。

## 環境変数

- `CAPTURE_SCREEN_DEFAULT_DISPLAY`
  - `capture_display` で `display` 省略時の既定値
  - 例: `primary`, `left`, `right`, `プライマリ`, `左`, `右`, `2`
- `CAPTURE_SCREEN_OUTPUT_DIR`
  - 保存先ディレクトリ(既定: `C:\capture_screen`)
- `CAPTURE_SCREEN_HIDE_FOREGROUND_WINDOWS_TERMINAL`
  - `1/true/on` で有効、`0/false/off` で無効
  - 既定は有効

## NuGet から利用する

NuGet.org の公開済みパッケージを MCP クライアントから起動する場合は、`dnx` で `CaptureScreenMcp` を実行します。

```json
{
  "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 としてインストールして起動することもできます。

```powershell
dotnet tool install --global CaptureScreenMcp --version 1.0.5
capture-screen-mcp
```

## ソースから開発実行する

### ビルド

```powershell
dotnet restore
dotnet build
```

### MCP サーバー起動(stdio)

```powershell
dotnet run --project src
```

開発中にソースツリーを直接参照する場合の接続設定例です。

```json
{
  "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"
      }
    }
  }
}
```

## 公開手順

### NuGet.org へ公開する

1. `src/CaptureScreenMcp.csproj` の `<Version>` を更新します。
2. `.mcp/server.json` のトップレベル `version` と `packages[0].version` を同じバージョンに更新します。
3. `dotnet pack src/CaptureScreenMcp.csproj -c Release`
4. `dotnet nuget push src/bin/Release/*.nupkg --api-key <NUGET_API_KEY> --source https://api.nuget.org/v3/index.json`

このパッケージは NuGet MCP サーバーとして認識されるため、以下を含めています。

- `.mcp/server.json`
- `README.md` の `<!-- mcp-name: io.github.ochtum/capture-screen -->` コメント
- `PackageIcon` に指定した `icon.png`
- `McpServer` package type
- .NET tool 設定(`PackAsTool` / `ToolCommandName`)

### MCP Registry へ公開する

NuGet.org への公開だけでは、`registry.modelcontextprotocol.io` には自動掲載されません。
NuGet.org のパッケージ検証が完了してから、MCP Publisher で `.mcp/server.json` を公開します。

```powershell
mcp-publisher login github
mcp-publisher publish .mcp/server.json
```

`server.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`

More