メインコンテンツへスキップ

MCPサーバーの追加

コマンドラインから

MCP サーバーを追加する最も簡単な方法:
トランスポートの種類は自動的に推定されます。URL は HTTP (Streamable HTTP) を示し、末尾の引数 (または --command) は stdio を示します。
リモートの MCP サーバーはデフォルトで Streamable HTTP を利用します。サーバーが HTTP 4xx エラーを返した場合、CLI は同じ URL で SSE にフォールバックします。必要に応じて "transport": "sse" を明示的に設定してください — 詳しくは下記の レガシー SSE フォールバック を参照してください。
デフォルトでは、サーバーは local スコープ (.devin/config.local.json、gitignored) に保存されます。変更するには -s/--scope を利用してください:
コマンドラインからもサーバーを管理できます:

設定ファイルを使う

サーバーを設定ファイルの mcpServers セクションに直接追加します。
プロジェクトレベルのサーバーは、バージョン管理を通じてチームで共有されます。

サーバーの設定オプション

MCPサーバーは、ローカルコマンド (stdio トランスポート) またはリモートサーバー (HTTP トランスポート) のいずれかの方法で設定できます。

ローカルコマンド (stdio)

リモートサーバー (Streamable HTTP)

使用例

OAuth ベースのサーバーを追加したら、devin mcp login notion を実行して認証します。詳細は下記の認証をご覧ください。
追加後、devin mcp login atlassian を実行して認証します。各 MCP クライアント (Windsurf、Claude Code、Devin CLI) はそれぞれ独自の OAuth セッションを保持するため、別のツールですでに認証済みでも、個別にログインする必要があります。

認証

一部のリモートMCPサーバーでは、OAuth認証が必要です。OAuth対応のサーバーを設定に追加したら、login コマンドを使って認証してください。
たとえば、
アクセスを承認するためのブラウザウィンドウが開きます。OAuthトークンはローカルに保存され、自動的に更新されます。 必要に応じて、特定のOAuthスコープをリクエストすることもできます:
サーバーに保存済みのOAuth認証情報を削除するには:
サーバーがOAuthに対応している場合は、そのサーバーを初めて利用する際にも、自動的に認証を求められます。

事前登録済みのOAuthクライアント

OAuthベースのMCPサーバーのほとんどは動的クライアント登録 (DCR) をサポートしているため、Devin CLIが自動的に自身を登録し、クライアント認証情報を指定する必要はありません。 一部のプロバイダー (例: GitHub) はDCRをサポートしておらず、代わりに事前登録済みのOAuthクライアントが必要です。その場合は、oauthClientId / oauthClientSecret を使用して、クライアントIDと、機密クライアントの場合はクライアントシークレットを指定します。
oauthClientId が設定されている場合、Devin CLI は動的クライアント登録をスキップし、OAuthフローでは事前登録済みのクライアントを利用します。通常どおり認証するには、devin mcp login <name> を実行するか、初回利用時にトリガーしてください。 サーバーの追加時やログイン時に、これらをコマンドラインから設定することもできます:
oauthClientId / oauthClientSecret は、認可フローで使用される OAuth クライアントの認証情報です。これらは汎用的なリクエスト単位の認証情報ではありません。サーバーが固定のトークンを想定している場合は、代わりに headers (HTTP) または env (stdio) を利用してください。
クライアントシークレットを共有設定にコミットしないでください。environment variable (${env:VAR}) から参照するか、ファイル (${file:/path}) から読み取るか、.devin/config.local.json (gitignore の対象) に保存してください。詳しくは以下の「シークレットの管理」セクションを参照してください。

OAuth リソースのオーバーライド

OAuth の認可およびトークン交換時に、Devin CLI は認可サーバーが対象オーディエンスに制限されたトークンを発行できるよう、RFC 8707resource パラメータを送信します。デフォルトでは、この値は MCP server の URL です。oauthResource で上書きできます:
このフィールドには、3つの動作があります。
  • 未設定 (デフォルト) : resource を MCP server URL に設定して送信します。
  • 空でない値: デフォルト値を指定した値で置き換えます (例: 特定の application ID URI) 。
  • 空文字列 (""): 認可 URL とトークン交換の両方から resource パラメータを完全に省略します。
