MCPとは?Model Context Protocolの基本を理解する
MCPの定義 — AIとツールをつなぐ「共通言語」
MCP(Model Context Protocol)は、AIモデルが外部のツールやデータソースにアクセスするための標準プロトコルです。Anthropicが2024年11月にオープンソースとして公開しました。
わかりやすく例えると、MCPは「AIツールのUSB規格」のようなものです。USBがあれば、どのメーカーのパソコンでもマウスやキーボードが使えるように、MCPがあれば、どのAIクライアント(Claude Code、Cursor、VS Code等)からでも、同じMCPサーバーに接続できます。
MCPが登場する前は、AIツールごとに独自のプラグインやAPI連携の仕組みが必要でした。たとえば、SlackとAIを連携させたい場合、Claude Code用、Cursor用、VS Code用とそれぞれ別の実装が必要だったのです。MCPはこの問題を解決し、一度作ったMCPサーバーをどのAIクライアントからでも使えるようにしました。
なぜMCPが急速に普及しているのか
MCPの普及速度は驚異的です。以下のデータがそれを物語っています。
| 指標 | 2024年12月(公開直後) | 2026年4月(現在) |
|---|
| GitHub上のMCPリポジトリ数 | 約200個 | 15,000個以上 |
| npmのMCPパッケージDL数/月 | 約5万 | 200万以上 |
| 対応AIクライアント数 | 3(Claude Desktop, Zed, Replit) | 20以上(Claude Code, Cursor, VS Code, JetBrains等) |
| 公式MCPサーバー数 | 5個 | 50個以上 |
この急成長の背景には、3つの要因があります。
- AIコーディングツールの爆発的普及:JetBrainsの調査で開発者の90%がAIを業務使用
- Anthropic・OpenAI・Googleの相次ぐMCP対応:2025年後半にOpenAI、2026年初頭にGoogleもMCP対応を発表
- 開発者コミュニティの活性化:「MCPサーバーを作って公開する」文化がOSSコミュニティで定着
MCPで何ができるのか — 3つのプリミティブ
MCPサーバーは、AIクライアントに対して以下の3つの機能(プリミティブ)を提供できます。
| プリミティブ | 説明 | 具体例 |
|---|
| Tools(ツール) | AIが実行できるアクション | Slackにメッセージ送信、DBにクエリ実行、API呼び出し |
| Resources(リソース) | AIが読み取れるデータソース | ファイルの内容、DBのレコード、APIのレスポンス |
| Prompts(プロンプト) | AIに提供する定型のプロンプトテンプレート | コードレビュープロンプト、データ分析テンプレート |
この中で最も使われているのがTools(ツール)です。ShiftBの受講生でMCPサーバーを作った23名のうち、全員がToolsを実装し、Resourcesを実装したのは8名、Promptsは3名でした。まずはToolsから始めるのが実践的です。

