MCP サーバーとは?ローカルとリモート、例とセットアップ
MCP サーバーとは?Model Context Protocol を通じて AI アプリにツールとデータを提供するプログラムです。ローカルとリモートの違い、人気の例、導入方法、安全な選び方を解説します。
MCP サーバーとは、Model Context Protocol(MCP)を通じて AI アプリケーションにツール、データ、プロンプトを公開するプログラムです。 AI アプリ(Claude、ChatGPT、Cursor、VS Code など)はサーバーに接続し、提供される機能の一覧を読み取り、モデルがそれらのツールを呼び出せるようにします。たとえば「issue を検索する」「データベースにクエリする」「スクリーンショットを撮る」といった操作です。1 つのサーバーが MCP 対応のすべてのアプリで動くため、連携は一度書くだけで済みます。
プロトコル自体が初めての方は、まず MCP とは をお読みください。このページではサーバー側に焦点を当てます。サーバーの中身、ローカルサーバーとリモートサーバーの違い、代表的な例、インストール方法、そして信頼できるサーバーの選び方です。
MCP サーバーの役割
サーバーはアダプターです。一方の側では、SaaS API、データベース、ファイルシステム、ブラウザ、デザインツールといった実際のものとやり取りします。もう一方の側では MCP を話します。MCP は JSON-RPC 2.0 ベースのプロトコルで、対応するすべてのホストが理解できます。その間でサーバーは、どの操作を提供するか、そして言語モデルが正しく使えるようにそれをどう説明するかを決めます。
具体的には、サーバーは 3 種類の プリミティブ を公開できます。
- Tools(ツール):モデルが呼び出せる関数です。それぞれ名前、説明、引数を定義する JSON Schema を持ちます。GitHub サーバーはファイルの読み取り、プルリクエストの作成、issue の検索といったツールを提供し、Postgres サーバーは SQL を実行するツールを提供します。
- Resources(リソース):URI を持つ読み取り専用のデータで、ホストがコンテキストとして添付できます。ファイル、テーブルのスキーマ、ログなどが例です。
- Prompts(プロンプト):ユーザーが意図的に起動するテンプレートで、多くの場合スラッシュコマンドとして表示されます。コードレビューのチェックリストなどです。
ほとんどのサーバーは大半がツールで構成されています。どちらをいつ使うべきかは Resources と Tools の比較ガイド で解説しています。
サーバーは自分自身についての説明も提供します。現在の仕様リビジョン(2026-07-28)では、すべてのサーバーが server/discover に応答しなければなりません。これはサポートするプロトコルバージョン、ケーパビリティ、そしてモデルにうまく使ってもらうための任意の instructions 文字列を返します。通信レベルの詳細は MCP の仕組み をご覧ください。
サーバーがしないこと
サーバーが会話全体を見ることはなく、他のサーバーと通信することもありません。何をサーバーに送るかはホスト(AI アプリ)が決め、ツールを実行する前にユーザーに確認します。この分離は MCP の中核的な 設計原則 の 1 つです。サーバーは小さく焦点を絞ったままにし、同意の管理はホストが担います。
ローカル MCP サーバーとリモート MCP サーバー
すべてのサーバーは 2 つの標準 トランスポート のどちらかを使い、その選択によってインストール、保護、共有の方法が変わります。
| ローカルサーバー(stdio) | リモートサーバー(Streamable HTTP) | |
|---|---|---|
| 実行場所 | ホストがあなたのマシン上で起動するサブプロセス | ベンダーまたは自社のインフラ上、URL でアクセス |
| 追加方法 | コマンド。例:npx -y some-package | URL。例:https://mcp.example.com/mcp |
| 認証 | 環境変数またはローカルの認証情報 | ブラウザでの OAuth サインイン、またはヘッダーのトークン |
| 向いている用途 | ファイル、ローカルの git、ブラウザ、開発用データベース、デスクトップアプリ | SaaS ツール(GitHub、Notion、Sentry、Linear)、チーム共有のサーバー |
| 更新 | 自分でパッケージを更新 | ベンダーが更新してくれる |
| 主なリスク | あなたのユーザー権限で動作する | ツールが扱うデータについてベンダーを信頼する必要がある |
目安として、使いたいものが自分のコンピューター上にある(ファイル、ローカルのブラウザ、Blender)ならローカルサーバーを使います。クラウド製品であれば、ベンダー公式のリモートサーバーを優先しましょう。長期間有効な API キーではなく OAuth が使え、自分で更新する必要もないからです。主要なホスト型エンドポイントは リモート MCP サーバーガイド に、自前でホストする方法は MCP サーバーのデプロイ にまとめています。
旧来の HTTP+SSE トランスポート(URL が /sse で終わるもの)は非推奨です。多くのクライアントはまだこれにフォールバックしますが、新しいサーバーは Streamable HTTP を使うべきです。詳しくは SSE と Streamable HTTP をご覧ください。
人気の MCP サーバーの例
MCP.so に掲載されている広く使われているサーバーを、用途別にまとめました。
| カテゴリ | サーバー | モデルにできること |
|---|---|---|
| コード | GitHub MCP Server | リポジトリの読み取り、issue と PR の管理、Actions の実行状況の確認 |
| ブラウザ | Playwright MCP | ページを開く、クリック、フォーム入力、アクセシビリティツリーの読み取り |
| ドキュメント | Context7 | 最新でバージョン固有のライブラリドキュメントを取得 |
| ファイル | Filesystem | 許可したフォルダ内でファイルの読み取り、書き込み、検索 |
| データ | Supabase、Postgres MCP Pro | スキーマの確認、クエリの実行、プロジェクトの管理 |
| デザイン | Figma (Framelink) | Figma のフレームからレイアウトとスタイルのデータをコードに取り込む |
| エラー監視 | Sentry | issue、スタックトレース、リリースの参照 |
| 業務 | Notion、Linear、Slack | ページ、チケット、メッセージの検索と更新 |
| 推論 | Sequential Thinking、Memory | 構造化されたステップごとの思考、永続的なナレッジグラフ |
| 検索 | Exa、Firecrawl | エージェント向けに作られたウェブ検索とページのスクレイピング |
Filesystem、Memory、Sequential Thinking は、公式の modelcontextprotocol/servers リポジトリでメンテナンスされているリファレンスサーバーです。さらに詳しくは おすすめ MCP サーバー を、全カタログは MCP.so ディレクトリ と カテゴリ をご覧ください。
MCP サーバーのインストール方法
手順はホストによって異なりますが、形は 2 つしかありません。
リモートサーバー に必要なのは URL だけです。Claude Code の場合(ドキュメント):
claude mcp add --transport http notion https://mcp.notion.com/mcp
その後、Claude Code 内で /mcp を実行して OAuth でサインインします。Claude Desktop や claude.ai では、リモートサーバーは Settings → Connectors からカスタムコネクタとして追加します(ガイド)。
ローカルサーバー にはコマンドが必要です。Claude Code では、-- 以降がすべて実行するコマンドになり、--env で認証情報を渡します。
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
-- npx -y airtable-mcp-server
JSON 設定ファイルを使うアプリも、ほぼ同じ形式を共有しています。以下は claude_desktop_config.json 用の公式 filesystem の例です(クイックスタート)。Cursor も同じ mcpServers の形を .cursor/mcp.json または ~/.cursor/mcp.json から読み込みます。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop"
]
}
}
}
末尾のパスが、サーバーがアクセスできる唯一のフォルダです。ファイルを編集したらアプリを再起動してください。ホスト別の手順ガイド:Claude Code、Claude Desktop、Cursor、VS Code、ChatGPT、Codex。どのクライアントにも使える汎用的な手順は MCP サーバーのセットアップ にあります。
接続できない場合
- ローカルサーバーが起動しない:まずターミナルでそのコマンドをそのまま実行してみてください。Node.js や Python が入っていない、絶対パスが間違っている、パッケージ名のタイプミスがよくある原因です。
- リモートサーバーが 401 を返す:OAuth が完了していないか、トークンの有効期限が切れています。ホストからサインインの流れをやり直してください。
- ツールが表示されない:ホストを再起動し、MCP パネルやログを確認します。サーバーを MCP Inspector に接続して、実際に何が返ってくるかを確認することもできます。
安全な MCP サーバーの選び方
サーバーは認証情報が許す範囲のものはすべて読み取れ、そのツールの説明はそのままモデルのコンテキストに入ります。仕様の セキュリティ原則 では、信頼できるサーバーから得たものでない限りツールの説明は信頼できないものとして扱うべきであり、ホストはツールを実行する前に確認しなければならないとしています。インストール前に次の点を確認しましょう。
- 発行元。 ベンダー自身(GitHub、Sentry、Notion、Supabase)が提供するサーバーか、公式リファレンスリポジトリのものを優先します。MCP.so では、名前に「Official」が付き、ソースリポジトリへのリンクがあるものを探してください。
- ソースと活動状況。 オープンソースで、最近のコミットがあり、実際の issue に回答があること。人気の名前を真似た新しいパッケージには注意してください。
- アクセス範囲。 可能なら読み取り専用のトークンやモードを使い、filesystem サーバーは 1 つのプロジェクトフォルダに限定し、データベースサーバーには必要がない限り書き込み権限のないロールを与えます。
- 認証方式。 リモートサーバーの OAuth は、設定ファイルに貼り付けた長期間有効な個人トークンより優れています。
- ツールの承認。 書き込み、送信、削除を行うものについては、ホストの確認プロンプトをオンのままにしておきます。
- バージョンの固定。 ローカルパッケージは常に
@latestを取得するのではなくバージョンを固定し、侵害されたアップデートがツールの動作を黙って変えられないようにします。
サーバーが読み込むウェブページ、issue、メールを通じたプロンプトインジェクションが、現実で最もよくあるリスクです。詳しくは MCP セキュリティのベストプラクティス で解説しています。
自分で作る必要はある?
既存のサーバーがあなたのシステムをカバーしていない場合だけです。作る場合も、公式 SDK を使えば小さく済みます。ツールが 1 つの Python サーバーは約 10 行、TypeScript でもそれほど変わりません。MCP サーバーの作り方 や Python MCP サーバーチュートリアル から始め、ホスト型サーバーの費用については MCP サーバーは無料? をご覧ください。
次のステップ
MCP.so サーバーディレクトリ を閲覧し、カテゴリ で絞り込み、接続する クライアント を選びましょう。接続後に通信上で何が起きているかを知りたい場合は、MCP の仕組み をお読みください。
よくある質問
MCP サーバーは何に使うのですか?
- MCP サーバーは、モデルが使えるツール・リソース・プロンプトを公開することで、AI アプリを GitHub、データベース、ブラウザ、ローカルファイルなど特定のシステムにつなぎます。アシスタントはテキストを生成するだけでなく、実データを読み、操作を実行できるようになります。
ローカル MCP サーバーとリモート MCP サーバーの違いは?
- ローカルサーバーは自分のマシン上でサブプロセスとして stdio で動き、通常は環境変数から認証情報を読み込みます。リモートサーバーは URL でホストされ、Streamable HTTP トランスポートを使い、多くの場合 OAuth でサインインします。
MCP サーバーのインストールは安全ですか?
- 安全性は提供元と与える権限次第です。ベンダー公式のサーバーを優先し、読み取り専用やスコープの狭い認証情報を使い、ツール実行の承認プロンプトを有効にしたまま、ローカルサーバーはパッケージのバージョンを固定しましょう。
MCP サーバーを使うのにコーディングは必要ですか?
- 必要ありません。ほとんどのサーバーは AI アプリでコマンドを 1 つ実行するか短い JSON 設定を追加するだけで、リモートサーバーなら URL を貼り付けるだけです。コードが必要なのは自分でサーバーを作る場合だけです。