Skip to main content
Glama
soyalumno

chouseisan-mcp

by soyalumno
README.md
# chouseisan-mcp

調整さん(chouseisan.com)をAIエージェントやCLIから読み書きする、ローカルMCPサーバーです。

## できること

| MCPツール | 用途 |
|---|---|
| `chouseisan_create_event` | イベントを作成 |
| `chouseisan_get_event` | イベントと出欠表を取得 |
| `chouseisan_add_response` | 新しい回答を登録 |
| `chouseisan_update_response` | 名前が完全一致する回答を更新 |
| `chouseisan_delete_response` | 名前が完全一致する回答を削除 |

## 注意事項

調整さんには公式APIがないため、このツールはWebサイトで使われている非公式HTTPプロトコルを直接利用します。調整さん側のHTMLや通信仕様が変わると動作しなくなる可能性があります。イベント作成・回答登録・回答更新・回答削除は実データに影響するため、実行対象を確認してから使用してください。

## セットアップ

Node.js 18以降が必要です。

```bash
git clone https://github.com/soyalumno/chouseisan-mcp.git
cd chouseisan-mcp
npm install
```

### Claude Code

グローバル設定(`~/.claude.json`)の `mcpServers` に追加すると、全プロジェクトで使えます。

```json
{
  "mcpServers": {
    "chouseisan": {
      "type": "stdio",
      "command": "npx",
      "args": ["tsx", "/absolute/path/to/chouseisan-mcp/src/mcp_server.ts"],
      "env": {}
    }
  }
}
```

特定プロジェクトだけで使う場合は、そのプロジェクトの `.mcp.json` に同じ内容を書きます。

設定後、新しいClaude Codeセッションを開始すると `chouseisan_*` ツールが利用可能になります。

### Codex

`~/.codex/config.toml` の `[mcp]` セクションに追加します。

```toml
[mcp.chouseisan]
type = "stdio"
command = "npx"
args = ["tsx", "/absolute/path/to/chouseisan-mcp/src/mcp_server.ts"]
```

## CLI

```bash
# イベント作成
npx tsx src/cli.ts create --title "懇親会" --memo "候補日を選んでください" --dates "7/25(土) 19:00〜,7/26(日) 19:00〜"

# イベント取得(テキスト表)
npx tsx src/cli.ts get "https://chouseisan.com/s?h=<hash>"

# イベント取得(JSON)
npx tsx src/cli.ts get "<hash>" --json

# 回答登録
npx tsx src/cli.ts respond "<hash>" --name "山田" --marks "○,×" --comment "25日希望です"

# 回答更新(省略した項目は既存値を維持)
npx tsx src/cli.ts update "<hash>" --name "山田" --marks "△,○"
npx tsx src/cli.ts update "<hash>" --name "山田" --comment "予定が変わりました"

# 回答削除
npx tsx src/cli.ts delete "<hash>" --name "山田"
```

入力できる出欠記号は `○`(`◯` / `o` / `O` / `1`)、`△`(`2`)、`×`(`x` / `X` / `3`)、`-`(`0` / 空文字)です。