MCP サーバーの Hosted と Self-hosted の違い
概要
MCP(Model Context Protocol)サーバーには「Hosted」と「Self-hosted」の2種類がある。Notion を例に整理する。
Hosted MCP サーバー
サービス提供者(この場合 Notion)が自社インフラ上で運営している MCP サーバー。
AIクライアント(Claude Code など)
↓ MCP プロトコル(OAuth 2.0)
https://mcp.notion.com/mcp ← Notion が運営
↓
Notion のデータ
- 認証: OAuth 2.0(APIキー不要)
- アクセス範囲: ユーザーが見えるページ全体
- 管理コスト: なし(Notion が管理)
- Claude Code での設定:
claude mcp add --transport http notion https://mcp.notion.com/mcp
# その後 /mcp でブラウザ OAuth 認証
Self-hosted MCP サーバー
npm パッケージなどを自分のマシンやサーバーで起動する方式。
AIクライアント(Claude Code など)
↓ stdio
ローカルで動く MCP サーバー(npx @notionhq/notion-mcp-server)
↓ Notion REST API(APIキーで認証)
Notion のデータ
- 認証: Internal Integration Token(
NOTION_API_KEY) - アクセス範囲: 明示的に Integration を共有したページのみ
- 管理コスト: 自分でサーバーを管理・更新
- Claude Code での設定:
{
"mcpServers": {
"notion": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"NOTION_API_KEY": "secret_xxxx"
}
}
}
}
比較表
| Hosted | Self-hosted | |
|---|---|---|
| 誰が動かす | サービス提供者 | 自分 |
| 認証方式 | OAuth 2.0 | API キー |
| アクセス範囲 | 広い(ユーザー権限全体) | 狭い(共有したページのみ) |
| 管理コスト | なし | あり |
| セキュリティ管理 | OAuth トークン | API キーの管理が必要 |
どちらを選ぶか
- シンプルに使いたい → Hosted(OAuth でブラウザ認証するだけ)
- アクセス範囲を細かく制御したい → Self-hosted(Integration で明示的に共有)
- オフラインや社内環境 → Self-hosted
Notion の場合、Hosted MCP サーバーは https://mcp.notion.com/mcp として提供されており、Claude Code からは claude mcp add --transport http コマンドで簡単に追加できる。