0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Chatworkシリーズ #5】Chatwork MCPを繋いだら、17ルームの未読が10秒で片付いた

0
Last updated at Posted at 2026-03-13

「今日のChatwork、何か来てる?」

朝、コーヒーを淹れながらターミナルに打つ。Claude Codeが17ルーム分のメッセージを取ってきて、要約する。返信が必要なものには「これ、返した方がいいですよ」と言ってくる。

ブラウザでChatworkを開いていない。通知も見ていない。でもメッセージは全部読めている。

Chatwork MCPを繋いだ日から、こうなった。

Chatwork MCPとは

ChatworkのAPIをMCP(Model Context Protocol)経由でClaude Codeに接続するサーバーだ。npmに公式パッケージとして公開されている。

npm info @chatwork/mcp-server

これを入れると、Claude Codeの中からChatworkの全APIを叩ける。メッセージの取得・投稿、タスク管理、ルーム操作、メンバー管理、ファイル一覧——APIで出来ることは全部できる。

セットアップ

1. APIトークンを取得

Chatworkの管理画面からAPIトークンを発行する。

「サービス連携 → API → APIトークン」の順。表示されたトークンを控える。

2. Claude Codeに追加

ターミナルで:

claude mcp add chatwork -- npx -y @chatwork/mcp-server

APIトークンは環境変数で渡す。.claude/settings.local.json(gitignore推奨)に書くか、シェルの環境変数に設定する:

export CHATWORK_API_TOKEN="your_token_here"

.claude/settings.local.jsonで環境変数を指定する場合:

{
  "env": {
    "CHATWORK_API_TOKEN": "your_token_here"
  }
}

3. 接続確認

Claude Codeを起動して「Chatworkのルーム一覧を見せて」と言えば動く。

> Chatworkのルーム一覧を見せて

list_roomsを実行中...

17件のルームが見つかりました:
1. 社内連絡(room_id: 123456)
2. 開発チーム(room_id: 234567)
...

これで完了。所要時間は3分くらいだ。

使えるツール一覧

接続すると使えるようになるMCPツールは20個以上ある。よく使うものだけ抜粋する:

ツール 用途
list_rooms ルーム一覧取得
get_room ルーム詳細
list_room_messages メッセージ取得
post_room_message メッセージ投稿
list_room_tasks タスク一覧
create_room_task タスク作成
list_room_members メンバー一覧
list_room_files ファイル一覧
get_room_file ファイル詳細
get_me 自分のアカウント情報
get_my_status 未読数など

全部で34 APIある。Chatwork APIのv2がカバーしている範囲は全部使える。

実用パターン

パターン① 朝の未読チェック

一番よく使う。

> Chatworkの未読メッセージを確認して

Claude Codeはget_my_statusで未読数を確認し、list_roomsでルーム一覧を取得、未読のあるルームのlist_room_messagesを順に叩いてくれる。

17ルームあっても10秒くらい。ブラウザで1ルームずつ開いていくより圧倒的に速い。

パターン② メッセージ投稿

> 開発チームのルームに「本日の進捗:〇〇が完了しました」と投稿して

ルーム名で指定すれば、Claude Codeがlist_roomsでroom_idを特定してpost_room_messageで投稿する。IDを覚える必要はない。

Chatworkの装飾記法([info]タグなど)もそのまま使える:

> 社内連絡に以下をinfoタグ付きで投稿して:
> 明日の会議は10時からに変更になりました

パターン③ タスク管理

> 開発チームのタスク一覧を見せて。期限が今週のものだけ

list_room_tasksで取得して、期限でフィルタしてくれる。

新しいタスクの作成もできる:

> 田中さんに「見積書の確認」というタスクを期限3/15で作って

create_room_taskでアカウントID指定が必要だが、Claude Codeはlist_room_membersでメンバー一覧を取得して名前からIDを解決してくれる。

パターン④ 複数ルーム横断検索

これがブラウザでは面倒なやつだ。

> 過去1週間で「請求書」というキーワードが含まれるメッセージを全ルームから探して

