mcpField
K
Kaption WhatsApp

Kaption WhatsApp

ローカル
github.com/Kaption-AIコミュニケーション11 日前に更新

Kaption WhatsApp について

Kaption WhatsApp は、KaptionAI Chrome 拡張機能を通じて WhatsApp を読み取り、管理する AI アシスタント向け MCP サーバーです。会話検索に加え、チャット整理、リマインダー、予約送信、通話録音の文字起こしに対応します。

主な機能

  1. 01会話、連絡先、メッセージ、文字起こしの検索
  2. 02チャット、ラベル、個人リストの管理
  3. 03リマインダー作成とメッセージ予約
  4. 04メディアのダウンロードと通話文字起こしの閲覧
  5. 05複数アカウント間でのツール振り分け

活用シーン

  1. 01未読チャットの確認やメッセージ履歴の検索
  2. 02会話の整理とチャット状態の更新
  3. 03フォローアップのリマインダー設定や送信予約
  4. 04通話録音と文字起こしの確認

MCP 対応

stdio MCP サーバーとして動作し、WebSocket 経由で KaptionAI 拡張機能に接続します。対応ブラウザーでは、拡張機能が WebMCP 経由でもツールを登録します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"kaption-ai-mcp-extension": {
"command": "npx",
"args": [
"-y",
"@kaptionai/mcp-extension"
]
}
}
}
起動コマンドnpx -y @kaptionai/mcp-extension

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@kaptionai/mcp-extension0.5.11

ツール

18

掲載時のツール一覧 · 4 日前に更新

パラメーター型必須説明
idstringいいえID で特定の会話、連絡先、またはラベルを検索します
liststringいいえリスト名または ID で会話を絞り込みます(個人アカウント)
afterstringいいえ増分同期用に、この ISO 8601 日時より後のメッセージを返します(例:"2026-03-01T12:00:00.000Z")
groupstringいいえグループ ID で連絡先を絞り込みます。このグループに所属する連絡先のみを返します
labelstringいいえラベル名または ID で会話を絞り込みます(ビジネスアカウント)
limitnumberいいえ結果の最大数(デフォルト 25、最大 5000)
querystringいいえ検索するテキスト(名前、メッセージ、文字起こし)
beforestringいいえカーソルベースの前方向ページネーション用に、この ISO 8601 日時より前のメッセージを返します(例:"2026-03-01T12:00:00.000Z")
entityenumいいえクエリ対象のエンティティタイプです。一覧表示ではデフォルトで "conversations"、検索ではすべてが対象です。接続済みの WhatsApp アカウントをすべて一覧表示するには "session" を使用します。conversations | contacts | messages | transcriptions | labels | communities | session
unreadbooleanいいえ未読メッセージがある会話のみを返します
communitystringいいえコミュニティ名または ID で会話を絞り込みます
exclude_mutedbooleanいいえ一覧からミュート済みの会話を除外します(デフォルト false)
target_sessionstringいいえ特定の WhatsApp アカウントを指定するセッション ID です。entity="session" でセッション ID を取得します。省略した場合、直近でアクティブだったアカウントにルーティングされます。
exclude_archivedbooleanいいえ一覧からアーカイブ済みの会話を除外します(デフォルト true)
include_participantsbooleanいいえ結果にグループ参加者を含めます。連絡先の ID から所属グループを確認したり、グループをクエリしてメンバーを確認したりする際に便利です。

詳細

@kaptionai/mcp-extension

KaptionAI の Chrome 拡張機能を通じて、AI アシスタントが WhatsApp の会話を読み取り、管理できる MCP サーバーです。また、設定不要でブラウザー標準の AI ツールを検出できる WebMCP にも対応しています。

Claude / Cursor ──stdio──> mcp-whatsapp ──ws://localhost:7865──> KaptionAI Extension ──> WhatsApp Web
Browser AI Agent ──navigator.modelContext──> KaptionAI Extension ──> WhatsApp Web (WebMCP)

エージェントスキル

Claude Code、Codex、Cursor などのエージェントに、これらのツールを適切に使う方法を教えます(最初に検索する、確認せずに送信しない、リマインダーと予約メッセージを使い分ける、エラーに対処する)。

npx skills add Kaption-AI/mcp-extension

スキルは skills/kaption-whatsapp/SKILL.md にあります。

セットアップ

1. 拡張機能をインストールする

KaptionAI Chrome Extension をインストールし、設定で MCP ブリッジを有効にします。

2. AI ツールを設定する

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "whatsapp": {
      "command": "npx",
      "args": ["-y", "@kaptionai/mcp-extension@latest"]
    }
  }
}

Claude Code

claude mcp add whatsapp -- npx -y @kaptionai/mcp-extension@latest

Cursor

プロジェクトの .cursor/mcp.json に追加するか、Settings > MCP Servers に移動します。

