Claude Media
Attio MCPをClaudeにつないでCRMを検索・更新する手順

Attio MCPをClaudeにつないでCRMを検索・更新する手順

AttioのホストMCPをClaudeに接続し、人物・会社・ディールの検索、メモとタスクの追加、リスト更新を会話で行う手順です。書き込み前の確認と権限の絞り方も扱います。

Attio MCPは、Attioが運営するホスト型のMCPサーバーです。ClaudeにつなぐとAttioのワークスペースに対して、人物・会社・ディールの検索、メモやタスクの追加、リストの更新を会話で頼めます。接続はOAuthで、APIキーは使いません。

この記事では、接続の手順、頼み方の例、検索系ツールの使い分け、書き込みで起きやすい落とし穴、Claude Codeで読み取りと書き込みの権限を分ける設定を順に扱います。

Attio MCPでClaudeにできること

接続先はhttps://mcp.attio.com/mcpの1つだけです。Claude側から見れば、Attioのワークスペース全体がツール群として見えます。ツールは次の領域に分かれています。

領域主なツール頼める内容の例
レコードとオブジェクト主なツールsearch-records list-records create-record upsert-record update-record merge-records頼める内容の例人物・会社・ディールの検索、作成、更新、重複の統合
リスト主なツールlist-records-in-list add-record-to-list update-list-entry-by-record-id頼める内容の例パイプラインへの追加、ステージの変更
メモとコメント主なツールcreate-note semantic-search-notes create-comment頼める内容の例打ち合わせメモの記録、議論の検索
タスク主なツールcreate-task update-task list-tasks頼める内容の例フォローアップの登録、完了処理
会議・通話・メール主なツールsearch-meetings get-call-recording semantic-search-emails頼める内容の例通話の文字起こしの取得、メールの横断検索
集計主なツールrun-basic-report query-particle-sql頼める内容の例ステージ別の件数、担当者別の平均金額

読み取りは自動承認され、書き込みは実行前にユーザーへ確認を求める設計になっています。Attio側の説明では、ツールにMCPの安全性アノテーションが付いていて、この区別はそこから来ています。

接続したあとの権限は、ログインしたAttioユーザーのものと同じです。Claudeだけが特別に広い範囲を見られるわけではなく、そのユーザーが閲覧できない情報は取れません。

接続する:ClaudeのWebとDesktop

Claude.aiとClaude Desktopでは、コネクタの画面から入れます。

手順

Claude.aiとDesktopでの接続

  1. 1

    コネクタの画面を開く

    設定の「Connectors」から「Browse connectors」を開きます。

  2. 2

    Attioを探して入れる

    検索欄にAttioと入れ、Attioを選んでインストールします。

  3. 3

    Attioのアカウントでログインする

    ブラウザにAttioのログイン画面が開くので、使うワークスペースのアカウントで承認します。

前提は、有効なAttioワークスペースと、MCPに対応したクライアントの2つです。一覧にAttioが出ない場合は、https://mcp.attio.com/mcpをカスタムコネクタのURLとして追加する方法もあります。カスタムコネクタの作り方はCoworkカスタムコネクタ自作ガイドに、コネクタ全般の仕組みはClaude Connectorsの解説にあります。

Team・Enterpriseプランでは、claude.aiにサーバーを追加できるのは管理者だけです(Claude Codeの公式ページの記載)。個人の契約ではない場合は、先に管理者へ依頼する必要があります。

接続する:Claude Code

Claude CodeはリモートのHTTPサーバーをclaude mcp addで直接追加できます。

claude mcp add --transport http attio https://mcp.attio.com/mcp

追加したあと、セッション内で/mcpを実行し、ブラウザの案内に従ってAttioにログインします。ブラウザが自動で開かなければ、表示されたURLを手で開きます。認証後にリダイレクトが接続エラーになった場合は、アドレスバーのコールバックURLを全部コピーして、Claude Code側のURL入力欄に貼ります。

シェルから認証したいときはclaude mcp login attioでも同じ流れを実行できます。非対話モード(claude -p)ではOAuthの画面を出せないため、先に対話セッションでログインを済ませておく必要があります。

claude.aiのアカウントでClaude Codeにログインしている場合は、claude.aiで入れたコネクタがClaude Codeでも使えます。この経路で入ったツールの名前はmcp__claude_ai_<サーバー名>__<ツール名>の形です。同じAttioをclaude mcp addと二重に入れると混乱しやすいので、どちらか一方に寄せます。

落とし穴

認証が切れたら/mcpで再認証する

保存済みのリフレッシュトークンが拒否されると、Claude Codeは/mcpを案内する通知を出します。/mcpでAttioを選び「Re-authenticate」を実行すれば、次のツール呼び出しが失敗する前に復旧できます。

最初に頼む:検索から始める

最初は読み取りだけで動作を確かめます。Attioの公式ページにある例を、そのまま使えます。

