Model Context Protocol (MCP) サーバーは、追加のツールとコンテキストを提供することでdroidの機能を拡張します。Droidでは、簡単なブラウジングとセットアップのためのインタラクティブUIと、スクリプトや自動化のためのCLIコマンドの2つの管理方法を提供しています。
クイックスタート: レジストリから追加
最も簡単に始める方法は、組み込みレジストリを使用することです。droidで/mcpと入力し、**「レジストリから追加」**を選択して40以上の事前設定済みサーバーを参照できます:
| サーバー | 説明 |
|---|
| figma | デザインの探索と実装 |
| linear | 課題追跡とプロジェクト管理 |
| sentry | エラー追跡とパフォーマンス監視 |
| notion | ノート、ドキュメント、プロジェクト管理 |
| supabase | Supabaseプロジェクトの作成と管理 |
| stripe | 決済処理API |
| vercel | プロジェクトとデプロイメントの管理 |
| playwright | エンドツーエンドブラウザーテスト |
| hubspot | CRMデータ管理 |
| mongodb | データベース管理 |
| … | その他多数 |
リストからサーバーを選択し、必要に応じて認証を行う(ほとんどのHTTPサーバーはOAuthをサポート—ブラウザーのプロンプトに従ってください)と、サーバーがすぐに使用可能になります。
レジストリは最速で始める方法です。カスタムサーバーや自動化には、以下のCLIコマンドを使用します。
インタラクティブマネージャー(/mcp)
droid内で/mcpと入力すると、インタラクティブMCPマネージャーが開きます。ここから以下のことができます:
- サーバーの参照 - 設定済みのすべてのサーバーとその接続状況を確認
- ツールの表示 - 接続された各サーバーが提供するツールを検査
- 有効化/無効化 - サーバーを削除せずに一時的に無効化
- 認証 - ブラウザー経由でOAuth対応サーバーに接続
- 認証のクリア - サーバーの保存された認証情報を削除
- レジストリから追加 - 人気のあるMCPサーバーをワンクリックセットアップ
- サーバーの削除 - ユーザー設定のサーバーを削除
CLIでサーバーを追加
スクリプトや自動化には、droid mcp addを使用してください。Droidは3つのトランスポートをサポートしています:http(Streamable HTTP — 現行のMCP標準で、内部でSSEを使ってレスポンスをストリーミングします)、sse(古いサーバー向けのレガシーな単独HTTP+SSEトランスポート)、stdio(ローカルプロセス)。
HTTPサーバーの追加
HTTPサーバーはリモートMCPエンドポイントで、クラウドサービスやAPIに接続する推奨方法です。
構文:
droid mcp add <name> <url> --type http [--header "KEY: VALUE"...]
引数:
name - 一意のサーバー識別子
url - MCPサーバーのHTTP/HTTPS URL
--type http - HTTPトランスポートを指定するための必須フラグ
--header "KEY: VALUE" - 認証用HTTPヘッダー(複数回使用可能)
人気のHTTP MCPサーバー
開発とテスト
Sentry - エラーの監視、本番環境の問題のデバッグ
droid mcp add sentry https://mcp.sentry.dev/mcp --type http
Hugging Face - Hugging Face HubとGradio AIアプリケーションにアクセス
droid mcp add hugging-face https://huggingface.co/mcp --type http
Socket - 依存関係のセキュリティ分析
droid mcp add socket https://mcp.socket.dev/ --type http
プロジェクト管理とドキュメント
Notion - ドキュメントの読み取り、ページの更新、タスク管理
droid mcp add notion https://mcp.notion.com/mcp --type http
Linear - 課題追跡とプロジェクト管理
droid mcp add linear https://mcp.linear.app/mcp --type http
Intercom - 顧客の会話とチケットへのアクセス
droid mcp add intercom https://mcp.intercom.com/mcp --type http
Monday - monday.comボードとアイテムの管理
droid mcp add monday https://mcp.monday.com/mcp --type http
決済と商取引
Stripe - 決済処理とサブスクリプション
droid mcp add stripe https://mcp.stripe.com --type http
PayPal - PayPal商取引と決済処理
droid mcp add paypal https://mcp.paypal.com/mcp --type http
デザインとメディア
Figma - Figmaコンテキストでコードを生成
droid mcp add figma https://mcp.figma.com/mcp --type http
Canva - Canvaデザインの閲覧、要約、生成
droid mcp add canva https://mcp.canva.com/mcp --type http
TwelveLabs - 動画分析、検索、AI駆動のインサイト
droid mcp add twelvelabs-mcp https://mcp.twelvelabs.io --type http \
--header "x-api-key: YOUR_TWELVELABS_API_KEY"
インフラストラクチャとDevOps
Netlify - ウェブサイトの作成、デプロイ、管理
droid mcp add netlify https://netlify-mcp.netlify.app/mcp --type http
Vercel - プロジェクト、デプロイメント、ログの管理
droid mcp add vercel https://mcp.vercel.com/ --type http
Stytch - 認証サービスの設定
droid mcp add stytch https://mcp.stytch.dev/mcp --type http
多くのリモートサーバー(HTTP と SSE)では OAuth 認証が必要です。追加後は、
インタラクティブな/mcp UIを使用して認証フローを完了してください。
SSEサーバーの追加
sse はレガシーな HTTP+SSE トランスポート(MCP プロトコルバージョン 2024-11-05)で、独立した Server-Sent Events エンドポイントを公開します。これは、内部で既に SSE を使う Streamable HTTP(--type http)に置き換えられました。そのため、通常は http を優先し、サーバーが古い単独 SSE エンドポイントしか提供しない場合にのみ sse を使ってください。引数は HTTP サーバーと同じで、変わるのは --type だけです。
構文:
droid mcp add <name> <url> --type sse [--header "KEY: VALUE"...]
例:
droid mcp add example-sse https://mcp.example.com/sse --type sse \
--header "Authorization: Bearer YOUR_TOKEN"
Stdioサーバーの追加
Stdioサーバーはマシン上でローカルプロセスとして実行され、直接システムアクセスが必要なツールに最適です。
構文:
droid mcp add <name> "<command>" [--env KEY=VALUE...]
引数:
name - 一意のサーバー識別子
command - サーバーを開始するためのコマンド(スペースが含まれる場合は引用符で囲む)
--env KEY=VALUE - 環境変数(複数回使用可能)
人気のStdio MCPサーバー
これらの npx の例では、各パッケージの公開済み最新バージョンをインストールします。セキュリティに敏感な環境では、airtable-mcp-server@1.4.0 のように明示的なバージョンを固定し、更新を意図的に行い、実行前に変更内容を監査できるようにしてください。
Airtable - レコードの読み取り/書き込み、ベースとテーブルの管理
droid mcp add airtable "npx -y airtable-mcp-server" \
--env AIRTABLE_API_KEY=your_key
ClickUp - タスク管理とプロジェクト追跡
droid mcp add clickup "npx -y @hauptsache.net/clickup-mcp" \
--env CLICKUP_API_KEY=your_key \
--env CLICKUP_TEAM_ID=your_team_id
HubSpot - CRMデータのアクセスと管理
droid mcp add hubspot "npx -y @hubspot/mcp-server" \
--env HUBSPOT_ACCESS_TOKEN=your_token
サーバーの削除
設定からサーバーを削除:
例:
サーバーの管理
droid内で/mcpと入力すると、MCPサーバーを管理するためのインタラクティブUIが開きます。
- 設定済みサーバーをステータス付きですべて表示
- 各サーバーが提供するすべてのツールを表示
- OAuth認証が必要なリモートサーバーの認証
- サーバーの追加/削除および有効化/無効化
MCPサーバー設定は、次のレベルのローカルファイルから読み込まれます:
| レベル | 場所 | 目的 |
|---|
| ユーザー | ~/.factory/mcp.json | 個人のサーバー、すべてのプロジェクトで利用可能 |
| フォルダ | プロジェクトの任意の祖先ディレクトリにある .factory/mcp.json | 共通の親フォルダ配下のネストしたプロジェクト間で共有するサーバー |
| プロジェクト | プロジェクトルートの .factory/mcp.json | チーム共有サーバー、リポジトリにコミット |
組織管理者は、組織管理設定を通じてサーバーを一元提供し、許可するサーバーを制限することもできます(Enterprise MCP ポリシー を参照)。
レイヤー化の仕組み
同じサーバーが複数レベルで定義されている場合は、ユーザー設定、フォルダレベル設定、プロジェクト設定の順に優先されます。
重要な動作:
- プロジェクト定義のサーバーを有効化/無効化すると、新しい状態でコピーがユーザー設定に保存されます。元のプロジェクト設定は変更されないため、チームメンバーには影響しません。
- プロジェクトサーバーはCLIや
/mcpUI経由では削除できません。削除するには、.factory/mcp.jsonを直接編集してください。
droid mcp addやレジストリ経由で追加したサーバーは、常にユーザー設定に保存されます。
OAuthトークン
OAuthトークンはシステムキーリング(またはフォールバックファイル)にグローバルに保存され、プロジェクトごとではありません。あるプロジェクトでサーバーに認証すると、そのサーバーが設定されているすべての場所で認証されます。
サーバーの認証をクリアするには、/mcpインタラクティブマネージャーを使用し、「認証のクリア」を選択してください。
設定スキーマ
各サーバーエントリには以下が含まれます:
| フィールド | 型 | 説明 |
|---|
type | "stdio" | "http" | "sse" | サーバータイプ。stdio サーバーでは省略でき、その場合は stdio がデフォルトになります。 |
disabled | boolean | サーバーを一時的に無効化(デフォルト:false) |
enabledTools | string[] | このサーバーから読み込むツール名の許可リスト。設定した場合、列挙したツールだけがコンテキストに読み込まれます。 |
disabledTools | string[] | このサーバーから除外するツール名のブロックリスト。無効化したツールはコンテキストに読み込まれません。 |
timeoutMs | number | MCP ツール呼び出しタイムアウトのサーバー単位の上書き値(ミリ秒)。省略時はグローバル設定のデフォルトにフォールバックします。 |
stdioサーバーの場合:
- command: 実行する実行可能ファイル
- args: コマンドライン引数(配列)
- env: 環境変数(オブジェクト)
http および sse サーバーの場合:
- url: HTTP/HTTPSエンドポイントURL
- headers: 認証用HTTPヘッダー(オブジェクト)
- oauth: リモートサーバー用の任意の OAuth 上書き設定(オブジェクト)。対応フィールド:
- scopes: 要求する OAuth スコープ(配列)
- clientId: OAuth クライアント ID
- clientSecret: OAuth クライアントシークレット
- callbackPort: OAuth コールバックに使用するローカルポート
プロジェクトレベルの .factory/mcp.json はリポジトリにコミットされます。headers の認証トークン(例:Authorization)、oauth.clientSecret、API キーなどのシークレットは決してプロジェクト設定に入れないでください。これらはユーザーレベル設定(~/.factory/mcp.json)に置くか、環境変数で渡し、OAuth トークンには Droid の keyring を利用してください。
mcp.jsonの例:
{
"mcpServers": {
"linear": {
"type": "http",
"url": "https://mcp.linear.app/mcp",
"disabled": false
},
"example-sse": {
"type": "sse",
"url": "https://mcp.example.com/sse",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
},
"disabled": false
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"],
"disabled": false
}
}
}
Droidは設定ファイルの変更時に自動的にリロードされるため、サーバーを追加した後すぐに利用可能になります。
変数展開
Droid は mcp.json の読み込み時に、${VAR} と ${VAR:-default} の参照を現在のシェル環境に対して展開します。これにより、シークレットをファイル本体に書かずに、シークレットマネージャー、.env ローダー、またはシェルプロファイルから読み込めます。
変数展開に対応している場所:
- stdio サーバーの
command と args
- stdio サーバーの
env の値
- http サーバーの
url
- http サーバーの
headers の値
例 — API キーを環境変数から読み込む:
{
"mcpServers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "${CONTEXT7_API_KEY}"
},
"disabled": false
},
"airtable": {
"type": "stdio",
"command": "npx",
"args": ["-y", "airtable-mcp-server"],
"env": {
"AIRTABLE_API_KEY": "${AIRTABLE_API_KEY}"
}
}
}
}
参照した変数が未設定で、かつデフォルト値も指定していない場合、droid はプレースホルダーをそのまま残し、次回そのサーバーを起動するときに警告を表示します。安全なデフォルト値を指定するには ${VAR:-fallback} を使ってください。
生の mcp.json ファイルが展開後の値で書き換えられることはありません。展開は読み込み時にメモリ上でのみ行われるため、シークレットはディスクやバージョン管理に残りません。
ツールごとのフィルタリング
サーバーは多数のツールを公開できますが、すべてを毎回のセッションに読み込む必要はありません。enabledTools と disabledTools を使うと、mcp.json でツールの公開範囲を永続的に絞り込めます。これは droid exec で使える --enabled-tools / --disabled-tools フラグに対応しています。
disabledTools: ブロックリスト — サーバーが報告したツールのうち、列挙した名前以外を読み込みます。
enabledTools: 許可リスト — 列挙したツールのみを読み込みます。
- 両方を設定した場合は
enabledTools が優先され、disabledTools は無視されます。
- フィルタで除外されたツールはモデルに登録されないため、コンテキストトークンを消費しません。
例 — ノイズの多いツールをブロックリスト化する:
{
"mcpServers": {
"my-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@some/mcp-server"],
"disabledTools": ["tool_i_dont_need", "another_unused_tool"]
}
}
}
例 — 使うツールだけを許可リスト化する:
{
"mcpServers": {
"another-server": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"enabledTools": ["only_tool_i_want", "and_this_one"]
}
}
}
droid 内で /mcp を実行すると、サーバーが公開しているツールの完全な一覧を確認できます。その正確なツール名を enabledTools または disabledTools にコピーしてください。
MCP 呼び出しタイムアウト
デフォルトでは、droid はすべての MCP ツール呼び出しにグローバルタイムアウトを適用します。長時間実行されるツール(大規模なデータエクスポート、ブラウザー自動化、モデル連携サーバーなど)はこの既定値を超え、タイムアウトエラーになる場合があります。
サーバーごとに timeoutMs でタイムアウトを上書きできます:
{
"mcpServers": {
"slow-server": {
"type": "stdio",
"command": "my-long-running-server",
"timeoutMs": 120000
}
}
}
settings.json の mcp.callTimeoutMs 設定でグローバル既定値を設定することもできます:
{
"mcp": {
"callTimeoutMs": 60000
}
}
優先順位(高い順):
mcp.json のサーバー単位 timeoutMs
settings.json のグローバル mcp.callTimeoutMs
- 組み込みのデフォルト値
タイムアウトを長くしても、droid が応答を待つ時間が変わるだけで、MCP サーバー自体やその上流 API が強制するタイムアウトが延長されるわけではありません。
Droid ごとのサーバー選択
カスタム Droid は、frontmatter の mcpServers フィールドを使って、使用を許可する設定済み MCP サーバーを選択できます。これにより、セッション内のすべてのサーバーを継承する代わりに、サブエージェントを特定のサーバー(例:mcpServers: ["linear", "github"])に限定できます。さらに細かく制御したい場合は、droid の tools リストに登録済みの正確な MCP ツールIDを指定できます。詳細は MCP サーバーの選択 を参照してください。
Enterprise MCP ポリシー
組織は、組織管理設定の mcpPolicy 設定を通じて、許可される MCP サーバーを集中的に制御できます。これにより、管理者は組織レベルで MCP アクセスを制限し、ユーザーが検証済みのサーバーにのみ接続できるようにします。
| フィールド | 型 | 説明 |
|---|
enabled | boolean | ポリシー適用が有効かどうか。適用は enabled が true のときだけ行われます。enabled がない、または false の場合、ポリシーは適用されず、設定済みの MCP サーバーが許可されます。 |
allowlist | string[] | 許可されるサーバーマッチャーのリスト。ポリシーが有効な場合にのみ適用されます。各エントリは、リモート HTTP/SSE サーバーでは URL のホスト名に、stdio サーバーではコマンドと引数に一致します。設定されたサーバー名には一致しません。ポリシーが有効で allowlist が空または未設定の場合、すべてのサーバーがブロックされます。 |
組織管理設定の例:
{
"mcpPolicy": {
"enabled": true,
"allowlist": ["mcp.linear.app", "mcp.sentry.dev", "npx"]
}
}
mcpPolicy はエンタープライズ/組織レベルの設定で、管理設定を通じて適用されます。個々のユーザーが上書きすることはできません。ポリシーで許可されないサーバーは mcp.json に残り、設定にも読み込まれたままですが、実行・接続の対象から除外され、/mcp マネージャーでも利用可能としては表示されません。
MCP 自律性 URL オーバーライド
管理者は、組織管理設定 mcpAutonomyUrlOverrides を使って、リモート MCP サーバーの URL ごとに既定のリスクレベルを割り当てられます。このリスクレベルは 自律レベル と比較され、一致したサーバーのツールを Droid が実行する前に、どの程度確認を求めるかを制御します。
各ルールは、URL パターンをリスクレベルに対応付けます。
| フィールド | 型 | 説明 |
|---|
urlPattern | string | サーバーの URL に対して照合する glob パターン(picomatch 構文)。 |
defaultLevel | "low" | "medium" | "high" | 一致したサーバーのツールに適用するリスクレベル。ユーザーの自律レベルと比較して、自動実行するか確認するかを決定します。 |
組織管理設定の例:
{
"mcpAutonomyUrlOverrides": [
{ "urlPattern": "https://mcp.internal.example.com/**", "defaultLevel": "low" },
{ "urlPattern": "https://*.partner.example.com/**", "defaultLevel": "medium" },
{ "urlPattern": "https://**", "defaultLevel": "high" }
]
}
マッチングと優先順位
- リモートサーバーのみ。 ルールが一致するのは URL を持つリモートサーバー(
http と sse トランスポート)のみで、ローカルの stdio サーバーには影響しません。
- 最初に一致したものが優先。 ルールは順番に評価されるため、より具体的なものを先に記述してください。
- 安全性の下限。 ルールはツールのリスク 分類 を設定するものであり、プロンプトを絶対的に決めるものではありません。
high に分類されたツールでも、通常の 自律レベル との比較に従います(別の安全チェックが介入しない限り、High 自律では追加確認なしで実行されます)。この下限は一方向で、low や medium でも読み取り専用でないツール(破壊的なもの、または安全性メタデータがないもの)を high 未満に下げることはできません。つまり、読み取り専用ツールの確認は緩和できますが、破壊的なツールを自動承認することはできません。
- フォールバック。 一致するルールがないサーバーには、Droid 組み込みのツールリスク分類(読み取り専用ヒントと厳選されたデフォルト)が使われます。
mcpAutonomyUrlOverrides は管理者が管理する(MDM)設定です。組織管理設定 を通じて配布され、ユーザーが上書きしたり弱めたりすることはできません。