Chatwork APIには全ルーム横断の検索APIがない。だからClaude Codeがlist_rooms→各ルームのlist_room_messagesを順に回して、ローカルでフィルタする。力技だが、それでも手作業より速い。

2アカウント同時接続

ここが個人的に一番気に入っている設定だ。

仕事で複数のChatworkアカウントを使っている人は少なくない。メインの会社アカウントと、事務局・副業・外部プロジェクト用のアカウント。ブラウザだとログイン切り替えが面倒で、毎回「あ、アカウント違う」となる。

Claude CodeのMCPは、同じサーバーを名前を変えて複数登録できる。

# メインアカウント
claude mcp add chatwork -- npx -y @chatwork/mcp-server

# サブアカウント(別名で追加)
claude mcp add chatwork-sub -- npx -y @chatwork/mcp-server

それぞれ別の環境変数でトークンを渡す:

{
  "mcpServers": {
    "chatwork": {
      "command": "npx",
      "args": ["-y", "@chatwork/mcp-server"],
      "env": {
        "CHATWORK_API_TOKEN": "main_account_token"
      }
    },
    "chatwork-sub": {
      "command": "npx",
      "args": ["-y", "@chatwork/mcp-server"],
      "env": {
        "CHATWORK_API_TOKEN": "sub_account_token"
      }
    }
  }
}

使い分けはこうなる:

> メインのChatworkで社内連絡を確認して
> サブのChatworkで事務局ルームにメッセージを送って

Claude Codeはmcp__chatwork__list_roomsmcp__chatwork-sub__list_roomsを区別してくれる。MCP名がそのまま接頭辞になるので混線しない。

2つのアカウントの未読を一度に確認できるのは、ブラウザでは絶対にできない体験だ。

ハマりどころ

APIトークンの権限

Chatwork APIトークンは、そのアカウントが参加しているルームの情報しか取れない。「あのルームのメッセージが見えない」と思ったら、そもそもそのアカウントがルームに参加していないケースが多い。

メッセージ取得の100件制限

list_room_messagesは1回のリクエストで最新100件しか返さない。それ以上遡るにはforce=1パラメータが必要だが、5分間に1回しか実行できない制限がある。大量のメッセージを一気に取得したいときは、GASやn8nでバッチ処理した方がいい。

投稿ミスに注意

post_room_messageは実行した瞬間に送信される。確認ダイアログは出ない。Claude Codeに「このルームに投稿して」と頼むとき、ルーム名を間違えると別のルームに投稿されることがある。

対策は2つ:

  1. 「投稿する前にルーム名とメッセージ内容を確認して」と毎回言う
  2. 前回のHooks記事で紹介したPreToolUseフックで、post_room_message実行前に確認ステップを挟む

正直、2の方が確実だ。

@chatwork/mcp-serverのバージョン

npmの@chatwork/mcp-serverはChatwork(kubell社)が公式でメンテナンスしている。npx -yで常に最新版が取得されるので、バージョン管理の心配は少ない。ただしAPIの仕様変更には要注意。

Chatwork MCPでできないこと

念のために書いておく。

  • ファイルのアップロード: multipart/form-dataが必要で、現状のMCPサーバーではサポートされていない。ファイルを送りたいときはブラウザかGASを使う
  • Webhook受信: MCPは「Claude Code側から叩く」方向。Chatworkからの通知をリアルタイムで受け取るにはn8nやGASのWebhookが必要
  • 組織管理API: Chatwork Enterprise限定のAPIはMCPでも使えるが、ビジネスプラン以下では利用不可

所感

Chatwork MCPを入れてから、Chatworkのブラウザタブを開く頻度が激減した。

「メッセージを読む」「返事を書く」「タスクを作る」——日常的な操作の8割はターミナルで済む。ブラウザに切り替える必要があるのは、ファイルをアップロードするときと、リアクション(いいね)を押すときくらいだ。

Slack全盛の時代に、Chatwork APIの記事を書いている人間は少ない。MCPで繋いでいる人間はもっと少ない。だからこそ、ここに書いておく。

3分で繋がる。繋がったら、もうブラウザには戻れない。


Chatworkシリーズ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?