Stripeの担当者を全員出してください
Namit Chadhaのメールアドレスは?
Linearとの最後のやり取りは何でしたか?
Series Bの会社をCRMから探してください
今週期限の未完了タスクを見せて

英語の例文を日本語に言い換えて頼む形ですが、Claudeが内部で選ぶツールは同じです。名前を指定して探すならsearch-records、条件で絞って並べるならlist-recordsが使われます。

あいまいな名前だと、Claudeが先にlist-objectsでオブジェクトの種類を確認したり、list-attribute-definitionsで属性の一覧を引いたりします。社内で独自に作ったオブジェクトや属性がある場合は、最初にその名前を伝えておくと、探し回る呼び出しが減ります。

検索系ツールの使い分け

検索に使えるツールは複数あり、得意なものが違います。

知りたいこと向くツールひとこと
名前・メール・ドメインが分かる人や会社向くツールsearch-recordsひとこと索引された属性への全文検索
条件で絞って並べたい(「今月作成」「オープンなディール」)向くツールlist-recordsひとことフィルターと並び替えを指定できる
話題でメモを探したい(「価格の反対意見」)向くツールsemantic-search-notesひとことAIによる意味検索
参加者や日付でメモを探したい向くツールsearch-notes-by-metadataひとこと親レコード・作成者・会議・作成時期で絞る
通話の内容から探したい向くツールsemantic-search-call-recordingsひとこと話題で通話録音を探す
特定の通話の全文向くツールget-call-recordingひとこと詳細と文字起こしを取得

話題で探す意味検索と、メタデータで絞る検索は別のツールです。「先月の担当者とのやり取り」のように人と期間が分かっているときはメタデータ側、「値引き交渉の話が出た案件」のように内容で探すときは意味検索側と、頼み方を変えると当たりやすくなります。

意味検索は後述のとおり、レート制限も厳しい区分に入っています。

更新する:書き込みツールと確認の動き

書き込みを伴う操作は、Claudeが実行前に確認を求めます。確認の画面の出方はクライアントごとに違います。Attioのドキュメントは、書き込みは作成・更新の前にユーザーへ確認を求めると説明しています。

書き込みに使われるツールは次のとおりです。

  • レコード:create-record upsert-record update-record merge-records
  • リスト:create-list add-record-to-list update-list update-list-entry-by-id update-list-entry-by-record-id
  • メモ・コメント:create-note update-note create-comment delete-comment
  • タスク:create-task update-task delete-task

頼み方の例を、操作ごとに並べます。

Linearのアカウントにメモを残して:デモ通話が好調で、価格を見たいと言われた
Rampへのフォローアップを3日後のタスクにして
Acmeを営業パイプラインに追加して
AcmeのパイプラインのエントリをProposal Sentに変えて

作成と更新の違いで事故が分かれる

create-recordは新しいレコードを作ります。同じ人を2回頼むと重複が生まれます。upsert-recordはメールやドメインのような照合用の属性で既存のレコードを探し、あれば更新、なければ作成します。人物や会社を扱うときは、「メールアドレスで照合して、なければ作成して」と頼む形にすると重複が減ります。

update-list-entry-by-record-idには制約があります。親レコードのIDからリストのエントリを探して更新するツールですが、対象のリストにそのレコードのエントリが0件、または複数ある場合はエラーになります。複数のパイプラインに同じ会社が入っている場合は、エントリIDを指定するupdate-list-entry-by-id側を使います。「エントリID 9f0f…を更新して」のようにIDを渡す頼み方です。

merge-recordsは、同じオブジェクトの2つのレコードを新しい1つのレコードに統合します。両方に値がある属性は、主にする側の値が優先されます。どちらを主にするかを確認してから承認します。

delete-commentは自分が作ったコメントだけを消せます。親コメントを消すと、返信もまとめて消えます。delete-taskはワークスペースからタスクを消すツールなので、承認の前にタスクの題名を見ます。

落とし穴

一括の更新は件数を先に確かめる

「Series Bの会社すべてにタグを付けて」のような頼み方は、更新の呼び出しが件数ぶん発生します。先に「対象を一覧にして件数を教えて」と頼んで、対象を確認してから更新に進みます。

通話のあとの処理を1回の会話にまとめる

ツールは組み合わせて使えます。通話後の処理を、1つの依頼にまとめる例です。

手順

通話後の記録を1回で終わらせる流れ

  1. 1

    通話録音を探す

    「昨日のLinearとの通話の文字起こしを取って」と頼み、search-call-recordings-by-metadataとget-call-recordingで内容を読みます。

  2. 2

    メモにまとめて記録する

    要点を3行にまとめ、create-noteでLinearの会社レコードに追記します。

  3. 3

    次の予定をタスクにする

    「提案書を金曜までに送る」をcreate-taskで登録し、会社レコードに紐づけます。

  4. 4

    ステージを動かす

    パイプラインの状態をupdate-list-entry-by-record-idで更新します。