{
  "mcpServers": {
    "whatsapp": {
      "command": "npx",
      "args": ["-y", "@kaptionai/mcp-extension@latest"]
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json に追加します。

{
  "mcpServers": {
    "whatsapp": {
      "command": "npx",
      "args": ["-y", "@kaptionai/mcp-extension@latest"]
    }
  }
}

VS Code (Copilot)

プロジェクトの .vscode/mcp.json に追加します。

{
  "servers": {
    "whatsapp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@kaptionai/mcp-extension@latest"]
    }
  }
}

または、VS Code の settings.json に追加します。

{
  "mcp": {
    "servers": {
      "whatsapp": {
        "type": "stdio",
        "command": "npx",
        "args": ["-y", "@kaptionai/mcp-extension@latest"]
      }
    }
  }
}

Zed

Zed の設定(~/.config/zed/settings.json)に追加します。

{
  "context_servers": {
    "whatsapp": {
      "command": {
        "path": "npx",
        "args": ["-y", "@kaptionai/mcp-extension@latest"]
      }
    }
  }
}

OpenAI Agents SDK (Python)

from agents import Agent
from agents.mcp import MCPServerStdio

whatsapp = MCPServerStdio(
    name="whatsapp",
    command="npx",
    args=["-y", "@kaptionai/mcp-extension@latest"],
)

agent = Agent(
    name="assistant",
    instructions="You can access WhatsApp conversations.",
    mcp_servers=[whatsapp],
)

MCP 互換の任意のクライアント

このパッケージは、stdio を介して標準の MCP サーバーとして動作します。任意のクライアントから接続するには、次のようにします。

npx -y @kaptionai/mcp-extension@latest

サーバーは MCP プロトコルを使用し、stdin/stdout 経由で通信します。クライアントの MCP 設定で、このコマンドを指定してください。

3. WhatsApp Web を開く

Chrome または Edge で web.whatsapp.com を開きます。拡張機能が MCP サーバーに自動接続します。

ツール

query

WhatsApp のデータ(会話、連絡先、メッセージ、文字起こし、ラベル、コミュニティ)を検索します。

# List conversations
query {}

# Search everything
query { query: "meeting" }

# Unread only
query { unread: true }

# Look up a conversation with messages
query { id: "[email protected]" }

# Search contacts
query { query: "Alice", entity: "contacts" }

# List labels (Business accounts)
query { entity: "labels" }

# Filter by label
query { label: "Important" }

# List communities
query { entity: "communities" }

# Filter by community
query { community: "My Community" }

# Get session info
query { entity: "session" }
パラメーター型説明
querystring検索テキスト(名前、メッセージ、文字起こし)
idstring特定の会話、連絡先、ラベルを検索します
entitystringconversations、contacts、messages、transcriptions、labels、communities、session
limitnumber最大結果数(デフォルト 25、最大 5000)
unreadboolean未読の会話のみ
labelstringラベル名または ID で絞り込みます
communitystringコミュニティ名または ID で絞り込みます
beforestringこの ISO 8601 タイムスタンプより前のメッセージ(ページネーション)
afterstringこの ISO 8601 タイムスタンプより後のメッセージ(増分同期)
summarize_conversation

会話の要約を生成します。

パラメーター型説明
conversation_idstring会話 ID
manage_labels

WhatsApp Business のラベルを管理します。追加、削除、作成ができます。

パラメーター型説明
actionstringadd、remove、create、delete
label_namestringラベル名
label_idstringラベル ID(名前の代わりに指定)
conversation_idstring追加または削除する場合に必須
manage_lists

個人用チャットリスト(カスタムリスト)を管理します。Business のラベルに相当する個人アカウント向けの機能で、チャットをカスタムカテゴリに整理できます。

# List all custom lists
manage_lists { action: "list" }

# Get a list with its chats
manage_lists { action: "get", name: "Family" }

# Create a new list
manage_lists { action: "create", name: "Work", conversation_id: "[email protected]" }

# Add a chat to a list
manage_lists { action: "add_chat", name: "Family", conversation_id: "[email protected]" }

# Remove a chat from a list
manage_lists { action: "remove_chat", name: "Family", conversation_id: "[email protected]" }

# Delete a list
manage_lists { action: "delete", name: "Old List" }
パラメーター型説明
actionstringlist、get、create、edit、delete、add_chat、remove_chat
idstringリスト ID
namestringリスト名(作成・編集時、または名前で解決する場合に使用)
conversation_idstring追加または削除するチャット ID
manage_chat

チャットの状態を管理します。アーカイブ、アーカイブ解除、既読/未読にする、ピン留め、ピン留め解除、ミュート、ミュート解除、下書きメッセージの設定/消去を行います。

# Archive a chat
manage_chat { action: "archive", conversation_id: "[email protected]" }

# Mark as read
manage_chat { action: "mark_read", conversation_id: "[email protected]" }

# Pin a chat (max 3)
manage_chat { action: "pin", conversation_id: "[email protected]" }

# Mute for 1 week
manage_chat { action: "mute", conversation_id: "[email protected]", mute_duration: "1w" }

# Set a draft message
manage_chat { action: "set_draft", conversation_id: "[email protected]", text: "Hey, I'll call you back" }
パラメーター型説明
actionstringarchive、unarchive、mark_read、mark_unread、pin、unpin、mute、unmute、set_draft、clear_draft
conversation_idstring会話 ID
mute_durationstring8h、1w、または forever(デフォルト)。mute の場合のみ
textstring下書きテキスト。set_draft で必須
manage_reminders

個人用のリマインダーを作成、管理します。クラウドに保存され、Kaption 拡張機能を通じて通知されます。

# List active reminders
manage_reminders { action: "list" }

# Create a reminder
manage_reminders { action: "create", title: "Follow up with client", datetime: "2026-03-07T14:00:00Z" }

# Complete a reminder
manage_reminders { action: "complete", id: "rem_abc123" }

# List all including completed
manage_reminders { action: "list", filter: "all" }
パラメーター型説明
actionstringlist、get、create、update、delete、complete、uncomplete
filterstringlist の場合:active(デフォルト)、completed、all
idstringリマインダー ID(get/update/delete/complete/uncomplete 用)
titlestringリマインダーのテキスト(最大 800 文字、改行不可)
datetimestringISO 8601 形式の日時
notification_typestringextension、whatsapp、または automatic(デフォルト)
manage_scheduled_messages

次の 2 つのモードのいずれかで、指定した時刻にメッセージが自動送信されるようにスケジュールします。

  • bot(デフォルト)— あなたの番号ではなく、Kaption の WhatsApp 番号から送信されます。Kaption のクラウドに保存され、コンピューターの電源が切れていても送信されます。1 対 1 のチャットのみ。1 行、最大 800 文字です。
  • local(「このコンピューターから」)— コンピューターと WhatsApp を開いている間、あなたとして、あなた自身の WhatsApp 番号から送信されます。デバイスから外部にデータが送信されることはありません。Kaption は安全な制限(1 時間および 1 日あたり数件、数分間隔、相手が書き込んだチャットのみ、グループには 1 日最大 3 件)を自動的に適用し、制限に収まらないメッセージは理由とともに拒否します。グループに送信できる唯一のモードです(投稿権限があり、過去 30 日以内に投稿したグループが対象)。テキストのみです。コンピューターの電源が切れている間に送信時刻を過ぎたメッセージは、送信漏れとしてマークされ、後から自動送信されることはありません。

ローカルモードを使うには、まず Kaption で有効にする必要があります(制限とリスクを確認した後、スケジュール設定画面で「このコンピューターから」を選択します)。AI アシスタントが有効にすることはできません。有効にするまでは、ローカルモードのリクエストは (reason: no-consent) として拒否されます。また、この機能は段階的に提供されています。まだ利用できない環境では、ローカルモードのリクエストは (reason: flag-off) として拒否され、bot は従来どおり動作します。

# List pending messages of both modes (each one has a "mode")
manage_scheduled_messages { action: "list" }

# Schedule with the Kaption bot
manage_scheduled_messages { action: "create", message: "Hey, just following up!", datetime: "2026-03-07T09:00:00Z", conversation_id: "[email protected]" }

# Schedule from your own number, or to a group
manage_scheduled_messages { action: "create", mode: "local", message: "Running 10 min late", datetime: "2026-03-07T09:00:00-03:00", conversation_id: "[email protected]" }
manage_scheduled_messages { action: "create", mode: "local", message: "Standup moved to 10", datetime: "2026-03-07T09:00:00Z", conversation_id: "[email protected]" }

# Cancel a scheduled message
manage_scheduled_messages { action: "delete", id: "msg_abc123" }
manage_scheduled_messages { action: "cancel", mode: "local", id: "3f2c…" }
パラメーター型説明
actionstringlist、get、create、update、delete。mode: "local" の場合は cancel、remove(完了済みのもの)、send_now(送信漏れまたは失敗したもの)も指定できます
modestringbot(デフォルト)または local。list の場合、省略すると両方のモードが対象になります
filterstringlist の場合:pending(デフォルト)、sent、all
idstringスケジュール済みメッセージ ID(get/update/delete/cancel/remove/send_now 用)
conversation_idstring送信先のチャット(create の場合):個人、または mode: "local" の場合はグループ
messagestringメッセージテキスト。Bot:最大 800 文字、改行不可。Local:最大 2000 文字
datetimestringメッセージの送信日時(ISO 8601 形式)
notification_typestringBot のみ:extension、whatsapp、または automatic(デフォルト)
download_media

メッセージ内のメディア(画像、動画、音声、ドキュメント)をダウンロードして復号します。

パラメーター型説明
message_idstringメディアを含むメッセージの ID
conversation_idstringメッセージが属する会話

MIME タイプ、サイズ、再生時間、キャプションとともに、Base64 でエンコードされたメディアデータを返します。

manage_notes

連絡先のメモを読み書きします(WhatsApp Business)。

パラメーター型説明
actionstringget、set
contact_idstring連絡先 ID
notestringメモのテキスト(set で必須)
call_recordings

Kaption 拡張機能で録音された WhatsApp 通話と、その文字起こしを読み込みます。すべての単語にタイムスタンプが付いています。各録音には会話相手(グループ通話の場合はグループ)の名前が付いています。ロックされたチャットの録音は返されません。

パラメーター型説明
actionstringlist、get、search
idstring録音 ID(get で必須)
searchstring名前と文字起こしから検索するテキスト(search で必須)
conversation_idstringこの連絡先またはグループの録音のみ
date_from / date_tostring通話開始日時の ISO 8601 日付範囲
limitnumber録音の最大数(デフォルト 20、最大 100)
include_wordsbooleanget の場合、各単語の開始時刻と終了時刻を秒単位で含めます
get_api_info

MCP のオーバーヘッドなしでプログラムからアクセスするための HTTP REST API 接続情報を取得します。URL、認証トークン、利用可能なエンドポイントを返します。

複数アカウントのサポート

複数の WhatsApp アカウントを同時に接続できます(例:個人用とビジネス用)。任意のツールで target_session を使うと、特定のアカウントにルーティングできます。entity: "session" をクエリすると、接続中のすべてのアカウントとそのセッション ID を確認できます。

複数インスタンスのサポート

複数の AI ツールで同じ拡張機能の接続を共有できます。最初のインスタンスが WebSocket ハブを起動し、後続のインスタンスは既存のハブを自動検出して、それを経由して中継します。ハブが停止すると、中継側のインスタンスが自動的に昇格します。

WebMCP のサポート

Kaption は WebMCP に対応しています。W3C WebMCP ドラフト(navigator.modelContext、Chrome 146+)をサポートするブラウザーでは、拡張機能がすべてのツールをブラウザーのネイティブ AI ツールレジストリに自動登録します。これにより、ブラウザー上の AI エージェントは MCP サーバーや WebSocket 接続なしで Kaption ツールを検出して呼び出せます。設定は不要です。

WebMCP が利用可能な場合、拡張機能は kaption_ を接頭辞とするツール(例:kaption_query、kaption_manage_chat)を、JSON Schema の入力定義と readOnlyHint 注釈とともに登録します。これらのツールは MCP サーバーと同じハンドラーを使うため、どちらの経路でも動作は同一です。

セキュリティ

  • ローカルホストのみ — クラウドリレーや外部接続はありません
  • メッセージは送信されません — AI アシスタントはメッセージの読み取り、整理、スケジュール設定、下書き作成ができますが、メッセージを直接送信することはありません
  • ロックされたチャットは非表示 — WhatsApp でロックされた会話は、すべてのクエリから除外されます
  • 機能の有効化が必要 — MCP ブリッジは拡張機能で明示的に有効にする必要があります
  • ビジネス機能は制限されています — ラベルとメモの利用には WhatsApp Business アカウントが必要です
  • レート制限あり — メッセージの下書きは 5 分間に 10 件の会話までに制限され、書き込み操作にはランダムな遅延が含まれます

ライセンス

BSL 1.1 — 無料で利用でき、4 年後に MIT ライセンスに切り替わります。

1回限りの添付ファイル(所有者専用 MCP_LOCAL_SEND)

create_attachment_upload({name,mime,size,target_session?}) を使い、15 分以内に uploadUrl に ファイルのバイトデータを PUT してから、1 時間以内に attachment:{ref:attachmentRef} を送信します。 選択した Kaption アカウントはこの参照を一度だけ使用し、ローカルに保存するため、数日後の スケジュール実行でも一時アップロードに依存しません。消費後にダウンロードが失敗した場合は、 新しいアップロードを作成してください。最大サイズ:8 MiB。画像、ドキュメント、音声、動画に対応しています。

このローカルハブでは、attachment:{path:"/absolute/file.pdf"} を使うと自動的にアップロードされます。 name と mime は任意で指定でき、ファイル名や種類を上書きします。パスには通常のファイルを指定する 必要があります。クラウドリレーと WebMCP ではパスを受け付けません。任意の URL は一切受け付けません。 既存の小さなインライン形式 {name,mime,size,dataB64} によるアップロードも引き続き利用できます。 すべての送信には、引き続き拡張機能の所有者専用フラグ、同意、および最初に確認するルールが適用されます。 アシスタントは同意を受け付けることができません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。