server の追加時やログイン時には、コマンドラインから設定することもできます:
他のOAuthフィールドと同様に、oauthResource${env:VAR}${file:/path} の展開に対応しています。

サーバーの有効化と無効化

設定を削除せずに、MCPサーバーを一時的に無効にできます。無効にしたサーバーはツールの検出時にスキップされるため、そのツールは表示されず、サーバープロセスも起動されません。
これにより、設定ファイル内のサーバーエントリに "disabled": true フラグが設定されます。特定のスコープを対象にするには、-s/--scope を利用します。
このフラグは、設定ファイルに直接指定することもできます。
無効化は、サーバーの設定 (環境変数やOAuth認証情報を含む) を保持したまま、一時的に使用を停止したい場合に便利です。たとえば、起動時間を短縮したり、問題を切り分けたりするためです。

シークレットの管理

APIキーやシークレットをバージョン管理にコミットしないでください。機密性の高い値には .devin/config.local.json を利用してください。
チームでのプロジェクトでは、次のパターンを推奨します。
  1. .devin/config.json で、env var はプレースホルダーにするか未設定のまま サーバー を定義する
  2. 各チームメンバーが .devin/config.local.json に個人用のキーを追加する
ローカル設定ファイルは自動的に git の対象外になります。

MCPの権限

権限設定で、特定のMCPツールを事前承認したり、拒否したり、都度確認を必須にしたりできます。
権限マッチャーのパターン:

組織の制限

Enterprise チームをご利用の場合、接続できる MCPサーバーを管理者が制限していることがあります。設定済みのサーバーでも、チームで MCP が無効になっている場合や、チームの許可リスト、または必須の MCP レジストリ に含まれていない場合は、ブロックされることがあります。その場合、そのサーバーには接続できず、ツールも利用できません。詳しくは、チーム設定 — MCP レジストリを参照してください。

トラブルシューティング

リモート MCP サーバーへの接続時に Auth requiredAuthRequired のようなエラーが表示される場合、そのサーバーでは OAuth 認証が必要です。実行:
MCP クライアントごとに認証は個別に行われます。Windsurf や Claude Code ですでに認証済みでも、Devin CLI では別途 devin mcp login を実行する必要があります。認証状態を確認するには、認証情報をいったん削除してから再度追加してみてください:
Devin CLI の外部でコマンドが動作することを確認してください:
必要な環境変数がすべて設定されていることを確認してください。
エージェントに MCP サーバーとツールを一覧表示するよう依頼してください。サーバーの初期化に少し時間がかかる場合があります。
権限設定を確認してください。MCP ツールはデフォルトで承認を求めるようになっています。自動承認するには permissions.allow に追加してください。
一部の認可サーバーは、RFC 8707 の resource パラメータを含む OAuth リクエストを拒否します。パラメータを省略するには、oauthResource を空文字列に設定してください:
その後、再認証してください:
oauthResource の動作の詳細については、OAuth リソースのオーバーライド を参照してください。
HTTP サーバーに接続すると、Devin CLI はまず Streamable HTTP を試します。サーバーが HTTP 4xx エラー (例: 404 または 405) を返した場合、自動的に同じ設定済み URLレガシー SSE にフォールバックします。これは MCP spec の後方互換性ガイダンス に従った動作です。このフォールバックがトリガーされるのは 4xx レスポンスの場合のみです。接続エラー、タイムアウト、5xx レスポンスでは SSE を試行せず、そのままエラーとして報告されます。サーバーの SSE エンドポイントが別のパス (例: /mcp ではなく /sse) にある場合は、SSE URL とともに "transport": "sse" を設定すると、Streamable HTTP を試さずに直接接続できます。両方のトランスポートが失敗した場合、トラブルシューティングに役立つよう、エラーメッセージには両方の試行の詳細が含まれます。