MCPサーバーの仕組み — クライアント・サーバー・ツールの関係
MCPアーキテクチャの全体像
MCPはクライアント-サーバーモデルで動作します。登場人物は3つです。
- MCPホスト:Claude Code、Cursorなどのアプリケーション。ユーザーが直接操作する
- MCPクライアント:ホストの内部で動作し、MCPサーバーとの通信を管理する
- MCPサーバー:外部ツールやデータソースへのアクセスを提供するプログラム
Claude Codeを例にすると、あなたが「Slackの#generalチャンネルに投稿して」と指示した場合、以下のように処理されます。
- Claude Code(ホスト)がユーザーの指示をAIモデルに送信
- AIモデルが「Slack MCPサーバーのsend_messageツールを使う」と判断
- MCPクライアントがSlack MCPサーバーにリクエストを送信
- MCPサーバーがSlack APIを呼び出してメッセージを投稿
- 結果がMCPクライアント → AIモデル → ユーザーに返される
通信方式 — stdioとSSE
MCPクライアントとサーバー間の通信には、2つの方式があります。
| 通信方式 | 仕組み | ユースケース | メリット |
|---|
| stdio | 標準入出力を使ったプロセス間通信 | ローカルのMCPサーバー | セットアップが簡単、高速 |
| Streamable HTTP | HTTP + Server-Sent Eventsによる通信 | リモートのMCPサーバー | ネットワーク越しに使える、複数クライアント対応 |
個人開発で最初に作るならstdio方式がおすすめです。ローカルで動かすだけなら設定ファイルにコマンドを書くだけで接続できます。チームで共有したり、クラウドにデプロイしたい場合はStreamable HTTPを使います。
JSON-RPCメッセージの仕組み
MCPの内部通信にはJSON-RPC 2.0というプロトコルが使われています。これはWebの世界で広く使われている標準的なRPC(Remote Procedure Call)規格で、すべてのメッセージがJSONフォーマットです。
たとえば、AIがMCPサーバーの「データベース検索」ツールを呼び出すとき、実際にやり取りされるメッセージはこのようになります。
// クライアント → サーバー(リクエスト)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_users",
"arguments": { "query": "田中" }
}
}
// サーバー → クライアント(レスポンス)
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [{
"type": "text",
"text": "3件のユーザーが見つかりました: ..."
}]
}
}
この仕組みを知っておくとデバッグの際に役立ちますが、実際にはMCP SDKがすべて抽象化してくれるので、開発者がJSON-RPCを直接書くことはありません。
AI時代のアプリ開発コース
ShiftBのAIシフトコースは、Claude Codeで本格的なWebアプリケーションを作りながらAI駆動開発を身につけるコースです。ただ作って終わりではなく、コードを読め、セキュリティに責任を持って提案でき、要件定義などの上流工程まで担えるところまで現役エンジニアがサポートします。
AIシフトコースを見る →MCPサーバーの開発環境を準備する
必要なツール・バージョン(所要時間:約10分)
MCPサーバーの開発に必要なものは以下の通りです。
| ツール | 推奨バージョン | 用途 |
|---|
| Node.js | v20以上 | ランタイム |
| TypeScript | 5.0以上 | 型安全な開発 |
| Claude Code または Cursor | 最新版 | MCPクライアント(動作確認用) |
| MCP Inspector(任意) | 最新版 | MCPサーバーのデバッグツール |
プロジェクトのセットアップ手順
ターミナルを開いて、以下のコマンドを順番に実行してください。
# 1. プロジェクトディレクトリを作成
mkdir my-first-mcp-server
cd my-first-mcp-server
# 2. npm初期化
npm init -y
# 3. 必要なパッケージをインストール
npm install @modelcontextprotocol/sdk zod
npm install -D typescript @types/node
# 4. TypeScript設定ファイルを作成
npx tsc --init
tsconfig.jsonの推奨設定
tsconfig.jsonを以下の内容に書き換えます。MCPサーバーではESModulesを使うのが推奨されています。
{
"compilerOptions": {
"target": "ES2022",
"module": "Node16",
"moduleResolution": "Node16",
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src/**/*"]
}
また、package.jsonに以下を追加してESModulesを有効化します。
{
"type": "module",
"scripts": {
"build": "tsc",
"start": "node dist/index.js"
}
}
MCP Inspectorの導入(任意だが強く推奨)
MCP Inspectorは、MCPサーバーの動作確認・デバッグ用のWebインターフェースです。ブラウザ上でツールの実行やレスポンスの確認ができるため、開発効率が大幅に上がります。
# MCP Inspectorを起動(グローバルインストール不要)
npx @modelcontextprotocol/inspector node dist/index.js
実行するとhttp://localhost:5173にブラウザでアクセスでき、MCPサーバーのツール一覧の確認、ツールの手動実行、レスポンスの検証が可能です。ShiftBの受講生にも必ずInspectorを使うことを推奨しています。
実践:TypeScriptでMCPサーバーを作ってみよう
Step 1:最小構成のMCPサーバーを作る(所要時間:5分)
まずは「Hello, MCP!」と返すだけの最小構成のMCPサーバーを作ります。src/index.tsを作成してください。
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
// MCPサーバーのインスタンスを作成
const server = new McpServer({
name: "my-first-mcp-server",
version: "1.0.0",
});
// ツールを定義
server.tool(
"hello", // ツール名
"挨拶を返すツール", // 説明(AIがツールを選ぶ判断材料になる)
{
name: z.string().describe("挨拶する相手の名前"),
},
async ({ name }) => ({
content: [{ type: "text", text: `こんにちは、${name}さん!MCPサーバーからの挨拶です。` }],
})
);
// サーバーを起動
const transport = new StdioServerTransport();
await server.connect(transport);
たったこれだけです。30行未満のコードでMCPサーバーが完成しました。ポイントは以下の3つです。
McpServer:MCPサーバーのコアクラス。名前とバージョンを指定server.tool():ツールを定義。名前・説明・パラメータスキーマ・ハンドラーを渡すStdioServerTransport:stdio方式で通信するトランスポート
Step 2:ビルドして動作確認する(所要時間:3分)
# ビルド
npm run build
# MCP Inspectorで動作確認
npx @modelcontextprotocol/inspector node dist/index.js
ブラウザでhttp://localhost:5173を開き、左側のツール一覧に「hello」が表示されていれば成功です。nameパラメータに名前を入力して実行すると、挨拶メッセージが返ってきます。
Step 3:Claude Codeに接続する(所要時間:5分)
動作確認ができたら、Claude Codeに接続してみましょう。Claude Codeの設定ファイルにMCPサーバーの情報を追加します。
# Claude Codeの設定を開く
claude mcp add my-first-mcp -- node /absolute/path/to/dist/index.js
これでClaude Codeを起動すると、AIがhelloツールを使えるようになります。「太郎さんに挨拶して」と指示すれば、MCPサーバーが呼び出されて「こんにちは、太郎さん!」と返ってきます。
Step 4:実用的なツールを追加する — Todoリスト管理サーバー(所要時間:15分)
基本がわかったところで、もう少し実用的なMCPサーバーを作ります。インメモリのTodoリストを管理するサーバーです。
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "todo-mcp-server",
version: "1.0.0",
});
// Todoデータの型定義
interface Todo {
id: number;
title: string;
completed: boolean;
createdAt: string;
}
// インメモリストレージ
let todos: Todo[] = [];
let nextId = 1;
// Todoを追加するツール
server.tool(
"add_todo",
"新しいTodoを追加する",
{ title: z.string().describe("Todoのタイトル") },
async ({ title }) => {
const todo: Todo = {
id: nextId++,
title,
completed: false,
createdAt: new Date().toISOString(),
};
todos.push(todo);
return {
content: [{ type: "text", text: `Todo #${todo.id} "${title}" を追加しました。` }],
};
}
);
// Todo一覧を取得するツール
server.tool(
"list_todos",
"Todoの一覧を取得する",
{},
async () => {
if (todos.length === 0) {
return { content: [{ type: "text", text: "Todoはまだありません。" }] };
}
const list = todos
.map((t) => `[${t.completed ? "✓" : " "}] #${t.id} ${t.title}`)
.join("\n");
return { content: [{ type: "text", text: list }] };
}
);
// Todoを完了にするツール
server.tool(
"complete_todo",
"指定したTodoを完了にする",
{ id: z.number().describe("完了にするTodoのID") },
async ({ id }) => {
const todo = todos.find((t) => t.id === id);
if (!todo) {
return { content: [{ type: "text", text: `Todo #${id} は見つかりません。` }] };
}
todo.completed = true;
return {
content: [{ type: "text", text: `Todo #${id} "${todo.title}" を完了にしました。` }],
};
}
);
const transport = new StdioServerTransport();
await server.connect(transport);
このサーバーをClaude Codeに接続すると、自然言語でTodo管理ができます。
- 「記事を書くタスクを追加して」→
add_todoが呼ばれる - 「今のTodo一覧を見せて」→
list_todosが呼ばれる - 「1番のタスクを完了にして」→
complete_todoが呼ばれる
良い例・悪い例 — ツール定義のポイント
MCPサーバーの品質は、ツールの説明(description)の書き方で大きく変わります。AIがどのツールをいつ使うかは、この説明文を見て判断しているからです。
| 項目 | 悪い例 | 良い例 |
|---|
| ツール名 | func1 | search_users |
| 説明文 | 「ユーザー関連」 | 「名前またはメールアドレスでユーザーを検索する。最大20件を返す」 |
| パラメータ名 | q | query(.describe("検索キーワード")付き) |
| エラーハンドリング | 例外をそのまま投げる | ユーザーに伝わるエラーメッセージを返す |
ShiftBの受講生のMCPサーバーをレビューしていると、ツール説明が雑だとAIが間違ったツールを選ぶケースが頻発します。「このツールは何をするか」「いつ使うべきか」「何を返すか」を明確に書くのがコツです。