手順2〜4は書き込みなので、それぞれで承認を求められます。承認の場面で、メモの本文、タスクの期限、変更後のステージを確認できるので、要約の誤りもここで止められます。

Attioのドキュメントには、通話関連ツールの利用条件についての記載がありません。使えるかどうかは、Attioのヘルプセンターかサポートで確かめます。

同じ型の運用は、kintoneのような国産の業務システムでも使えます。kintoneのレコード検索と更新と見比べると、承認の置き方の違いが分かります。録音をAI側に預ける場合はPlaud MCPの録音検索も同じ型です。

Claude Codeで読み取りと書き込みの権限を分ける

Claude Codeでは、MCPツールごとに許可・確認を設定できます。Attioの書き込みは確認を必ず挟み、読み取りだけを自動許可にする設定の例です。サーバーをattioという名前で追加した場合の書き方です。

{
  "permissions": {
    "allow": [
      "mcp__attio__search-records",
      "mcp__attio__list-*",
      "mcp__attio__get-*"
    ],
    "ask": [
      "mcp__attio__create-*",
      "mcp__attio__upsert-record",
      "mcp__attio__update-*",
      "mcp__attio__merge-records",
      "mcp__attio__delete-*"
    ]
  }
}

これは公式の権限ルールの書式に沿って組んだ例で、Attio側の推奨設定ではありません。許可ルールのワイルドカードは、mcp__<サーバー名>__というリテラルの接頭辞のあとにだけ使えます。"mcp__*"のような接頭辞なしの許可ルールは、警告つきで無視されます。

なお、claude.aiのコネクタ経由で入れた場合、サーバー名の部分はclaude_ai_<名前>の形になるため、ルールの書き出しも変わります。実際のツール名は、承認ダイアログに表示されたものに合わせるのが確実です。括弧でパラメータを絞る書き方がMCPのルールでは読み飛ばされる点など、書式の詳細はClaude CodeのMCP権限ルールにまとめています。

組織がclaude.aiのコネクタのツールを「確認」に設定している場合、Claude Code側で許可ルールを書いても効きません。毎回プロンプトが出ます。

レート制限と、つまずいたときの切り分け

Attio MCPには、ワークスペース単位のレート制限があります。ツールは区分ごとにまとめられ、同じ区分のツールは1つの枠を共有します。

数字

区分ごとのレート制限

  • 読み取り

    100回/秒

    get-* と list-* の大半

  • 書き込み

    25回/秒

    create・update・delete 系

  • 検索

    300回/分

    search-records など

  • 意味検索・集計・SQL

    2回/秒

    semantic-search・report・SQL

同じ区分のツールは枠を共有する

意味検索(semantic-search-*)、集計(run-basic-report)、SQL(query-particle-sql)は、いずれも毎秒2回です。統合のmerge-recordsは毎秒5回です。普通の会話で使う範囲なら、制限に当たることは多くありません。

制限に当たったときは、並列で呼び出さないように頼む、順番に実行する、少し待って再試行する、の3つが案内されています。

症状別の切り分け

切り分け

Attioが応答しないときの確認順

  1. Qコネクタの一覧にAttioが出ていますか?
    答えがいいえ

    Team・Enterpriseプランなら管理者が追加する必要があります。個人の契約ならhttps://mcp.attio.com/mcpをカスタムコネクタとして追加します。

    答えがはい
  2. Qログインの画面で承認を済ませましたか?
    答えがいいえ

    Claude Codeなら/mcpかclaude mcp login attioを実行して、OAuthの手順を最後まで進めます。

    答えがはい
  3. Q特定のレコードだけ見えませんか?
    答えがいいえ

    権限はログインしたAttioユーザーと同じです。そのユーザーに見えないレコードは、Claudeからも取れません。

    答えがはい

それでも解決しない

Attioのヘルプセンターかサポートに問い合わせます。Attioのドキュメントの案内もその2つです。

query-particle-sqlは全プランで使えるわけではありません。読み取り専用のSQLを実行するツールで、契約中の請求プランによっては利用できないと、Attioのドキュメントに明記されています。SQLが必要な集計を頼む前に、Attio側の契約を確認します。

使う前に押さえたい3点

接続は簡単ですが、CRMには顧客の個人情報や商談の金額が入っています。次の3点は先に決めておくと安全です。

  1. 書き込みの承認は中身を読んで押す。メモの本文、タスクの期限、変更後のステージをその場で確認します。
  2. 権限は人に合わせる。Claudeの権限はログインしたユーザーと同じなので、広い権限のアカウントでつなぐと、Claudeの操作範囲も広がります。
  3. 接続は取り消せる。セッションはAttioのアカウント設定から取り消せます。Claude Codeでは/mcpのメニューの「Clear authentication」でも取り消せます。

Attioのドキュメントによれば、MCPの操作はすべてログに記録され、監査できます。追加の連携を設定しない限り、データが外部のシステムに共有されることもありません。

この記事を共有:XはてブLinkedIn