Skip to main content
Glama
my13each

Draw Things MCP Server

by my13each
README.md
# Draw Things MCP Server

[Draw Things](https://drawthings.ai/) アプリを活用して、**Claude Desktop / Claude Code**から**無料でローカル画像生成**ができるMCPサーバーです。

Google Gemini、OpenAIなどの有料APIなしで、MacのApple Silicon(M1〜M4)で直接画像を生成します。

> 元リポジトリ: [james-see/mcp-drawthings](https://github.com/james-see/mcp-drawthings)
> このリポジトリは、FLUX.1 Schnellモデル向けにデフォルト設定を最適化したバージョンです。

## 変更点(元リポジトリとの違い)

- **デフォルトsteps: 20 → 4** — FLUX.1 Schnellモデルは4 stepsで十分な品質の画像を生成します。20〜30 stepsは不要に遅くなります。

---

## 必要要件

- **macOS**(Apple Silicon M1/M2/M3/M4)
- **Draw Things** アプリ([App Store](https://apps.apple.com/app/draw-things-ai-generation/id6444050820))
- **Node.js** 18以上

---

## ステップ1: Draw Thingsアプリのインストールと設定

### 1-1. アプリのインストール

App Storeで **Draw Things** を検索してインストールします。

### 1-2. 初期設定(モデルのダウンロード)

アプリを初めて起動すると、モデルソースの選択画面が表示されます。

| ステップ | 選択内容 |
|----------|----------|
| ステップ 1/3: モデルソース | **「Draw Things経由でモデルをダウンロード」** を選択 |
| Cloud Compute | **オフ**(ローカル実行のみなので不要) |
| ステップ 2/3: モデル選択 | 検索欄に **`flux`** と入力 → **「FLUX.1 [schnell]」** を選択 |
| ステップ 3/3: 保存先フォルダ | デフォルトまたは任意のフォルダを選択 |

> **補足:** FLUX.1 [schnell] 通常版は約11.7GBです。Mac RAMが8GBの場合は5-bit版を選択してください。

ダウンロードが完了するまで待ちます。

### 1-3. APIサーバーを有効にする

1. 左サイドバーの **「設定」**(歯車アイコン)をクリック
2. 上部タブの **「詳細」** をクリック
3. **「APIサーバー」** セクションを探す
4. 以下のように設定:

| 設定項目 | 値 |
|----------|-----|
| サーバーオンライン | **オン**(緑色) |
| プロトコル | **HTTP** |
| ポート | **7860**(デフォルト) |

設定後、ターミナルで確認:

```bash
curl http://localhost:7860
```

JSONレスポンスが返ってくれば成功です。

> **重要:** Draw Thingsアプリは常に起動している必要があります。アプリを閉じるとAPIサーバーも停止します。最小化しておけばOKです。

---

## ステップ2: MCPサーバーのインストール

```bash
git clone https://github.com/my13each/Drawthings_MCP.git
cd Drawthings_MCP
npm install
npm run build
```

---

## ステップ3: MCPクライアントの設定

### Claude Desktop

`~/Library/Application Support/Claude/claude_desktop_config.json` に追加:

```json
{
  "mcpServers": {
    "drawthings": {
      "command": "node",
      "args": ["/絶対パス/Drawthings_MCP/dist/index.js"]
    }
  }
}
```

設定後、**Claude Desktopを再起動**します。

### Claude Code

```bash
claude mcp add --scope user drawthings -- node /絶対パス/Drawthings_MCP/dist/index.js
```

新しい会話を開始すると反映されます。

---

## 使い方

Claudeにこう言うだけです:

> 「宇宙でピザを食べるかわいい猫を描いて」

> "Generate an image of a futuristic city at sunset"

> 英語のプロンプトの方が高品質な画像が生成されます。

---

## MCPツール一覧

| ツール | 説明 |
|--------|------|
| `check_status` | Draw Things APIの接続状態を確認 |
| `get_config` | 現在ロードされているモデルと設定を取得 |
| `generate_image` | テキストから画像を生成 |
| `transform_image` | 既存の画像をテキストプロンプトで変換 |

### generate_image パラメータ

| パラメータ | 型 | 必須 | 説明 |
|------------|------|------|------|
| `prompt` | string | O | 画像の説明テキスト |
| `negative_prompt` | string | X | 除外する要素 |
| `width` | number | X | 画像の幅(デフォルト: 512) |
| `height` | number | X | 画像の高さ(デフォルト: 512) |
| `steps` | number | X | 推論ステップ数(デフォルト: 4) |
| `cfg_scale` | number | X | ガイダンススケール(デフォルト: 7.5) |
| `seed` | number | X | シード値(-1 = ランダム) |
| `output_path` | string | X | 保存先パス |

### transform_image パラメータ

| パラメータ | 型 | 必須 | 説明 |
|------------|------|------|------|
| `prompt` | string | O | 変換の説明テキスト |
| `image_path` | string | * | 元画像のファイルパス |
| `image_base64` | string | * | Base64エンコードされた元画像 |
| `denoising_strength` | number | X | 変換強度 0.0〜1.0(デフォルト: 0.75) |
| `steps` | number | X | 推論ステップ数(デフォルト: 4) |

\* `image_path` または `image_base64` のどちらか必須

---

## 環境変数

| 変数 | デフォルト | 説明 |
|------|-----------|------|
| `DRAWTHINGS_HOST` | `localhost` | APIサーバーのホスト |
| `DRAWTHINGS_PORT` | `7860` | APIサーバーのポート |
| `DRAWTHINGS_OUTPUT_DIR` | `~/Pictures/drawthings-mcp` | 画像の保存ディレクトリ |

---

## アーキテクチャ

```
┌─────────────────┐     stdio      ┌──────────────────┐     HTTP      ┌─────────────┐
│   MCP Client    │◄──────────────►│  mcp-drawthings  │◄────────────►│ Draw Things │
│ (Claude/Cursor) │   JSON-RPC     │                  │  localhost    │    App      │
└─────────────────┘                └──────────────────┘   :7860       └─────────────┘
                                           │
                                           ▼
                                   ┌──────────────┐
                                   │  File System │
                                   │   (images)   │
                                   └──────────────┘
```

---

## トラブルシューティング

### 「Draw Things APIに接続できません」

1. Draw Thingsアプリが起動中か確認
2. 設定で「サーバーオンライン」がオンになっているか確認
3. `curl http://localhost:7860` でレスポンスを確認
4. アプリを閉じて再起動した場合、APIサーバーを再度オンにする必要がある場合があります

### 画像が生成されない

1. Draw Thingsにモデルがロードされているか確認
2. Draw Thingsアプリで直接画像生成をテスト
3. アプリのエラーメッセージを確認

---

## ライセンス

MIT

## クレジット

- 元リポジトリ: [james-see/mcp-drawthings](https://github.com/james-see/mcp-drawthings)
- [Draw Things](https://drawthings.ai/) - Mac/iOS AI画像生成アプリ
- [Model Context Protocol](https://modelcontextprotocol.io/) - MCPプロトコル仕様

TDQS

A4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: status checking, configuration retrieval, text-to-image generation, and image-to-image transformation. There is no meaningful overlap between any pair of tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: check_status, get_config, generate_image, transform_image. The naming style is uniform and predictable.

Tool Count5/5

Four tools is a well-scoped count for an image generation server. Each tool covers an essential operation without unnecessary redundancy or bloat.

Completeness4/5

The core workflow of checking server status, viewing configuration, generating images, and transforming images is covered. A possible minor gap is the lack of a tool to update configuration or switch models, but this does not block the primary use case.

Maintenance

ActivityInactive
ResponsivenessNo issues