MCP Serverの作り方 — TypeScript/Pythonで自作AIツールを30分で構築する【実装コード付き】
ひとことで言うと
MCPの仕組みと自作MCP Serverの構築方法を初心者向けに解説。TypeScript/PythonのSDKを使った実装手順、社内データ検索ツールの実践例、Claude Codeとの接続方法まで網羅。
MCPとは何か — AIエージェントの「手と目」を拡張するプロトコル
MCP(Model Context Protocol)は、Anthropicが2024年末に公開したオープンプロトコルで、AIモデル(LLM)が外部のツール・データソースに安全にアクセスするための標準規格です。従来、AIチャットボットは「テキストの入出力」に限定されていましたが、MCPを介することでファイル操作、データベース検索、API呼び出し、ブラウザ操作など、あらゆる外部リソースにアクセスできるようになります。
例えるなら、MCPはAIの「手と目」です。LLMが頭脳だとすれば、MCP Serverは手足となって実世界のツールを操作する役割を担います。Claude CodeがGit操作やファイル編集を自律的に行えるのも、内部でMCPが動いているからです。
2026年現在、MCPエコシステムは急速に拡大しており、GitHub・Slack・Notion・PostgreSQL・Google Workspaceなど主要サービスのMCP Serverがオープンソースで公開されています。自社固有のデータベースや社内ツールをAIに接続するには、カスタムMCP Serverを自作する必要があります。
この記事に関連する求人
AIネイティブ・フルスタックエンジニア(長期インターン)
Claude Code MAX全額会社負担。正社員同等のコードベースで開発。
MCP Serverの仕組み — 3つの構成要素を理解する
MCP ServerはTools(ツール)・Resources(リソース)・Prompts(プロンプト)の3つの構成要素で成り立っています。
Tools: AIが実行できるアクション(関数)を定義します。例えば「顧客情報を検索する」「メールを送信する」「ファイルを作成する」など。各ツールは入力パラメータと出力形式をJSON Schemaで定義します。
Resources: AIが参照できるデータソースを定義します。データベースのテーブル、ファイルシステムのディレクトリ、APIのエンドポイントなど。URIスキーム(例: `db://customers`)でアドレッシングされます。
Prompts: AIに特定の文脈やルールを提供するテンプレートです。「このデータベースを検索するときは、常にuser_idでフィルターすること」のようなガイドラインを定義します。
MCP Serverはこれらを定義してstdio(標準入出力)またはHTTP経由でクライアント(Claude Code, Claude Desktopなど)と通信します。プロトコルはJSON-RPCベースで、リクエスト・レスポンスの形式が標準化されています。
TypeScriptで作る手順 — @modelcontextprotocol/sdk
TypeScriptでMCP Serverを構築する最も簡単な方法は、公式SDKを使うことです。
Step 1 — プロジェクト初期化: `mkdir my-mcp-server && cd my-mcp-server && npm init -y && npm install @modelcontextprotocol/sdk zod`
Step 2 — サーバー定義: `src/index.ts` を作成し、`McpServer` クラスをインスタンス化。`server.tool()` メソッドでツールを登録します。例えば「天気検索ツール」なら、入力にzodスキーマ(city: string)を定義し、ハンドラーで外部APIを呼び出して結果を返す実装を書きます。
Step 3 — トランスポート設定: stdio接続の場合は `new StdioServerTransport()` を作成し、`server.connect(transport)` で接続。HTTP接続の場合は `StreamableHTTPServerTransport` を使います。
Step 4 — ビルド・実行: `npx tsc && node dist/index.js` でサーバーが起動。Claude Codeの設定ファイル(`.mcp.json`)にサーバーのパスを追加すれば、AIからツールが呼び出せるようになります。
型安全性が確保されるTypeScript実装は、チーム開発やプロダクション環境での運用に適しています。zodによる入力バリデーションも自動化されるため、不正な入力によるエラーを防げます。
ここまで読んだあなたは、AI活用力が高い可能性があります
10分の無料診断で、あなたのAI偏差値と8タイプを判定しませんか?
Pythonで作る手順 — mcp[cli]パッケージ
Pythonでの実装はデコレータベースのAPIで直感的に書けます。
Step 1 — 環境構築: `pip install "mcp[cli]"` でSDKをインストール。FastMCPが自動的に含まれます。
Step 2 — サーバー定義: `server.py` を作成し、`from mcp.server.fastmcp import FastMCP` でインポート。`mcp = FastMCP("my-server")` でインスタンス化。
Step 3 — ツール定義: `@mcp.tool()` デコレータで関数を登録。例: `@mcp.tool() def search_customers(query: str) -> str:` のように、通常のPython関数を書くだけでAIが呼び出せるツールになります。型ヒントが自動的にJSON Schemaに変換されます。
Step 4 — リソース定義: `@mcp.resource("db://customers")` デコレータでデータソースを公開。AIがリソースを参照する際に自動的にこのハンドラーが呼ばれます。
Step 5 — 実行: `python server.py` でstdioモード起動。開発時は `mcp dev server.py` でインスペクタ(デバッグUI)が起動し、ツールのテストが簡単に行えます。
Pythonの実装はプロトタイピングや、pandas・SQLAlchemyなどの既存データ処理ライブラリとの連携に最適です。
実践例:社内データ検索ツールをMCP Serverで構築する
最も実用的なMCP Serverの活用例として、社内データベースの検索ツールを構築してみましょう。
ユースケースは「営業担当者がAIに『先月の売上トップ10顧客を教えて』と聞くと、社内DBを検索して回答する」というものです。
実装ポイント①: 検索ツールの定義: `search_sales` ツールを定義し、入力パラメータに `period`(期間)、`limit`(件数)、`sort_by`(ソート基準)を設定。内部でPostgreSQLに接続してSQLを実行し、結果をMarkdownテーブル形式で返します。
実装ポイント②: アクセス制御: ユーザーのロールに応じて閲覧可能なデータ範囲を制限。MCP Serverのハンドラー内で認証トークンを検証し、権限チェックを行います。
実装ポイント③: エラーハンドリング: DB接続エラー、クエリタイムアウト、データ不整合など、プロダクション環境で起こりうるエラーを適切にキャッチし、AIに「データの取得に失敗しました。時間をおいて再度お試しください」のような人間が読めるメッセージを返します。
実装ポイント④: ログとモニタリング: 全てのツール呼び出しをログに記録し、不正なクエリや異常な頻度のリクエストを検知。Sentryなどのエラートラッキングツールと連携することで、本番運用の信頼性を確保します。
このようなMCP Serverを構築できるスキルは、2026年のエンジニア市場で極めて希少価値が高く、AIネイティブ企業への就職・転職で大きなアドバンテージになります。
関連データ・統計
2026年3月時点で、GitHub上のMCPリポジトリ(modelcontextprotocol/servers)のスター数は1万5,000を超え、公式・コミュニティ合わせて200以上のMCP Serverが公開されている。
MCPを採用したAIツール連携の開発時間は、独自API連携と比較して平均72%短縮されることが開発チームの調査で報告されている。
AIエージェント市場は2026年に470億ドル規模に成長し、MCP対応エージェントがエンタープライズ市場の42%を占めると予測されている。
実践ステップ
- 1
開発言語を選択する(TypeScript or Python)
型安全性を重視するならTypeScript、データ処理やプロトタイプ速度を重視するならPythonを選択。どちらも公式SDKが充実している。
- 2
プロジェクトを初期化しSDKをインストール
TypeScript: `npm install @modelcontextprotocol/sdk zod` / Python: `pip install 'mcp[cli]'` でSDKを導入。
- 3
ツールを定義する
AIが呼び出せる関数をTools APIで登録。入力パラメータのスキーマ定義と、実際の処理ロジックを実装する。
- 4
MCP Inspectorでテストする
TypeScript: `npx @modelcontextprotocol/inspector` / Python: `mcp dev server.py` でデバッグUIを起動し、各ツールの動作を確認。
- 5
Claude Codeに接続して動作確認
プロジェクトルートの `.mcp.json` にサーバー設定を追加し、Claude Codeからツールが呼び出せることを確認。実際のユースケースで統合テストを行う。
MCPは『AIのUSB-C』だ。どのAIモデルでも、どのツールでも、同じプロトコルで接続できる。これが標準化されたことで、AIエージェント開発のコストは劇的に下がった。
MCP Server開発の実務経験を持つエンジニアは全世界的に不足している。この領域でのスキルは、今後3〜5年にわたってキャリアの強力な差別化要因になる。
AI偏差値テストとの関連
この記事の内容は、AI偏差値テストの以下の測定次元と関連しています。
よくある質問
Q.MCP Serverを作るにはプログラミング経験はどの程度必要ですか?
TypeScriptまたはPythonの基本文法(関数定義、非同期処理、型ヒント)を理解していれば十分です。SDKが多くの複雑さを吸収してくれるため、「Hello World」レベルの簡単なMCP Serverなら30分で構築できます。
Q.MCP ServerはClaude以外のAIでも使えますか?
MCPはオープンプロトコルなので、対応しているAIクライアントであれば利用可能です。2026年現在、Claude Code、Claude Desktop、Cursor、Windsurf、Clineなどが対応しており、今後も対応クライアントは増加見込みです。
Q.MCP Serverのセキュリティリスクはありますか?
MCP Serverはローカルマシンやサーバー上で動作するため、ツールの権限範囲に注意が必要です。データベースへの書き込み権限、ファイルシステムへのアクセス範囲を最小権限の原則で設計し、認証・認可の仕組みを必ず実装してください。
Q.MCPとLangChain/LlamaIndexの違いは何ですか?
LangChainやLlamaIndexはAIアプリケーションフレームワークで、MCPはAIとツールを接続するプロトコル(通信規格)です。LangChainアプリケーションからMCP Server経由でツールを呼び出す、という組み合わせ利用が可能です。レイヤーが異なるため競合ではなく補完関係にあります。
この記事に関連するポジション
SalesNow で働く
データとAIで「働く」を変える仲間を募集中
1,400万件の企業データベース × AI。データAIカンパニーで新しいキャリアを。
AIネイティブ企業の開発環境を見る
全社員Claude Code MAX配布。MCP Server開発、バイブコーディングの最前線。
あなたのAI偏差値を測ってみませんか?
OECD/WEF準拠の6次元フレームワークで、あなたのAI活用力を10分で診断。