AI時代のアプリ開発コース
ShiftBのAIシフトコースは、Claude Codeで本格的なWebアプリケーションを作りながらAI駆動開発を身につけるコースです。ただ作って終わりではなく、コードを読め、セキュリティに責任を持って提案でき、要件定義などの上流工程まで担えるところまで現役エンジニアがサポートします。
AIシフトコースを見る →MCPサーバーの実践ユースケース7選
ここからは、個人開発者が実際に役立つMCPサーバーのユースケースを7つ紹介します。すべて僕がShiftBの運営や自社プロダクトで実際に使っているものです。
1. データベース操作サーバー(難易度:★★☆)
PostgreSQLやSupabaseに接続して、AIから直接データを検索・更新できるMCPサーバーです。個人開発では最も実用性が高いユースケースと言えます。
- 「先月の新規ユーザー数を教えて」→ SQLクエリを実行して結果を返す
- 「ID:123のユーザーのプランをProに変更して」→ UPDATEクエリを実行
- 「直近1週間のアクティブユーザーの一覧をCSVで出力して」→ クエリ + 整形
ShiftBでは、受講生の学習進捗データをSupabaseに保存しており、MCPサーバー経由でClaude Codeから直接データを確認しています。管理画面を開かなくても自然言語でデータ分析ができるのは、運営効率を劇的に上げてくれます。
2. Slack/Discord連携サーバー(難易度:★☆☆)
チャットツールのAPIに接続して、メッセージの送受信やチャンネル管理をAIから行えるようにします。
- チャンネルへのメッセージ投稿
- スレッドの内容を読み取って要約
- 特定のキーワードを含むメッセージの検索
3. Google API統合サーバー(難易度:★★☆)
Google Calendar、Gmail、Google Drive、Google Sheetsなどのサービスと連携するMCPサーバーです。
- 「今日の予定を教えて」→ Google Calendarから取得
- 「未読メールを5件要約して」→ Gmailから取得して要約
- 「売上データのスプレッドシートに今月の数字を追加して」→ Sheets API
4. 外部API連携サーバー(難易度:★★☆)
Stripe(決済)、Notion(ドキュメント)、GitHub(リポジトリ管理)など、個人開発でよく使うSaaSのAPIをMCP経由で操作できるようにします。僕の場合、freee会計APIのMCPサーバーを作って、Claude Codeから経費精算や請求書の確認を行っています。
5. Web スクレイピングサーバー(難易度:★★★)
指定したURLの内容を取得し、AIが読める形で整形するMCPサーバーです。競合調査、価格監視、ニュース収集などに使えます。
- 「このURLの記事を要約して」→ ページ内容を取得して要約
- 「競合サービスの料金ページを比較して」→ 複数ページを取得して比較表を作成
6. ファイル変換・処理サーバー(難易度:★★☆)
画像のリサイズ、PDFの生成、CSVの整形など、ファイル処理をMCPサーバーで行うパターンです。
- 「この画像を800x600にリサイズして」→ Sharp等で画像処理
- 「このデータからPDFレポートを生成して」→ PDFKit等で生成
7. 独自ナレッジベースサーバー(難易度:★★★)
社内ドキュメントや自分のメモをベクトルDBに格納し、AIから検索できるようにするMCPサーバーです。いわゆるRAG(Retrieval-Augmented Generation)をMCPで実現します。
- 「前回のプロジェクトで使ったデプロイ手順を教えて」→ ナレッジベースから検索
- 「この問題の解決法を過去のメモから探して」→ 類似ドキュメントを検索
| ユースケース | 難易度 | 開発時間目安 | 個人開発での実用度 |
|---|
| データベース操作 | ★★☆ | 2〜4時間 | ★★★ |
| Slack/Discord連携 | ★☆☆ | 1〜2時間 | ★★☆ |
| Google API統合 | ★★☆ | 3〜5時間 | ★★★ |
| 外部API連携 | ★★☆ | 2〜4時間 | ★★★ |
| Webスクレイピング | ★★★ | 4〜6時間 | ★★☆ |
| ファイル変換・処理 | ★★☆ | 2〜4時間 | ★★☆ |
| 独自ナレッジベース | ★★★ | 6〜10時間 | ★★★ |
MCPサーバー開発のベストプラクティスと注意点
セキュリティ — MCPサーバーの最大の落とし穴
MCPサーバーは外部サービスへのアクセス権を持つため、セキュリティは最も重要な考慮事項です。ShiftBの受講生のMCPサーバーをレビューする中で、以下の問題を何度も発見しています。
| よくあるセキュリティ問題 | リスク | 対策 |
|---|
| APIキーをコードにハードコード | GitHubにプッシュすると漏洩 | 環境変数で管理する |
| DBの全権限を付与 | AIが意図しないDELETEを実行 | READ ONLYの接続と書き込み用を分離 |
| 入力のバリデーション不足 | SQLインジェクション等 | zodでスキーマを厳密に定義 |
| エラーメッセージに内部情報を含む | システム構成が漏洩 | ユーザー向けメッセージに変換 |
特にデータベース操作のMCPサーバーでは、「読み取り専用」と「書き込み可能」のツールを明確に分離し、書き込み操作には確認メッセージを返す設計にすることを強く推奨します。
// 良い例:破壊的操作は確認を促す設計
server.tool(
"delete_user",
"ユーザーを削除する(この操作は取り消せません)",
{
userId: z.number().describe("削除するユーザーのID"),
confirm: z.boolean().describe("本当に削除する場合はtrue"),
},
async ({ userId, confirm }) => {
if (!confirm) {
return {
content: [{
type: "text",
text: "削除を実行するには confirm: true を指定してください。"
}]
};
}
// 削除処理...
}
);
パフォーマンス — レスポンス時間を意識する
MCPサーバーのレスポンスが遅いと、AIとの対話全体がもっさりします。目安として、各ツールの応答時間を3秒以内に抑えることを推奨します。
- 外部APIの呼び出しにはタイムアウトを設定する(デフォルト10秒推奨)
- 大量データを返す場合はページネーションを実装する
- 頻繁に変わらないデータはキャッシュする
エラーハンドリング — AIに伝わるメッセージを返す
MCPサーバーでエラーが発生した場合、例外をそのまま投げるのではなく、AIが理解できるメッセージを返すのが重要です。
// 悪い例:技術的なエラーがそのまま返る
server.tool("fetch_data", "...", {}, async () => {
const res = await fetch("https://api.example.com/data");
const data = await res.json(); // エラー時に cryptic なメッセージ
return { content: [{ type: "text", text: JSON.stringify(data) }] };
});
// 良い例:AIが理解しやすいメッセージに変換
server.tool("fetch_data", "...", {}, async () => {
try {
const res = await fetch("https://api.example.com/data");
if (!res.ok) {
return {
content: [{
type: "text",
text: `APIエラー: ステータスコード ${res.status}。しばらく待ってから再試行してください。`
}],
isError: true,
};
}
const data = await res.json();
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
} catch (error) {
return {
content: [{
type: "text",
text: "外部APIに接続できませんでした。ネットワーク接続を確認してください。"
}],
isError: true,
};
}
});
テスト戦略 — MCPサーバーのテスト方法
MCPサーバーのテストは3段階で行います。
- ユニットテスト:ツールのハンドラー関数を直接テスト。外部APIはモックする
- MCP Inspectorでの手動テスト:実際のMCPプロトコル越しにツールを実行
- AIクライアントでの結合テスト:Claude CodeやCursorから実際に使ってみる
特にステップ3は重要です。AIがツールの説明文をどう解釈して、どのタイミングでツールを呼ぶかは、実際に試さないとわかりません。ShiftBの受講生には「10パターン以上の自然言語指示でテストすること」を推奨しています。
個人開発者がMCPを活用するワークフロー
MCPで個人開発の「運営効率」が変わる
MCPサーバーが個人開発者にとって強力なのは、開発だけでなく「運営」のワークフロー全体を効率化できる点です。個人開発者は開発・運用・マーケティング・サポートをすべて一人でこなす必要がありますが、MCPを活用すれば多くの作業をAI経由で統合的に管理できます。
僕(ぶべ)のMCP活用ワークフロー
参考までに、僕がShiftBの運営と自社プロダクトの開発で実際に使っているMCPサーバーの構成を紹介します。
| 用途 | MCPサーバー | 主な操作 | 節約時間/週 |
|---|
| コミュニケーション | Slack MCP | メッセージ送信、スレッド要約 | 約2時間 |
| スケジュール | Google Calendar MCP | 予定確認、イベント作成 | 約30分 |
| 会計 | freee MCP | 経費登録、請求書確認 | 約1時間 |
| コンテンツ管理 | Notion MCP | 記事管理、タスク更新 | 約1時間 |
| データ分析 | DB MCP(Supabase) | 受講生データ分析、KPI確認 | 約2時間 |
| SNS投稿 | ブラウザ操作 MCP | 投稿作成、スケジュール設定 | 約1.5時間 |
合計で週あたり約8時間の作業時間を削減できています。月に換算すると約32時間——つまり丸4日分の作業がMCPによって効率化されています。
MCPサーバーの「育て方」— 段階的に拡張する
最初から全部作ろうとしないでください。僕のおすすめは以下の順序で段階的にMCPサーバーを増やしていくことです。
- Phase 1(1週目):既存の公開MCPサーバーを使う
npm等で公開されているMCPサーバーをまず使ってみる。操作感を掴む - Phase 2(2〜3週目):最も頻繁にやる作業をMCP化
自分の日常業務で最もCLI/GUI操作が多い作業を1つ選んでMCPサーバーにする - Phase 3(1ヶ月〜):プロダクトのデータベースを接続
自社サービスのDBに読み取り専用で接続し、AIからデータ分析できるようにする - Phase 4(2ヶ月〜):ワークフロー全体をMCPで統合
複数のMCPサーバーを組み合わせ、AIが横断的に作業できる環境を構築する
公開MCPサーバーの活用 — 車輪の再発明をしない
すべてを自分で作る必要はありません。2026年4月現在、以下のような高品質な公開MCPサーバーが利用可能です。
- @modelcontextprotocol/server-filesystem:ファイルシステム操作
- @modelcontextprotocol/server-github:GitHub API操作
- @modelcontextprotocol/server-postgres:PostgreSQL操作
- @modelcontextprotocol/server-slack:Slack API操作
- @anthropic/mcp-server-fetch:Web ページの取得
公開サーバーで足りない部分だけを自作する、という戦略が効率的です。ShiftBの受講生でMCPを活用している23名中18名が、「最初は公開サーバーから始めた」と回答しています。

