dex-skill について
dex-skill は、仕事上の連絡先、交流履歴、フォローアップを管理する個人向け CRM、Dex の利用をエージェント向けに案内します。MCP ツールまたは CLI によるアクセス方法と、セットアップや認証の手順を説明します。
主な機能
- 01連絡先の検索、絞り込み、一覧表示
- 02交流メモと連絡先情報の記録
- 03タグ、グループ、カスタムフィールドによる整理
- 04リマインダー作成とフォローアップ頻度の管理
- 05MCP ツールまたは CLI での Dex 利用
活用シーン
- 01キーワードや条件で連絡先を検索
- 02インポート後に連絡先を追加して整理
- 03連絡先のタイムラインに会議や通話を記録
- 04近日中のリマインダーや誕生日を確認
MCP 対応
Dex は MCP サーバーを通じて、連絡先、メモ、リマインダーなどの CRM 操作を公開します。このスキルは MCP 対応クライアントの接続方法と、代替手段としての CLI 利用も説明します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ getdex/ agent-skills --skill dex-skillインストール後、Claude Code で/dex-skillを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/cli-commands.mdcrm-workflows.mdtools-reference.md詳細
Dex Personal CRM
Dex は、ユーザーが仕事上の人間関係を維持し、育むためのパーソナル CRM です。連絡先、やり取りの履歴、リマインダー、組織構造(グループ、タグ、カスタムフィールド)を管理します。
セットアップ — アクセス方法の判定
利用できるアクセス方法を、次の順序で確認してください。
- MCP ツールを利用できますか? ツール一覧に
dex_search_contactsやその他のdex_*ツールがある場合は、MCP ツールを直接使用してください。これが推奨方法です。CLI のセットアップはすべて省略してください。 - CLI がインストールされていますか?
dexコマンドがあるか確認してください(which dexまたはdex auth statusを実行します)。認証済みの場合は、CLI コマンドを使用してください。 - どちらも利用できませんか? セットアップを案内してください。
シェルコマンドは実行できても、ブラウザーを開けない場合 — あなたはサンドボックス化されたコンピューティング環境で動作するエージェントです(Grok Bot、OpenClaw、およびユーザーの環境ではなく独自のマシン上で実行される同様のホステッドエージェント)。ホスト側の MCP コネクターのサインインが機能するとは考えないでください。コネクターのフォームで指定できるのは URL と静的ヘッダーだけなので、OAuth フローは開始されず、ユーザーに渡せるリンクもないまま authentication_required が返されます。パス B(CLI をインストール)から始めて、続けて以下のデバイスコードフローを使用してください。これにより、ユーザーは自分のデバイスでサインインできます。
デバイスフローで dex_ キーが発行されたら、2 つの方法を選べます。CLI を引き続き使用するか、ユーザーが CLI コマンドより MCP ツールを希望する場合は、そのキーを Authorization: Bearer dex_… ヘッダーとして指定し、https://mcp.getdex.com/mcp をコネクターに追加してください。どちらの方法でもツール呼び出しは機能します。
コネクターを使用する前に、必ずこちらを読んでください。このルールは認証にだけ記載されているわけではありません。
dex_キーにはスコープがありません。スコープ付きの 1 時間有効な OAuth トークンとは異なり、アカウント全体に対してユーザー本人として機能し、有効期限もありません。決して表示したり、チャットにそのまま書き出したり、ユーザーに見えるツール引数に含めたりしないでください。この段落は、そのルールを緩和するものではありません。コネクターを設定するためにキーをどこかに表示する必要がある場合は、作業を中止し、ユーザー自身が Settings → Integrations でキーを発行し、ホストのコネクターフィールドに貼り付けるよう依頼してください。
ホストが OAuth の状態を追跡しており、OAuth を開始していない場合でも、コネクターに「未認証」と表示されることがあります。このバッジだけなら表示上の問題にすぎませんが、ツール呼び出しで 401 または 403 が返される場合は、実際の失敗です(キーが取り消されているか、アカウントに Professional サブスクリプションがありません)。表示ではなく、ツール呼び出しが実際に成功するかどうかで判断し、拒否された場合は再試行せず、その内容を伝えてください。
初回セットアップ
パス A — プラットフォームが OAuth 対応 MCP をサポートしている場合(Claude Desktop、Cursor、VS Code、Gemini CLI など):
この方法を利用するには、MCP OAuth 仕様を実装したクライアントが必要です。WWW-Authenticate チャレンジに対応し、ブラウザーを開くか、ユーザーに認証 URL を提示できなければなりません。サーバー URL と静的な Authorization ヘッダーしか受け付けないホスト(Grok Bot、xAI API のリモート MCP ツールなど)では完了できないため、代わりにパス B を使用してください。
ユーザーがすでに Dex MCP サーバーを設定している場合、またはプラットフォームで MCP サーバーを追加できる場合:
npx -y add-mcp https://mcp.getdex.com/mcp -y
これにより、インストール済みの AI クライアントが自動検出され、Dex MCP サーバーがすべてのクライアントに設定されます。初回の MCP 接続時に、ユーザーはブラウザーで認証します。
パス B — CLI をインストール:
npm install -g @getdex/cli
npm、pnpm、yarn で動作します。postinstall スクリプトはなく、バイナリはプラットフォーム固有のパッケージに同梱されています。
CLI を最新の状態に保つ:
CLI は、ビルド時に MCP サーバーのツールスキーマからコマンドを自動生成します。サーバー上でツールが追加または更新された場合、新しいコマンドを利用するには CLI を更新する必要があります。コマンドまたはパラメーターが見つからないとユーザーから報告があった場合は、更新を提案してください。
npm install -g @getdex/cli@latest
パス C — Node.js がない場合:
https://getdex.com/docs/ai/mcp-server にあるセットアップガイドに従うようユーザーに案内してください。Claude Desktop、Claude Code、Cursor、VS Code、その他の MCP 対応クライアント向けの個別手順が記載されています。
認証
/dex-login の実行時、または認証されていない状態で初めて使用する際に開始します。ホストが対応している場合は MCP ブラウザー OAuth を優先し、次に対話型 CLI セッションまたはサンドボックス化されたコンピューティング環境のエージェントではデバイスコードを使用し、CI またはユーザーが明示的に選択した場合は API キーを使用してください。
Grok Bot、OpenClaw、および同様のホスト型エージェントでは、デバイスコードが第一選択であり、代替手段ではありません。マシン上には開くためのブラウザーがありませんが、ユーザーの手元にはあります。
dex auth status だけを信用しないでください。 認証情報ファイルが存在すれば、ステータスは緑になります。dex dex-list-tags のような実際のコマンドで確認してください。「成功」したログインの後に 401 unauthorized が返る場合、ほとんどの場合、CLI は古いトークンを読み込んでいます。
認証情報の実際の保存場所:
@getdex/cliは~/.clihub/credentials.json(auth_type: bearer_token、token: dex_…)を読み込みます。- 一部のドキュメントや古いエージェントは
~/.dex/api-keyのみを書き込みます。このファイルは MCP 呼び出し時に CLI が送信するものではありません。 - デバイスコードまたは API キーの設定後は、両方のファイルを書き込んでください。そうしないと、次の
dex …呼び出しで 401 が返ります。
Cloudflare: mcp.getdex.com へのすべてのリクエストには User-Agent: dex-cli を送信する必要があります。UA なしの通常の curl は Cloudflare 1010(browser_signature_banned)を返します。これはコードの期限切れでも Dex の 401 でもありません。
API キーをチャットに貼り付けるようユーザーに求めてはいけません。ユーザーに表示されるツール引数に含めたり、表示、ログ記録、コミットしたりしないでください。dex auth --token <key> はプロセスの argv にシークレットを含めます。エージェントから実行してはいけません。
オプション 1 — API キー:
- ユーザーが Dex Settings > Integrations でキーを生成します(Professional プランが必要です)
- ユーザー自身のターミナルで保存するよう依頼するか、値を一切表示しないローカルスクリプトを使って、以下の両方のファイルに書き込みます
- 保存先:
~/.dex/api-key(chmod 600)および~/.clihub/credentials.json(chmod 600)
オプション 2 — デバイスコードフロー(リモート/ヘッドレスマシンで動作):
このフローは HTTP 経由で直接実行します。マシン上にブラウザーは不要です。必ず User-Agent: dex-cli を送信してください。
-
デバイスコードをリクエストします:
curl -s -X POST https://mcp.getdex.com/device/code \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "User-Agent: dex-cli"応答:
{ "device_code": "...", "user_code": "ABCD-EFGH", "verification_uri": "https://...", "expires_in": 600, "interval": 5 } -
ユーザーに
user_codeとverification_uriを提示します。ユーザーはブラウザーのある任意のデバイスで URL を開き、Dex にログインしてコードを入力します。 -
成功した応答をログに記録せず、5 秒ごとに承認をポーリングします:
curl -s -X POST https://mcp.getdex.com/device/token \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "User-Agent: dex-cli" \ -d '{"device_code": "<device_code>"}'- HTTP 200 +
{"error": "authorization_pending"}→ ポーリングを続けます(これは成功ではありません) - HTTP 429 +
{"error": "slow_down"}→intervalより長く待ちます - HTTP 400 +
{"error": "expired_token"}→ 新しいデバイスコードをリクエストします - HTTP 403 Cloudflare 1010 →
User-Agent: dex-cliを追加して最初からやり直します - HTTP 200 +
api_key→ ポーリングを停止します。本文を表示してはいけません。
- HTTP 200 +
-
キーを表示せずに、両方の保存先に保存します:
install -d -m 700 ~/.dex ~/.clihub umask 077~/.dex/api-key— 生のdex_…バイト列、モード600、末尾に説明文を付けないでください~/.clihub/credentials.json— モード600、以下のスキーマ(CLI の正規の情報源):
{ "version": 2, "servers": { "https://mcp.getdex.com/mcp": { "type": "bearer", "auth_type": "bearer_token", "token": "<api_key>" } } }実行環境上で成功した
/device/token応答をチャットやツールログに残さずに処理できない場合は、作業を中止し、ユーザー自身のターミナルで完了するよう依頼してください。
現在の @getdex/cli(1.0.x)には dex auth login サブコマンドはありません。一部の README に記載されている場合でも同様です。この HTTP デバイスフローを使用してください。
人が操作しない CI/自動化では、DEX_API_KEY 環境変数と上記の認証情報ファイルを併用して、API キー方式を使用してください。
データモデル
Contact
├── Emails, Phone Numbers, Social Profiles
├── Company, Job Title, Birthday, Website
├── Description (rich text notes about the person)
├── Tags (flat labels: "Investor", "College Friend")
├── Groups (collections with emoji + description: "🏢 Acme Team")
├── Custom Fields (user-defined: input, dropdown, datepicker)
├── Notes/Timeline (interaction log: meetings, calls, coffees)
├── Reminders (follow-up tasks with optional recurrence)
├── Priority tier (one of the user's own named tiers, or none)
└── Starred / Archived status
ツールの使用
MCP モード
dex_* ツールを直接呼び出します。すべてのツールは JSON を受け取り、返します。
CLI モード
dex コマンドを使用します。CLIHub は MCP ツール名からサブコマンドを生成します(_ は - に置き換えられます)。
dex dex-search-contacts --query "John"
dex dex-list-contacts --limit 100
dex dex-create-contact --first-name "Jane" --last-name "Doe"
dex dex-list-tags
dex dex-create-reminder --text "Follow up" --due-at-date "2026-03-15"
機械可読形式の出力には --output json を、人間が読みやすい形式の出力には --output text(デフォルト)を使用します。
すべてのコマンドを確認するには dex --help を、コマンド固有のヘルプを確認するには dex <command> --help を実行します。
57 個すべてのツールと CLI コマンドの対応表については、CLI コマンドリファレンス を参照してください。
主なワークフロー
1. 連絡先を検索する
choose search/filter/list → get details (with notes if needed)
- キーワードや、
nearと任意のradius_kmを使った実際の地理的な近接検索にはdex_search_contactsを使用します nearを使う場合は、追加の場所ではない絞り込み条件を指定するためにqueryを使用します。両方のフィールドで同じ場所を繰り返さないでください- タグ、グループ、会社、プロフィールの有無、日付、アーカイブ状態、カスタムフィールドなどの構造化された AND 条件で絞り込むには
dex_filter_contactsを使用します - 絞り込みなしで一括処理するには
dex_list_contactsを使用します(1 ページあたり最大 500 件、カーソルによるページネーション) - 最終のやり取りが新しい順に並んだ連絡先を 1 回分表示するには、空の検索クエリを使用します
- ユーザーがやり取りの履歴を必要とする場合は、
include_notes: trueを指定します
2. 新しい連絡先を追加する
create contact → (optionally) add to groups → apply tags → set reminder
- 入手できた情報で連絡先を作成します(必須フィールドはありません)
- すぐに整理します。関連するタグとグループを追加してください
- この人に会ったばかりの場合は、フォローアップのリマインダーを設定します
一括インポート(CSV、スプレッドシート、リスト):
batch create contacts → add to group → create note for all
contacts配列を指定してdex_create_contactを使用し、まとめて作成します(1 回の呼び出しで最大 100 件)- 返された連絡先 ID を使って、
dex_add_contacts_to_groupで全員をグループに追加します contact_idsを指定してdex_create_noteを使用し、インポートした全連絡先に共通のメモを記録します
3. やり取りを記録する
(optional) list note types → create note on contact timeline
- まず
dex_list_note_typesでメモの種類を確認し、適切なもの(Meeting、Call、Coffee、Note など)を選びます event_timeには、記録した時刻ではなく、やり取りがあった時刻を設定します- メモは簡潔にまとめつつ、重要な詳細、アクションアイテム、個人的な背景を記録します
contact_ids(複数形)を使うと、1 つのメモを複数の連絡先に紐付けられます(例:グループ会議)
4. フォローアップを管理する
set cadence or create reminder → complete/snooze when due
- 関係を維持する間隔には
dex_update_contact.keep_in_touchを使用し、特定のタスクにはリマインダーを使用します - 必ず
due_at_dateを指定します(ISO 形式:「2026-03-15」) - リマインダーの説明には
textを使用します。独立したタイトルフィールドはありません - 繰り返しの選択肢:
weekly、biweekly、monthly、quarterly、biannually、yearly - 実際にやり取りした後は
snooze_daysを指定せずにdex_complete_keep_in_touchを使用します。やり取りを記録せずに延期する場合はsnooze_daysを使用します
「近々の予定は?」 — 近い将来についての質問(「来週誕生日を迎えるのは誰?」「今週、誰に連絡すべき?」「近々の予定は?」など)には、複数のリストをつなぎ合わせるのではなく、dex_list_upcoming_reminders_and_birthdays を呼び出します。1 回の呼び出しで、指定期間(デフォルトは 7 日間、1 か月の場合は days: 30)の誕生日、未完了のリマインダー、連絡を保つ対象の連絡先が返されます。
turning_ageが報告されるのは、生年がわかっている場合のみです。生年のない誕生日ではbirthday_yearもturning_ageも返されません。年齢を推測せず、日付を伝えてくださいkeep_in_touchリストには、すでに期限を過ぎた人も含まれます(is_overdue: true)。remindersリストにはfromより前が期限のリマインダーは含まれません。期限超過のリマインダーはdex_list_remindersをis_overdue: true, is_complete: falseと指定して取得します。期限と期限超過の判定は UTC に基づきます- 対象期間が長い場合は、すべてを確認したとユーザーに伝える前に
reminders_truncated/keep_in_touch_truncatedを確認してください。連絡を保つ対象は期間の末尾まで蓄積されるため、後の日付をfromに指定するのではなく、dex_filter_contacts(has_frequency: true)で次のページを取得します
5. 連絡先を整理する
タグ — 複数の分類にまたがって使える、階層のないラベルです。
create tag → add to contacts (bulk)
グループ — 絵文字と説明を付けた名前付きの連絡先コレクションです。
create group → add contacts (bulk)
ベストプラクティス:属性(「投資家」「エンジニア」「カンファレンス X で会った」など)にはタグを、関係性ごとのまとまり(「スタートアップのアドバイザー」「読書会」「Acme Corp チーム」など)にはグループを使用します。
6. カスタムフィールドを管理する
list fields → create field definition → batch set values on contacts
- フィールドタイプは 3 種類です:
input(自由入力テキスト)、autocomplete(選択肢付きのドロップダウン)、datepicker dex_set_custom_field_valuesを使用すると、複数の連絡先の値を一度に設定できますautocompleteフィールドでは、許可する選択肢をcategories配列で指定します
7. ミーティングの準備
ユーザーが「X さんとミーティングがあります」と言った場合:
- 連絡先を検索します
include_notes: trueを指定して詳細を取得します- 最近のリマインダーを確認し、未対応の項目がないか調べます
- 必要に応じて関連するメールのやり取りを検索し、ユーザーが最新情報を求めている場合はカレンダーのイベントを取得します
- 保存済みのウェブ調査メモがあるか
dex_get_contact_researchで確認します。メモがなく、ユーザーが公開情報に基づく背景情報を求めている場合は、dex_research_contacts(有料、時間がかかります)を提案します - 最後のやり取り、重要なメモ、未対応のフォローアップ、共有している背景情報、参加者、最近のやり取り、および引用元を示したウェブ調査結果を要約します
- ミーティング準備の詳しいガイダンスについては、CRM ワークフローを参照してください
8. カレンダーイベントを管理する
dex_list_calendar_eventsを使用すると、期間を指定したり、接続済みのすべての Google/Microsoft アカウントを対象にプレーンテキストでイベントを検索したりできます- イベントから返された
emailをaccount_emailとして再利用し、取得/更新/削除に使用します - 同じメールアドレスが両方のプロバイダーに接続されている場合は、取得/作成/更新/削除の際に
account_providerも渡します - 時刻指定のイベントでは、明示的なオフセットを含む
start_datetimeとend_datetimeの両方を指定し、IANA のtimezoneも含めます - 終日イベントでは
start_dateを指定します。end_dateは終了日を含まず、省略すると翌日になります - 参加者に招待が送信される可能性がある場合は、作成前に確認を求めます
- 更新時に
attendeesを指定すると、参加者リスト全体が置き換えられます。まずイベントを取得し、引き続き参加する人全員を含めてください - 繰り返し予定のシリーズ ID はシリーズ全体を更新します。確認前に、更新対象の範囲を伝えてください
- カレンダーの作成/更新では、最初の試行前に
idempotency_keyを生成し、同じ操作を 24 時間以内に再試行する場合に限り、同じ引数とともに再利用します。新しい編集や、新たにイベントを作成する場合は、毎回新しいキーが必要です。キーを指定しないと、更新は再度実行されます。作成では、同じ内容のイベントは 24 時間重複排除されるため、削除済みのイベントを再作成する場合や、意図的に同一のイベントをもう一度作成する場合は、新しいキーを使用してください。これは一般化できません:dex_create_contact、dex_create_group、dex_create_tag、dex_create_custom_fieldでは呼び出しごとに新しいキーが付与されるため、これらを再試行すると重複します。dex_create_noteとdex_create_reminderは、独自のidempotency_keyを渡した場合にのみ安全に再試行できます。サーバーの 24 時間の有効期間内に、同じキーと同じ引数を再利用すると、重複せずに元の行が返されます。dex_create_noteでは、idempotency_keyを指定する場合、明示的なevent_timeも必須です(指定しないと拒否されます)。デフォルトの「現在時刻」は試行のたびに異なり、再試行が機能しなくなるためです。再試行する場合は、event_timeを自分で設定してください。
更新では、イベントを接続済みアカウント間で移動できません。移動するには、元のイベントを取得し、対象アカウントで代替イベントを作成することを確認したうえで、元のイベントの削除について別途確認を求めます。参加者全員と詳細を保持し、主催者の情報、RSVP の状態、会議の詳細、およびプロバイダーからの通知が変わる可能性があることを警告してください。
カレンダー一覧の結果に warnings が含まれる場合は、結果が不完全であることを伝えてください。情報が欠けているアカウントの状況から、空き状況を推測してはいけません。すべてのカレンダーでエラーが発生した場合は、予定がないと言わず、エラーを報告してください。
プロバイダーのスコープ不足でカレンダーへの書き込みに失敗した場合は、そのアカウントの Settings → Sync & Integrations → Grant calendar access にユーザーを案内してください。
9. メールを検索する
- 接続されているすべての Google/Microsoft のメールボックスを対象に、リアルタイムの読み取り専用検索を行うには
dex_search_emailsを使用します - 最近のメールを一覧表示するには
queryを省略します。受信メールにはfolder: 'inbox'を使用します。同じフォルダーと日付範囲を維持したまま、next_cursorに従ってください - 名前、会社名、ドメイン、トピックなどの一般的なキーワードを使用します。
from:やto:などのプロバイダー演算子は無効化されます - 正確な日付範囲を指定するには
afterとbeforeを設定します。指定しない場合、検索対象はおおむね過去6か月です - 結果にはメタデータ、スニペット、プロバイダーのリンクが含まれますが、本文全体は含まれません
- Dex はメールを送信できません。このツールでメッセージを作成または送信できるかのように説明しないでください
10. Web で連絡先を調査する
dex_get_contact_researchは、最大10件の連絡先について保存済みのメモを無料で読み取ります。まずこれを確認してくださいdex_research_contactsは、1回の呼び出しで最大5件の連絡先を対象に Dex Research を実行します。有料のウェブ検索、ページ抽出、LLM による要約を行うため、連絡先1件あたり1分以上かかります。数件を超える連絡先を対象に実行する場合は、事前にユーザーの確認を得てください- 30日以内のメモはキャッシュから提供されます。ユーザーが明示的に最新の調査を希望する場合に限り、
force: trueを渡してください - 最新の調査を実行すると、保存済みの調査メモと調査結果のステータスが置き換えられます。既存の連絡先フィールドを保持しても、以前の調査メモは保持されません。再実行を強制する前に、置き換えについて説明してください
- 調査結果は引用(
[[n]]マーカーはsources内の情報を参照します)とともに引用し、identity_confidenceがhighでない場合はその旨を伝えてください - 実行すると、空の
linkedin/websiteフィールドには、それ自体で信頼度の高い調査結果のみが入力され、適用内容はappliedに報告されます。既存の値が上書きされることはありません。信頼度の低いlinkedin/websiteの調査結果は、メールや電話番号の調査結果と同様にpendingになります。フィールドに値が入力されたと決めつけず、各行のstatusを確認してください。pendingの項目は、ユーザーの確認を得たうえでdex_update_contactを使って適用する必要があります in_progressは、別のリクエストがすでにその連絡先を調査中であることを示します。再実行せず、後で結果を読み取ってください
11. アーカイブ、削除、統合
元に戻せる整理を優先してください。
- ユーザーが後で必要とする可能性のある連絡先には
dex_archive_contactsを使用します - アーカイブ済みの連絡先は
dex_filter_contactsとarchived_only: trueで検索します dex_archive_contactsとarchived: falseを使って復元します
重複がある場合:
search for potential duplicates → confirm with user → merge
- Dex は入力順に関係なく、各グループで最も古いレコードを統合後に残します
- どの ID が残ったか確認するには、レスポンスの
mergedContactIdsを読み取ります - 統合は破壊的な操作のため、必ず事前にユーザーの確認を得てください
- 1回の呼び出しで複数のグループを統合できます
12. 関係の優先度を設定する
各連絡先には、ユーザーの優先度階層を設定できます。これは Priority Map が編集するものと同じフィールドです。ユーザーは階層名を変更するため、既定値(1 Top、2 High、3 Medium、4 Low、5 None)を決めつけないでください。
dex_get_priority_tiers → dex_filter_contacts (priority_tier) → propose → confirm → dex_set_contact_priority
- まず
dex_get_priority_tiersを呼び出し、ユーザー独自の階層名を使って話してください - すでにどの連絡先がどの階層に属しているかは、
dex_filter_contactsのpriority_tier(階層番号、番号のリスト、またはtrue/false)で検索します dex_set_contact_priorityは階層名またはtier_numberと、最大500件のcontact_idsを受け取ります。nullを指定すると優先度がクリアされますが、これは「None」階層とは異なります- 連絡先ごとに現在の階層が上書きされます。書き込み前に、どの連絡先をどの階層に移すのかを示し、すでに属している階層から移動する連絡先があれば明示してください
- Personal Dex のみで使用できます。Dex for Teams のワークスペース接続では拒否されます
13. 成果を重視したリクエストへの対応
複数の連絡先に関するリクエストや複数の手順が必要なリクエストには、再利用可能な次の方針に従ってください。
define scope → inspect current state → preview proposed outcome → confirm writes → execute → verify
- 分析、提案、監査、準備を求めるリクエストは、ユーザーが変更も求めていない限り、読み取り専用として扱います
- ユーザーが「すべて」と言った場合は、該当するデータセット全体をページネーションで取得し、対象にアクティブな連絡先、アーカイブ済みの連絡先、またはその両方のどれを含むか明記します
- 新規作成する前に、既存のタグ、グループ、カスタムフィールド、連絡先、最近のメモを再利用します
- 確度の高い操作と、確認が必要な曖昧なレコードを分けます
- 一括書き込みの前に、追加、更新、削除、アーカイブ、統合、メモ、リマインダーの内容を正確に提示します
- 変更したレコードを最新の読み取りで検証し、成功、スキップ、失敗を報告します
ユーザーから次の依頼があった場合は、詳しい手順についてCRM ワークフローを読み込んでください。
- ネットワーク全体を分類または再編成する
- メモ作成ツールの要約や文字起こしをメモ、連絡先の更新、リマインダーに反映する
- CRM データを監査または整理する
- イベントや名簿から人々をインポートし、フォローアップする
- 関係性の健全性を確認する、またはアウトリーチを計画する
- 1日分または1週間分の会議に備える
- 複数の条件から対象となる連絡先リストを作成する
- 連絡先を優先度別の階層に分け、割り当てる
重要なパターン
プライバシーとデータの最小化
- リクエストに必要なフィールドと履歴のみを取得します。関係性のコンテキストが必要でない限り、
include_notesとinclude_contactsはオフのままにします - 連絡方法、メモ、メールの抜粋、参加者リスト、プロバイダーへのリンクは、プライベートな関係性データとして扱います
- 不要な個人情報を繰り返さず、関連するコンテキストを要約します
- ユーザーから明示的な依頼がない限り、Dex のデータを他のサービスと共有または送信しないでください
dex_search_emailsがメタデータと抜粋のみを返す場合、メール本文全体にアクセスできると主張しないでください- ウェブ調査は、Dex が検証した事実ではなく、出典を示した公開情報として提示します。メモが別人について記述している可能性がある場合は、
identity_confidenceを示します
ページネーション
has_more と next_cursor があるレスポンスのみ、カーソルによるページネーションを使用します。
dex_list_contacts:1ページあたりのデフォルトは100件、最大500件dex_filter_contacts:1ページあたりのデフォルトは50件、最大200件- タグ、グループ連絡先、メモ、リマインダーのリスト:1ページあたりのデフォルトは10件
- レスポンスの
has_moreを確認します - 元のフィルター、ソート順、オプションの追加項目を維持したまま、
next_cursorをcursorとして渡します - すべての結果を取得するには、
has_more: falseになるまで繰り返します
dex_search_emails の一覧(query なし)もページネーションを使用し、1ページあたりのデフォルトは25件、最大100件です。query を指定した検索は1ページのみで、cursor は受け付けません。
dex_search_contacts と dex_list_calendar_events は、カーソルを使わない、件数が制限された単一のバッチを返します。必要に応じて、クエリまたは日付範囲を絞り込みます。
破壊的な操作
MCP ホストの確認を尊重してください。CLI モードでは、削除、上書き、関係の解除、アーカイブ、連絡頻度の状態の完了、外部カレンダーの状態の変更、または招待の送信につながる可能性のある操作を行う前に、対象と結果を明確に説明してください。
高リスクの例:
- 連絡先の削除、統合、一括アーカイブ
- 保存済みフィールドを上書きする更新、またはコレクションを置き換える更新
- タグまたはグループのメンバーシップの解除
- 継続的な連絡の状態の完了/スヌーズ
- グループ、タグ、メモ、リマインダー、カスタムフィールドの削除
- カスタムフィールドの値の一括設定
- カレンダーイベントの作成、更新、削除
- 数件を超える連絡先に対する、有料のウェブ調査(
dex_research_contacts)の実行、またはforce: trueを指定した実行
破壊的な呼び出しの前に、名前を現在の ID に解決し、コレクションを上書きする場合は現在のレコードを読み取り、予定する差分を提示してください。また、対象が曖昧な場合は決して推測しないでください。
連絡先を整理する際、非アクティブであることだけを根拠に「古い」と判断しないでください。未完了のリマインダーと現在有効な関係性の兆候を確認し、アーカイブする連絡先と保持する連絡先の正確なリストを提示してから、アーカイブや連絡頻度の変更について承認を得てください。日付フィルターでは、記録されたやり取りがない連絡先は除外されるため、重要な場合は別途確認してください。
応答の切り詰め
応答の上限は25,000文字です。カーソルベースのツールでは next_cursor と has_more が保持されるため、より小さいページサイズで続行してください。単一バッチの検索、カレンダー、メールのツールでは、limit を小さくするか、クエリ/日付範囲を絞り込んでください。書き込みツール(作成、更新、追加)で _truncated の通知が表示された場合、書き込みはすでに完了しています。省略された行を読み戻してください(例:created_after を指定した dex_filter_contacts)。呼び出しを繰り返してはいけません。
日付形式
- すべての日付:ISO 8601 形式の文字列(例:
"2026-03-15"、"2026-03-15T14:30:00Z") - 誕生日:年が分かる場合は
YYYY-MM-DD、月日だけ分かる場合は--MM-DD。Dex では年は別の列に保存されるため、読み戻した誕生日が--MM-DDの場合、年は記録されていません。現在の年で補わず、年を報告しないでください。 - リマインダーの期限:
YYYY-MM-DD - 時刻指定のカレンダーイベント:明示的な UTC オフセットと IANA タイムゾーンを含む ISO 8601 形式
- カレンダーの終日イベントの
end_date:排他的
詳細リファレンス
- ツールリファレンス — すべてのツールの完全なパラメーター説明と例
- CLI コマンドリファレンス — MCP ツールから CLI コマンドへの完全な対応表(CLI モードでのみ必要)
- CRM ワークフロー — 関係管理のベストプラクティス、フォローアップの頻度、効果的な CRM アシスタントになるための戦略