MCPサーバーとは?AIツール連携の新標準を実践者が解説
MCPサーバーって何?最初に正直に言う
「MCPサーバー」という言葉、最近よく聞くようになりましたよね。AIに関わる仕事をしていると、避けて通れないトピックになってきました。
うちでも半年ほど前から本格的に使い始めて、正直「なんでもっと早く導入しなかったんだ」と思っています。それくらい開発ワークフローが変わった。
ただ、ネットで調べると技術的すぎる記事か、逆に概念だけで終わっている記事が多くて、「結局何ができるの?」という疑問が残りやすい。この記事では、実際に使っている立場から、できるだけ具体的に書いていきます。
---
MCP(Model Context Protocol)とは
まず基本から。MCPとは「Model Context Protocol」の略で、Anthropic社が2024年11月にオープンソースとして公開したプロトコル(規格)です。
一言で言うと、AIモデルと外部ツール・データを標準化された方法でつなぐための仕組みです。
プロトコルというのは「やりとりのルール」のこと。HTTPがWebブラウザとサーバーの通信ルールであるように、MCPはAIとツールをつなぐための共通ルールです。
なぜ「サーバー」という言葉が出てくるかというと、外部ツールやデータを提供する側のシステムを「MCPサーバー」と呼ぶからです。AIクライアント(Claude Desktopなど)がMCPサーバーに接続して、そこから機能を呼び出す構造になっています。
---
なぜMCPが登場したのか — AI連携の課題
MCPが登場する前、AIと外部ツールをつなぐのはどうやっていたか。
基本的には個別に専用のコードを書くしかなかったんですよね。データベースにアクセスさせたければデータベース連携のコードを書く、GitHubを操作させたければGitHub API連携を書く、という具合に。
この方式の問題点がいくつかありました。
同じような実装を何度も書く無駄。「AIにデータを読ませる」という処理は本質的に同じなのに、ツールが変わるたびに一から実装するのは非効率です。
AIモデルを切り替えたときの互換性問題。OpenAIのAPIで書いた連携コードは、Anthropic APIに変えたら書き直しになる。モデルごとに独自の連携方式があって、ベンダーロックインが発生していました。
セキュリティ設計の属人化。個別実装だと、セキュリティ上の考慮が開発者ごとにバラバラになりがちです。
MCPはこれらの課題を「共通の規格で解決しよう」という発想から生まれました。一度MCPサーバーを作れば、MCPに対応したどのAIクライアントからでも使える。逆に、MCPクライアント側も一つの実装でさまざまなMCPサーバーと連携できる。
これはちょうど、USBが登場する前は機器ごとに専用コネクターが必要だったのが、USB一本で何でも繋がるようになったのと似た話です。
---
MCPサーバーの仕組み — プロトコル・ツール・リソース
少し技術的な話になりますが、MCPの構造を理解しておくと使い方が見えてきます。
クライアントとサーバーの関係
MCPはクライアント・サーバー型のアーキテクチャです。
- MCPクライアント:AIアプリケーション側(Claude Desktop、Claude Codeなど)
- MCPサーバー:外部ツールやデータを提供する側
クライアントがサーバーに接続して「何ができますか?」と尋ね、サーバーが「こういうツールとリソースを提供できます」と返す。そのやりとりが標準化されています。
3つの主要概念
MCPには3つの重要な概念があります。
ツール(Tools):AIが呼び出せる「機能」です。「データベースにクエリを実行する」「ファイルを読み書きする」「APIを叩く」といった具体的な操作。関数みたいなものだと思えばいいです。
リソース(Resources):AIが読み取れる「データ」です。ファイル、データベースのレコード、APIのレスポンス内容など。ツールが「何かをする」なのに対して、リソースは「何かを提供する」。
プロンプト(Prompts):再利用可能なテンプレートや操作手順。ユーザーが決まったパターンで作業するときに使います。
通信の流れ
実際のやりとりはこんな感じです。
ユーザーからは「Claudeに聞いたら答えてくれた」ように見えますが、裏でMCPサーバーが実際のデータ取得を担っています。
---
具体的な活用例
「で、実際に何ができるの?」という話をします。現在、公式・コミュニティからさまざまなMCPサーバーが提供されています。
データベース接続
これが一番実務でインパクトが大きかった。
PostgreSQLやMySQLのMCPサーバーを設定すると、Claudeに「今月のユーザー登録数を週別に集計して」と話しかけるだけで、SQLを自分で書かなくてもデータが取れます。
もちろん、どのテーブルにどんなデータがあるかをClaudeが理解した上でクエリを組み立ててくれるので、スキーマを把握していないデータベースの探索にも使えます。
社内で使い始めてから「あのデータ、確認しておいて」という依頼を受けたとき、SQLをゼロから書く手間がなくなりました。地味だけど積み重なると大きい。
GitHub / ファイルシステム操作
GitHub MCPサーバーを使うと、リポジトリの操作をClaudeに指示できます。「このプルリクエストのdiffを見てコードレビューのコメントを書いて」「このissueに関連するファイルを探して」といった使い方です。
ファイルシステムのMCPサーバーは、指定したディレクトリ内のファイルをClaudeが直接読み書きできるようにします。「このフォルダのドキュメント全部読んで、内容を整理したサマリーを別ファイルに書いて」みたいな作業が一発でできる。
Web検索・ブラウザ操作
Brave SearchやSlerpのMCPサーバーを使うと、Claudeがリアルタイムでウェブ検索できるようになります。学習データのカットオフ問題を補完できます。
Playwright MCPサーバーは、ブラウザ操作をClaudeに任せられます。「このウェブサイトにログインして、この情報を取得して」みたいなRPA的な使い方です。
Slack / Notion / その他SaaS連携
Slack MCPサーバーを使うと、特定のチャンネルのメッセージを読んだり、メッセージを投稿したりをClaudeに指示できます。「昨日のdev-channelでのバグ報告をまとめて」とか。
Notion MCPサーバーは、ワークスペースのページ読み書きができます。「今月のタスクリストを読んで、進捗状況をサマリーして」という使い方が地味に便利です。
---
MCPサーバーの構築方法
既存のMCPサーバーを使うだけでなく、自分でMCPサーバーを作ることもできます。自社のシステムや独自APIをAIと繋ぎたい場合はこれが必要です。
必要なもの
MCPサーバーはPythonかTypeScriptで作れます。それぞれ公式SDKが提供されています。
# TypeScriptの場合
npm install @modelcontextprotocol/sdk
# Pythonの場合
pip install mcp
最小構成のMCPサーバー(TypeScript)
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server(
{ name: "my-mcp-server", version: "1.0.0" },
{ capabilities: { tools: {} } }
);
// ツールの定義
server.setRequestHandler("tools/list", async () => ({
tools: [
{
name: "get_data",
description: "自社システムからデータを取得します",
inputSchema: {
type: "object",
properties: {
id: { type: "string", description: "取得するデータのID" },
},
required: ["id"],
},
},
],
}));
// ツールの実装
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "get_data") {
const id = request.params.arguments?.id;
// 実際のデータ取得処理
const data = await fetchFromYourSystem(id);
return { content: [{ type: "text", text: JSON.stringify(data) }] };
}
throw new Error("Unknown tool");
});
const transport = new StdioServerTransport();
await server.connect(transport);
これが基本形です。実際には認証処理やエラーハンドリングが必要ですが、構造はこれが全てです。
自社APIをMCPサーバー化するメリット
一度MCPサーバーとして実装しておくと、Claude Desktopでもエージェントシステムでも、MCPに対応したどのツールからでも使えます。「社内システムへのAIインターフェース」として機能する。
うちのお客さんで、社内の基幹システムにMCPサーバーを被せた事例があります。それまでは「システムのデータを確認するには担当者に依頼する必要があった」のが、Claudeに話しかけるだけで確認できるようになりました。問い合わせ工数の削減効果がかなり出ています。
---
Claude DesktopやClaude CodeでのMCP活用
MCPの恩恵を一番手軽に受けられるのが、Claude DesktopとClaude Codeです。
Claude Desktopでの設定
Claude Desktopの設定ファイル(claude_desktop_config.json)にMCPサーバーの情報を書くだけで使えます。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/Documents"
]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your-token-here"
}
}
}
}
設定したら再起動するだけ。これでClaudeとの会話の中から指定したフォルダのファイルを読んだり、GitHubを操作したりができるようになります。
最初に試すならserver-filesystemがおすすめです。ローカルのドキュメントフォルダを読ませるだけで、「この契約書の要点をまとめて」みたいな使い方がすぐにできます。
Claude CodeでのMCP活用
Claude Codeはターミナルで動くAIコーディングアシスタントですが、MCPサーバーと組み合わせると特に強力です。
コーディング作業中に「このAPIの仕様をドキュメントから調べて」「データベースの現在のスキーマを確認して」「Slackのバグ報告チャンネルから今週の報告を集めて」といった指示をシームレスにできます。
うちのチームでは、Claude Codeに社内のWikiにアクセスできるMCPサーバーを繋いでいます。「この機能の実装ルールを確認して」という指示で、コーディング中にドキュメントを引っ張ってこれる。コンテキストスイッチが激減しました。
設定はclaude mcp addコマンドでできます。
# ファイルシステムMCPサーバーを追加
claude mcp add filesystem npx @modelcontextprotocol/server-filesystem /path/to/dir
# GitHub MCPサーバーを追加
claude mcp add github npx @modelcontextprotocol/server-github -e GITHUB_PERSONAL_ACCESS_TOKEN=your-token
追加したMCPサーバーの一覧はclaude mcp listで確認できます。
---
実務での導入ポイント
実際に導入してみて分かった「ここを押さえておけばよかった」という点をまとめます。
まず既存のMCPサーバーから始める
自作から入る必要はありません。Anthropicの公式リポジトリやコミュニティには、すぐ使えるMCPサーバーが豊富にあります。GitHubでmodelcontextprotocolを検索すれば大量に出てきます。
まずはFilesystemやGitHubなど、汎用的なものを試してみて、「こういう動きになるんだ」という感覚を掴んでから自作を検討するのが順番として正しい。
セキュリティに注意する
MCPサーバーはAIがシステムに直接アクセスする窓口になります。だから権限設計が重要。
「読み取りのみ」「特定ディレクトリのみ」「特定のデータベーステーブルのみ」というように、最小権限の原則を守ることが大切です。
特に本番データベースにMCPサーバーを繋ぐときは慎重に。基本的に読み取り専用にして、書き込み操作は都度確認するフローにするのが安全です。
ログを必ず取る
AIが何を操作したかのログを残しておくことが大事です。「Claudeがどのツールを呼び出して、どんな結果を得たか」を追跡できる状態にしておかないと、問題が起きたときに原因を調べられません。
チームで共有するなら設定を管理する
個人のローカル設定に留まるうちはいいですが、チームで使うならMCPサーバーの設定を共有できる仕組みを作る必要があります。
Claude Codeにはclaude mcp add --scope projectというオプションがあって、プロジェクト単位でMCPサーバーの設定を共有できます(.claude/settings.jsonに保存される)。チームで開発しているプロジェクトならこちらを使うのがおすすめです。
---
MCPエコシステムの現状と今後
MCPはまだ登場から数ヶ月のプロトコルですが、すでに広く普及が進んでいます。
主要なSaaS企業がMCP対応を発表していて、Stripe、Linear、Cloudflareなどの公式MCPサーバーがリリースされています。OpenAIもMCPを採用する方向を発表しています。つまり、Anthropic独自の規格でなく、業界標準になりつつある。
Claude以外のAIクライアントもMCPに対応し始めているので、「MCPサーバーを一度作れば、複数のAIツールから使える」という状況が加速しています。
AI連携のデファクトスタンダードとして定着する可能性が非常に高い。今のうちに仕組みを理解しておくことで、これからのAI活用において大きなアドバンテージになります。
---
まとめ
MCPサーバーについてまとめると:
- MCPはAIと外部ツール・データをつなぐための共通規格
- MCPサーバーはその規格でツールやデータを提供するシステム
- Claude Desktop・Claude Codeでは設定ファイルに書くだけですぐ使える
- 自社システムのMCPサーバー化で、AIが業務システムと直接対話できる
- 既存のMCPサーバーが豊富にあるので、まず試してみることから始めると良い
「AIに外部のデータやツールを使わせたい」という場面に出くわしたら、まずMCPを検討する時代になっています。
広島でAI開発やDX推進をお考えの方、MCPサーバーの構築や社内システムへのAI連携についてのご相談はお気軽にどうぞ。実際に手を動かしているチームが、現場感のある情報を共有します。
Written by
Swaaab編集部
広島を拠点に、AI開発・DX支援・Web制作を手がけるSwaaab株式会社の編集チーム。現場で得た知見をもとに、実践的な情報を発信しています。