> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP設定

> MCPサーバーの追加、設定、管理方法

<div id="adding-mcp-servers">
  ## MCPサーバーの追加
</div>

<div id="via-command-line">
  ### コマンドラインから
</div>

MCP サーバーを追加する最も簡単な方法:

```bash theme={null}
# stdioサーバー — --の後にコマンドを渡す
devin mcp add <name> -- <command> [args...]

# HTTPサーバー — URLを位置引数として渡す
devin mcp add <name> <URL>

# HTTPサーバー — または--urlフラグを利用する
devin mcp add <name> --url <URL>
```

トランスポートの種類は自動的に推定されます。URL は HTTP (Streamable HTTP) を示し、末尾の引数 (または `--command`) は stdio を示します。

<Note>リモートの MCP サーバーはデフォルトで Streamable HTTP を利用します。サーバーが HTTP 4xx エラーを返した場合、CLI は同じ URL で SSE にフォールバックします。必要に応じて `"transport": "sse"` を明示的に設定してください — 詳しくは下記の [レガシー SSE フォールバック](#legacy-sse-fallback) を参照してください。</Note>

デフォルトでは、サーバーは **local** スコープ (`.devin/config.local.json`、gitignored) に保存されます。変更するには `-s`/`--scope` を利用してください:

```bash theme={null}
devin mcp add -s project <name> <URL>   # .devin/config.json で共有
devin mcp add -s user <name> <URL>      # グローバル (~/.config/devin/config.json; Windows では %APPDATA%\devin\config.json)
```

コマンドラインからもサーバーを管理できます：

```bash theme={null}
devin mcp list              # List all configured servers
devin mcp get <name>        # Show details for a specific server
devin mcp remove <name>     # Remove a configured server
devin mcp login <name>      # Authenticate with a server via OAuth
devin mcp logout <name>     # Remove stored OAuth credentials
devin mcp enable <name>     # 無効化されたサーバーを有効化する
devin mcp disable <name>    # サーバーを削除せずに無効化する
```

<div id="via-config-file">
  ### 設定ファイルを使う
</div>

サーバーを設定ファイルの `mcpServers` セクションに直接追加します。

<Tabs>
  <Tab title="プロジェクト設定">
    ```json theme={null}
    // .devin/config.json
    {
      "mcpServers": {
        "server-name": {
          "command": "npx",
          "args": ["-y", "@company/mcp-server"],
          "env": {
            "API_KEY": "your-key"
          }
        }
      }
    }
    ```

    <Note>プロジェクトレベルのサーバーは、バージョン管理を通じてチームで共有されます。</Note>
  </Tab>

  <Tab title="ユーザー設定">
    ```json theme={null}
    // ~/.config/devin/config.json
    {
      "mcpServers": {
        "my-server": {
          "command": "node",
          "args": ["/path/to/my-server.js"],
          "env": {}
        }
      }
    }
    ```

    <Note>ユーザーレベルのサーバーは、すべてのプロジェクトに適用されます。</Note>
  </Tab>

  <Tab title="ローカル上書き">
    ```json theme={null}
    // .devin/config.local.json
    {
      "mcpServers": {
        "server-name": {
          "command": "npx",
          "args": ["-y", "@company/mcp-server"],
          "env": {
            "API_KEY": "my-personal-key"
          }
        }
      }
    }
    ```

    <Note>ローカル設定は gitignore の対象になるため、個人用のAPIキーにはこちらを利用してください。</Note>
  </Tab>
</Tabs>

***

<div id="server-configuration-options">
  ## サーバーの設定オプション
</div>

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

<div id="local-command-stdio">
  ### ローカルコマンド (stdio)
</div>

| フィールド      | 型         | 必須  | 説明                                                                                |
| ---------- | --------- | --- | --------------------------------------------------------------------------------- |
| `command`  | string    | はい  | 実行する実行ファイル                                                                        |
| `args`     | string\[] | いいえ | コマンドライン引数                                                                         |
| `env`      | object    | いいえ | 設定する環境変数                                                                          |
| `disabled` | boolean   | いいえ | `true` に設定すると、このサーバーをスキップします ([サーバーの有効化と無効化](#enabling-and-disabling-servers)を参照) |

<div id="remote-server-streamable-http">
  ### リモートサーバー (Streamable HTTP)
</div>

| Field               | Type    | Required | Description                                                                                                                                                                                                                                                                                                                        |
| ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `url`               | string  | Yes      | MCPサーバーのエンドポイント URL                                                                                                                                                                                                                                                                                                                |
| `transport`         | string  | No       | `"http"` (Streamable HTTP。URL ベースのサーバーのデフォルト) または `"sse"` (レガシー SSE) 。`"http"` に設定するか省略すると、CLI はまず Streamable HTTP を試し、4xx エラーが発生した場合は SSE にフォールバックします ([spec に従って](https://spec.modelcontextprotocol.io/specification/2025-03-26/basic/transports/#backwards-compatibility)) 。サーバーの SSE エンドポイントが別のパスにある場合は、`"sse"` を明示的に設定してください。 |
| `headers`           | object  | No       | リクエストに含めるカスタム HTTP ヘッダー                                                                                                                                                                                                                                                                                                            |
| `oauthClientId`     | string  | No       | 動的クライアント登録 (DCR) をサポートしていないサーバー向けの事前登録済み OAuth クライアントID (例: GitHub) 。以下の「事前登録済み OAuth クライアント」セクションを参照してください。                                                                                                                                                                                                                       |
| `oauthClientSecret` | string  | No       | 機密クライアント向けの OAuth クライアントシークレット。`oauthClientId` と組み合わせて使用します。                                                                                                                                                                                                                                                                       |
| `disabled`          | boolean | No       | このサーバーをスキップするには `true` に設定します ([サーバーの有効化と無効化](#enabling-and-disabling-servers) を参照)                                                                                                                                                                                                                                                |

<div id="examples">
  ### 使用例
</div>

<AccordionGroup>
  <Accordion title="GitHub (stdio)">
    ```json theme={null}
    {
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_TOKEN": "ghp_..."
          }
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="Notion (HTTP with OAuth)">
    ```json theme={null}
    {
      "mcpServers": {
        "notion": {
          "url": "https://mcp.notion.com/mcp",
          "transport": "http"
        }
      }
    }
    ```

    <Note>OAuth ベースのサーバーを追加したら、`devin mcp login notion` を実行して認証します。詳細は下記の[認証](#authentication)をご覧ください。</Note>
  </Accordion>

  <Accordion title="Linear (HTTP with OAuth)">
    ```json theme={null}
    {
      "mcpServers": {
        "linear": {
          "url": "https://mcp.linear.app/mcp",
          "transport": "http"
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="Atlassian / Jira (HTTP with OAuth)">
    ```json theme={null}
    {
      "mcpServers": {
        "atlassian": {
          "url": "https://mcp.atlassian.com/v1/mcp",
          "transport": "http"
        }
      }
    }
    ```

    <Note>追加後、`devin mcp login atlassian` を実行して認証します。各 MCP クライアント (Windsurf、Claude Code、Devin CLI) はそれぞれ独自の OAuth セッションを保持するため、別のツールですでに認証済みでも、個別にログインする必要があります。</Note>
  </Accordion>

  <Accordion title="カスタムサーバー (stdio)">
    ```json theme={null}
    {
      "mcpServers": {
        "my-tools": {
          "command": "python",
          "args": ["./scripts/mcp-server.py"],
          "env": {
            "DB_URL": "postgres://localhost/mydb"
          }
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

***

<div id="authentication">
  ## 認証
</div>

一部のリモートMCPサーバーでは、OAuth認証が必要です。OAuth対応のサーバーを設定に追加したら、`login` コマンドを使って認証してください。

```bash theme={null}
devin mcp login <server-name>
```

たとえば、

```bash theme={null}
devin mcp login notion    # Notionで認証する
devin mcp login linear    # Linearで認証する
```

アクセスを承認するためのブラウザウィンドウが開きます。OAuthトークンはローカルに保存され、自動的に更新されます。

必要に応じて、特定のOAuthスコープをリクエストすることもできます：

```bash theme={null}
devin mcp login notion --scopes read,write
```

サーバーに保存済みのOAuth認証情報を削除するには:

```bash theme={null}
devin mcp logout <server-name>
```

<Note>
  サーバーがOAuthに対応している場合は、そのサーバーを初めて利用する際にも、自動的に認証を求められます。
</Note>

<div id="pre-registered-oauth-clients">
  ### 事前登録済みのOAuthクライアント
</div>

OAuthベースのMCPサーバーのほとんどは[動的クライアント登録](https://datatracker.ietf.org/doc/html/rfc7591) (DCR) をサポートしているため、Devin CLIが自動的に自身を登録し、クライアント認証情報を指定する必要はありません。

一部のプロバイダー (例: GitHub) はDCRをサポートしておらず、代わりに**事前登録済み**のOAuthクライアントが必要です。その場合は、`oauthClientId` / `oauthClientSecret` を使用して、クライアントIDと、機密クライアントの場合はクライアントシークレットを指定します。

```json theme={null}
{
  "mcpServers": {
    "my-server": {
      "url": "https://mcp.example.com/mcp",
      "transport": "http",
      "oauthClientId": "Iv1.abc123def456",
      "oauthClientSecret": "${env:MY_MCP_CLIENT_SECRET}"
    }
  }
}
```

`oauthClientId` が設定されている場合、Devin CLI は動的クライアント登録をスキップし、OAuthフローでは事前登録済みのクライアントを利用します。通常どおり認証するには、`devin mcp login <name>` を実行するか、初回利用時にトリガーしてください。

サーバーの追加時やログイン時に、これらをコマンドラインから設定することもできます：

```bash theme={null}
devin mcp add my-server <URL> --oauth-client-id <ID> --oauth-client-secret <SECRET>
devin mcp login my-server --oauth-client-id <ID> --oauth-client-secret <SECRET>
```

<Note>
  `oauthClientId` / `oauthClientSecret` は、認可フローで使用される OAuth クライアントの認証情報です。これらは汎用的なリクエスト単位の認証情報ではありません。サーバーが固定のトークンを想定している場合は、代わりに `headers` (HTTP) または `env` (stdio) を利用してください。
</Note>

<Warning>
  クライアントシークレットを共有設定に commit しないでください。environment variable (`${env:VAR}`) から参照するか、ファイル (`${file:/path}`) から読み取るか、`.devin/config.local.json` (gitignored) に保存してください。詳しくは以下の「シークレットの管理」セクションを参照してください。
</Warning>

***

<div id="enabling-and-disabling-servers">
  ## サーバーの有効化と無効化
</div>

設定を削除せずに、MCPサーバーを一時的に無効にできます。無効にしたサーバーはツールの検出時にスキップされるため、そのツールは表示されず、サーバープロセスも起動されません。

```bash theme={null}
devin mcp disable <name>    # サーバーを無効化する
devin mcp enable <name>     # 再度有効化する
```

これにより、設定ファイル内のサーバーエントリに `"disabled": true` フラグが設定されます。特定のスコープを対象にするには、`-s`/`--scope` を利用します。

```bash theme={null}
devin mcp disable -s project my-server
devin mcp enable -s user my-server
```

このフラグは、設定ファイルに直接指定することもできます。

```json theme={null}
{
  "mcpServers": {
    "my-server": {
      "command": "npx",
      "args": ["-y", "@company/mcp-server"],
      "disabled": true
    }
  }
}
```

<Note>無効化は、サーバーの設定 (環境変数やOAuth認証情報を含む) を保持したまま、一時的に使用を停止したい場合に便利です。たとえば、起動時間を短縮したり、問題を切り分けたりするためです。</Note>

***

<div id="managing-secrets">
  ## シークレットの管理
</div>

<Warning>
  APIキーやシークレットをバージョン管理にコミットしないでください。機密性の高い値には `.devin/config.local.json` を利用してください。
</Warning>

チームでのプロジェクトでは、次のパターンを推奨します。

1. `.devin/config.json` で、env var はプレースホルダーにするか未設定のまま サーバー を定義する
2. 各チームメンバーが `.devin/config.local.json` に個人用のキーを追加する

ローカル設定ファイルは自動的に git の対象外になります。

***

<div id="mcp-permissions">
  ## MCPの権限
</div>

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

```json theme={null}
{
  "permissions": {
    "allow": [
      "mcp__github__list_issues",
      "mcp__github__create_issue"
    ],
    "deny": [
      "mcp__github__delete_repo"
    ],
    "ask": [
      "mcp__linear__*"
    ]
  }
}
```

**権限マッチャーのパターン:**

| パターン                | 一致対象                 |
| ------------------- | -------------------- |
| `mcp__server__tool` | 特定のサーバー上の特定のツール      |
| `mcp__server__*`    | 特定のサーバー上のすべてのツール     |
| `mcp__*`            | すべてのサーバー上のすべてのMCPツール |

***

<div id="organization-restrictions">
  ## 組織の制限
</div>

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

***

<div id="troubleshooting">
  ## トラブルシューティング
</div>

<AccordionGroup>
  <Accordion title="リモートサーバーで認証が必要 / OAuth エラーが発生する">
    リモート MCP サーバーへの接続時に `Auth required` や `AuthRequired` のようなエラーが表示される場合、そのサーバーでは OAuth 認証が必要です。

    実行:

    ```bash theme={null}
    devin mcp login <server-name>
    ```

    MCP クライアントごとに認証は個別に行われます。Windsurf や Claude Code ですでに認証済みでも、Devin CLI では別途 `devin mcp login` を実行する必要があります。

    認証状態を確認するには、認証情報をいったん削除してから再度追加してみてください:

    ```bash theme={null}
    devin mcp logout <server-name>
    devin mcp login <server-name>
    ```
  </Accordion>

  <Accordion title="サーバーが起動しない">
    Devin CLI の外部でコマンドが動作することを確認してください:

    ```bash theme={null}
    npx -y @modelcontextprotocol/server-github
    ```

    必要な環境変数がすべて設定されていることを確認してください。
  </Accordion>

  <Accordion title="ツールが表示されない">
    エージェントに MCP サーバーとツールを一覧表示するよう依頼してください。サーバーの初期化に少し時間がかかる場合があります。
  </Accordion>

  <Accordion title="Permission denied">
    権限設定を確認してください。MCP ツールはデフォルトで承認を求めるようになっています。自動承認するには `permissions.allow` に追加してください。
  </Accordion>

  <Accordion title="レガシー SSE フォールバック">
    HTTP サーバーに接続すると、Devin CLI はまず **Streamable HTTP** を試します。サーバーが HTTP 4xx エラー (例: 404 または 405) を返した場合、自動的に**同じ設定済み URL**で **レガシー SSE** にフォールバックします。これは [MCP spec の後方互換性ガイダンス](https://spec.modelcontextprotocol.io/specification/2025-03-26/basic/transports/#backwards-compatibility) に従った動作です。

    このフォールバックがトリガーされるのは 4xx レスポンスの場合のみです。接続エラー、タイムアウト、5xx レスポンスでは SSE を試行せず、そのままエラーとして報告されます。

    サーバーの SSE エンドポイントが別のパス (例: `/mcp` ではなく `/sse`) にある場合は、SSE URL とともに `"transport": "sse"` を設定すると、Streamable HTTP を試さずに直接接続できます。

    両方のトランスポートが失敗した場合、トラブルシューティングに役立つよう、エラーメッセージには両方の試行の詳細が含まれます。
  </Accordion>
</AccordionGroup>
