3行でいうと
- MCP の設定ファイルの名前は、公式のページの間で一致していません。今の既定の Devin Local 向けのページ、Devin CLI のページ、旧 Cascade のページ、FAQ の4つで書き方が違うので、表に並べました。
- 秘密の値(トークンなど)は、設定ファイルに直接書かない書き方が、公式に用意されています(
${env:名前}と${file:パス})。 - Devin Local は、MCP のツール呼び出しを、既定で毎回確認します。許可・確認・拒否の規則で調整できます。
- MCP のツールのコードは第三者のものが多く、公式は失敗について責任を負わない、と書いています。
- フックは、利用者の全権限でコマンドを動かします。公式の注意を読んでから設定してください。
この記事は、公式の資料を2026年10月25日に読んでまとめたものです。この記事は、実際に使って確かめた記録ではありません。手順は「公式の手順を順に並べたもの」、設定例は「公式の例の写し」か、「公式の記載に合わせて、この記事で組んだ例(動作は確かめていません)」と、そのつど書き分けます。画面の表記は変わることがあるので、手元の画面と照らしてください。
先に結論
- MCP は「使っているエージェントが Devin Local か Cascade か」で、読まれるファイルが変わると公式のページから読める。 手元の版で、どのファイルが読まれるかを確かめてください。
- MCP のツールは、既定で毎回確認が出る(Devin Local)。 権限は
allow、deny、askで絞れます。 - フックは Cascade 向けの説明。 Devin Local のフックは別の書式、と公式にあります。
前提:用語をそろえる
- MCP(Model Context Protocol):AIに外部のツールやデータをつなぐ共通の決まりです。
- MCPサーバー:ツールを、MCP の形で出す小さなプログラムです。自分のPCで動くもの(stdio)と、ネット上にあるもの(HTTP)があります。
- stdio:標準入出力で、プログラムとやりとりする方式です。MCP の「ローカルのコマンド」型の通信がこれです。
- OAuth:パスワードを渡さず、サービスに入る許可を出す仕組みです。
- Devin Local / Cascade:Devin Local は今の既定のエージェント、Cascade は旧エージェント(公式のFAQは「remains available through July」、Devin Local のページは「新しい会話は Cascade では始まらない」という趣旨。変更履歴の「削除」は原文を確認できていません。古い説明ページは残る。01を参照)です。
- フック:エージェントの動きの前後に、自分のコマンドを自動で動かす仕組みです。
- コマンドパレット:機能の名前を打って呼び出す入口です。Mac は
⌘+⇧+P、Windows と Linux はCtrl+Shift+P。
連携A:MCP で外部のツールをつなぐ
まず、設定ファイルの場所(公式のページ同士で違う)
| 公式のページ | 書かれている場所 | 備考 |
|---|---|---|
| Devin Local Agent | プロジェクト .devin/config.json、自分用の上書き .devin/config.local.json(gitに入れない)、ユーザー ~/.config/devin/config.json |
現在の既定のエージェント向け |
| MCP Configuration(Devin CLI) | プロジェクト .devin/mcp_config.json、自分用の上書き .devin/mcp_config.local.json(gitに入れない)、ユーザー ~/.config/devin/mcp_config.json(Windows は %APPDATA%\devin\mcp_config.json) |
v3000.3 以降。それ以前は上の config.json の mcpServers に書かれ、新しい版では起動時に自動で移される、とある |
| MCP in Devin Desktop(Cascade) | ~/.config/devin/mcp_config.json($XDG_CONFIG_HOME があればその下)、Windows は %APPDATA%\devin\mcp_config.json |
「旧 Cascade のみ」と明記されている |
| Devin Desktop FAQ | ~/.codeium/mcp_config.json(変わらない) |
「MCP」の項で、この記述だけ |
公式は、どれがどの版の Devin Desktop にあたるかを、はっきりとは書いていません。手元の版で、どのファイルが読まれるかを確かめてください(Devin Local の画面の「Open customizations」に、読み込まれた MCP サーバーの一覧が出る、と公式にあります)。
設定の書き方(Devin CLI のページの内容)
ローカルのコマンド(stdio)型の項目です。
| 項目 | 必須 | 意味 |
|---|---|---|
command |
必須 | 実行するプログラム |
args |
任意 | 引数の配列 |
env |
任意 | 環境変数 |
disabled |
任意 | true で、このサーバーを使わない |
リモート(HTTP)型の項目です。
| 項目 | 必須 | 意味 |
|---|---|---|
url |
必須 | MCP の入口のURL |
transport |
任意 | "http"(URLの既定)か "sse" |
headers |
任意 | 追加のHTTPヘッダー |
oauthClientId、oauthClientSecret、oauthResource |
任意 | OAuth用。サーバー側が自動登録に対応していない場合の、登録済みのクライアントの情報など |
disabled |
任意 | true で使わない |
transportが"http"か省略のとき、CLI は Streamable HTTP を試し、認証以外の4xx エラーなら SSE に切り替える、とあります。- Cascade のページは、URL型の項目名に
serverUrlとurlの両方を挙げ、headersを書けるとしています。
公式の例の写し(Devin CLI のMCP概要のページ):ローカルの上書きのファイルに、トークンを書く例です。
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}
公式は、このファイルは .devin/mcp_config.local.json(git に入れない)に置き、トークンを、共有する設定ファイルに書かないようにする、と説明しています。Cascade のページの GitHub の例が、環境変数の名前 GITHUB_PERSONAL_ACCESS_TOKEN の同じ形だという点は、公式で確認できていません。
秘密の値を直接書かない書き方(公式の記載)
command、args、env、serverUrl、url、headers の中で、次の書き方が使えます(Cascade のページの記載)。
${env:変数名}:環境変数の値に置き換わる。未設定なら空の文字列。${file:/パス}:ファイルの中身(前後の空白を除く)に置き換わる。~から始まるパスも使える。読めなければ、書いたままになる。
この記事で組んだ例(公式の記載に合わせたもの。動作は確かめていません):トークンを環境変数で渡す、リモート型の例です。
{
"mcpServers": {
"example-remote": {
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "Bearer ${env:EXAMPLE_TOKEN}"
}
}
}
}
mcp.example.com と EXAMPLE_TOKEN は、書き方の説明のための仮の名前です。
OAuth が要るサーバー(Atlassian、Notion、Linear など)
- 公式の Devin CLI のページは、各クライアントが別々に認証するので、Windsurf や Claude Code で通した認証は、Devin CLI に使い回されない、と書いています。
- Devin CLI では
devin mcp login <サーバー名>でブラウザが開き、OAuth の認証をします。期限が切れたときはdevin mcp logoutのあとdevin mcp loginです。 - Devin Desktop の Devin Local では、期限切れの認証のサーバーは「Needs auth」と表示され、「Authenticate」を押すと、保存された認証を消して、ブラウザでの認証をやり直す、と公式にあります。
ツールの許可(権限)
- ツール名は
mcp__<サーバー名>__<ツール名>の形です。たとえばgithubサーバーのcreate_issueはmcp__github__create_issue。 - Devin Local は、MCP のツールの呼び出しを、既定で毎回確認します。特定のツール、またはサーバーの全ツールを、セッションの間だけ、または恒久的に許可できます。
- 設定ファイルでは、
permissionsの下のallow、deny、askの配列に、mcp__github__list_issues、mcp__github__*(1サーバーの全ツール)、mcp__*(全部)のような型を書きます。 - Cascade では、MCP の全ツールの合計が100までです。Cascade のページは、特定のツールを使わないときは、サーバーの設定の中の
disabledToolsに、ツール名を並べると書いています。
外し方・止め方
| やりたいこと | 公式の記載 |
|---|---|
| 一時的に止める(設定と認証は残す) | Devin CLI:devin mcp disable <名前>、戻すときは devin mcp enable <名前>。設定の項目に "disabled": true が入る。止めたサーバーのプロセスは起動せず、ツールも出ない |
| Cascade で止める | 「...」メニューの MCPs の欄で、サーバーのスイッチを切る |
| 認証をやり直す | devin mcp logout と devin mcp login、または画面の「Authenticate」 |
| サーバーを完全に消す | 設定ファイルの項目を消す(設定ファイルの書き方から読めること。消し方の専用手順は記載が見つからない) |
| 渡した鍵を無効にする | サービス側(GitHub など)の画面で行う。Devin Desktop 側の記載は見つからない |
管理者の制御(Teams と Enterprise)
Cascade のページには、次のように書かれています。
- 管理者は、チームの MCP の入り切りと、許可リストの設定ができます。許可するサーバーを1つでも登録すると、登録されていないサーバーはブロックされます。
- サーバーIDは、
mcp_config.jsonのキーと、大文字小文字を含めて一致させます。許可リストは正規表現で、全体に一致させ、引数の数も一致させます。 - 管理者の選択は3つ:サーバーIDだけ(公式が recommended と書く方法で、設定の中身は何でもよい)、完全一致、正規表現。
- Enterprise では、MCP レジストリのURLを置けます。複数なら和集合です。レジストリは Devin Local の「マーケットプレイス」に主に効く、とあります。
公式の注意
MCP のツールのコードは、サーバーを作った側のもので、ツール呼び出しの失敗について、公式は責任を負わない、と書かれています。Devin CLI のページは、トークンを、共有する設定ファイルに書かないよう案内しています。
連携B:フックで、自分のスクリプトにデータを渡す
公式の「Cascade Hooks」の内容です。これは Cascade のフックです。Devin Local には、別の書式のフックがあると書かれていますが、その書式は、今回読んだページには書かれていません。
- 設定の場所:システム(Mac は
/Library/Application Support/Devin/hooks.json、Linux と WSL は/etc/devin/hooks.json、Windows はC:\ProgramData\Devin\hooks.json)、ユーザー(Devin Desktop は~/.codeium/windsurf/hooks.json)、プロジェクト(.devin/hooks.json)。クラウドの管理画面からも足せます(Enterprise)。すべてが合わさり、クラウド、システム、ユーザー、プロジェクトの順に動きます。 - イベントは12種類:
pre_read_code/post_read_code、pre_write_code/post_write_code、pre_run_command/post_run_command、pre_mcp_tool_use/post_mcp_tool_use、pre_user_prompt、post_cascade_response、post_cascade_response_with_transcript、post_setup_worktree。 - 書き方の形(公式の例を縮めた形):
{
"hooks": {
"pre_run_command": [
{
"command": "python3 /path/to/your/script.py",
"show_output": true
}
]
}
}
- フックのスクリプトには、標準入力で JSON が渡ります。共通の項目は、イベント名、会話のID、1回の動きのID、時刻、モデルの名前、イベント固有の情報(
tool_info)です。tool_infoには、読み書きのイベントならfile_path(書き込みは編集前後の文字列)、コマンドのイベントならcommand_lineとcwd、MCP のイベントならサーバー名、ツール名、引数、(後のイベントでは)結果、が入ります。ユーザーの入力、AIの返事、会話の記録のファイルも渡るイベントがあります。 - 終了コード:
0は成功。2は、ブロックのエラーで、前処理のフックなら動作を止める。それ以外のコードはエラー扱いだが、動作は進む。止められるのは、pre_user_prompt、pre_read_code、pre_write_code、pre_run_command、pre_mcp_tool_useだけです。 - 公式の注意:フックは、利用者の全権限でシェルのコマンドを動かします。入力(特にファイルのパスとコマンド)を検証し、秘密を記録に残さない。会話の記録のファイルや返事には、コードの中身が含まれうる。重要な決まりは、プロジェクトのファイルではなく、クラウドかシステムの側に置く。
- Restricted Mode のワークスペースでは、フックは読み込まれず、動きません。
「AI同士」の組み合わせ:具体的な形
次は、公式の記載から組める組み合わせを並べたものです。組み合わせの表は、この記事の整理で、公式が示した組み合わせではありません。
| 組み合わせ | つなぎ方 | どこに何を書くか | 何が渡るか | 外し方 |
|---|---|---|---|---|
| Devin Desktop × 別社のエージェント(Codex CLI、Claude Agent、Gemini CLI、OpenCode など) | ACP | レジストリの JSON に起動コマンドを書く。「Agents」タブでオン。エージェントを先に入れる | 依頼と作業は、そのエージェントに任される。規約は、その提供元のもの。請求も提供元と | スイッチをオフ(記載は裏返しの読み取り) |
| Devin Desktop × Devin Cloud | 計画の引き渡し | 設定ファイルは不要(画面の操作) | 計画と作業は Devin のVMで処理される。送られ方は記載が見つからない | 記載が見つからない |
| Devin Desktop × GitHub などの MCP サーバー | MCP | mcpServers に command と args、トークンは env かローカルの上書きのファイル |
ツールの呼び出しの内容が、そのサーバーのプログラムに渡る。サーバーは第三者のコード | disabled、devin mcp disable、項目の削除。鍵はサービス側で無効にする |
| JetBrains の AI Chat × Devin | ACP | acp.json か、レジストリからの導入 |
AI Chat 経由の依頼が Devin に渡る | 「Reset ACP Authentication」、acp.json の項目を消す |
| Devin Desktop × Cursor の資産 | ルールの取り込み | .cursor/rules を .devin/rules/ へ |
ファイルの取り込み(外部へどう送られるかは、記載が見つからない) | ファイルを消す |
| Devin Desktop × Claude Code の資産 | スキルの探索 | .claude/skills/ が、設定の読み込みが有効なときに探される |
ファイルの読み込み(外部へどう送られるかは、記載が見つからない) | 設定を戻す、またはファイルを消す |
| Devin Desktop × 自作のスクリプト | フック | hooks.json |
読み書きやコマンドの内容が、自分のスクリプトに渡る | ファイルから消す |
うまくいかないときの確認点
| 症状 | 公式の記載から確認すること |
|---|---|
| MCP のサーバーが出ない | 使っているエージェントが Devin Local か Cascade か。どのファイルが読まれる版か(上の表)。ファイルのJSONの形 |
| MCP で「Needs auth」 | 「Authenticate」を押す。CLI なら devin mcp logout と devin mcp login |
| MCP のツールが多すぎる(Cascade) | 合計100までの上限。使わないサーバーを切る、disabledTools |
| 社内の端末で MCP が使えない | 管理者の許可リストに入っているか。サーバーIDが、キーと大文字小文字まで一致しているか |
| フックが動かない | 作業フォルダが Restricted Mode でないか。Cascade 向けの書式を、Devin Local に書いていないか |
| ACP、Devin Cloud、JetBrains の不具合 | 「その1」(07)の確認点の表 |
気をつけること
- この記事は、実際に使って確かめた記録ではありません。公式のドキュメントを読んだ範囲です。公式ページは要約の形で取得しました。
- 公式の資料の間で、MCP の設定ファイルの名前(
.devin/config.json、.devin/mcp_config.json、~/.config/devin/mcp_config.json、~/.codeium/mcp_config.json)と、Cascade の扱いに食い違いがあります。どれかに決めつけず、手元の版と画面で確かめてください。 - MCP のサーバーは、多くが第三者のコードです。公式は、ツール呼び出しの失敗に責任を負わない、と書いています。鍵は設定ファイルに直接書かず、
${env:...}や${file:...}で渡す書き方が公式に用意されています。 - フックは、利用者の全権限でコマンドを動かします。公式の注意(入力の検証、秘密を記録に残さない)を読んでから設定してください。
- 読めていないページ:Devin Local のフックの書式、MCP のマーケットプレイスの画面の手順、管理者向けのAPIは、今回読んでいません。
- 取得したページの中に、AIへの指示のような文は見当たりませんでした。
- 規約の解釈は、公式や専門家に確認してください。この記事は法律の助言ではありません。
出典
- Cascade MCP Configuration(Devin ドキュメント、Cognition、確認日 2026-10-25)
- MCP in Devin CLI(Devin ドキュメント、Cognition、確認日 2026-10-25)
- MCP Configuration(Devin CLI)(Devin ドキュメント、Cognition、確認日 2026-10-25)
- Devin Local Agent(Devin ドキュメント、Cognition、確認日 2026-10-25)
- Cascade Hooks(Devin ドキュメント、Cognition、確認日 2026-10-25)
- Devin Desktop FAQ(Devin ドキュメント、Cognition、確認日 2026-10-25)
- Agent Client Protocol(Devin ドキュメント、Cognition、確認日 2026-10-25)
- Devin Cloud in Devin Desktop(Devin ドキュメント、Cognition、確認日 2026-10-25)
- Using Devin in JetBrains IDEs via ACP(Devin ドキュメント、Cognition、確認日 2026-10-25)
- Skills(Devin ドキュメント、Cognition、確認日 2026-10-25)
- Devin Desktop(devin.ai、Cognition、確認日 2026-10-25)
- Documentation index: Desktop(Devin ドキュメント、Cognition、確認日 2026-10-25)