よくある質問(FAQ)
Q1. MCPサーバーを作るのにプログラミングの知識は必要ですか?
はい、基本的なTypeScript(またはPython)の知識が必要です。ただし、高度なプログラミングスキルは不要で、関数の定義・async/await・JSONの操作ができればMCPサーバーは作れます。ShiftBの受講生でも、プログラミング歴3ヶ月程度の方がMCPサーバーの開発に成功しています。また、Claude Code自体にMCPサーバーのコードを書いてもらうことも可能です。
Q2. MCPサーバーとAPIの違いは何ですか?
MCPサーバーはAIクライアント専用のAPIラッパーと考えるとわかりやすいです。通常のREST APIは人間(またはプログラム)が呼び出しますが、MCPサーバーはAIが判断して自動的に呼び出す点が異なります。MCPサーバーの中身は、多くの場合、既存のAPIを呼び出すコードです。つまりMCPは「AIと既存のAPIをつなぐ翻訳レイヤー」です。
Q3. MCPサーバーのホスティングはどうすればいいですか?
stdio方式であればホスティング不要で、ローカルマシン上で動作します。リモートで使いたい場合は、Streamable HTTP方式で実装し、Cloudflare Workers、AWS Lambda、またはVPSにデプロイします。個人開発なら、まずはローカルのstdio方式で十分です。
Q4. MCPサーバーのセキュリティリスクはどの程度ですか?
MCPサーバーが持つ権限次第で、リスクは大きく異なります。読み取り専用のサーバー(データの参照のみ)であればリスクは低いですが、書き込み・削除権限を持つサーバーの場合は、AIの誤判断によるデータ損失のリスクがあります。重要なのは「最小権限の原則」——必要最小限の権限だけを付与することです。
Q5. TypeScript以外の言語でもMCPサーバーは作れますか?
はい。公式SDKはTypeScript/JavaScript、Python、Java、C#、Go、Rustで提供されています。Pythonは特にデータサイエンス系のMCPサーバーで人気があります。ただし、TypeScriptのSDKが最も充実しており、ドキュメントやサンプルコードも豊富なので、迷ったらTypeScriptを選んでください。
Q6. MCPは将来廃れませんか?他のプロトコルに置き換わる可能性は?
2026年4月時点で、OpenAI、Google、Microsoftを含む主要AIベンダーがすべてMCPをサポートしており、事実上の業界標準となっています。APIの世界でREST APIが長年標準であり続けたように、MCPもAIツール連携の標準として定着する可能性が高いです。仮にプロトコルが進化しても、MCPの「AIと外部ツールを標準的に接続する」というコンセプト自体は変わらないでしょう。
Q7. MCPサーバーの開発にどれくらいのコストがかかりますか?
MCP SDK自体は完全無料・オープンソースです。開発に必要なのはNode.js等のランタイムだけで、追加のライセンス費用はかかりません。コストが発生するのは、接続先の外部APIの利用料(Slack API、Google API等)です。ただし、多くのAPIには無料枠があり、個人開発レベルであれば月$0〜$20程度で運用できます。
まとめ
MCPサーバーは、AIツールの可能性を無限に拡張するための仕組みです。プロトコルの概念は複雑に聞こえるかもしれませんが、実際に作ってみると「ただの関数を定義して公開するだけ」であることがわかります。
この記事のポイントを整理します。
- MCPは「AIツールのUSB規格」——一度作れば、Claude Code・Cursor・VS CodeなどどのAIクライアントからも使える
- MCP SDKを使えば、30行未満のコードでMCPサーバーが作れる
- 個人開発者にとって最も実用的なユースケースはDB操作・API連携・ナレッジベース
- セキュリティでは「最小権限の原則」を徹底する
- まずは公開MCPサーバーを使うところから始め、段階的に自作する
- MCPを活用すれば、個人開発の運営作業を週8時間以上削減できる
ShiftBでは、Claude Code・Cursorを使ったAI駆動開発の中で、MCPサーバーの構築も実践的にサポートしています。「自分のプロダクトにMCPを組み込みたい」「どのユースケースから始めればいいかわからない」という方は、まず無料相談会で現在の開発環境をお聞かせください。あなたに最適なMCP活用プランを一緒に設計します。