MCP Serverの作り方 — TypeScript/Pythonで自作AIツールを30分で構築する【実装コード付き】

AIトレンド··11分で読める·SalesNow AI Lab
#MCP#MCP Server#作り方#TypeScript#Python#AIエージェント#Model Context Protocol

ひとことで言うと

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が公開されている。

出典: GitHub「MCP Ecosystem Stats」

MCPを採用したAIツール連携の開発時間は、独自API連携と比較して平均72%短縮されることが開発チームの調査で報告されている。

出典: Anthropic「MCP Developer Experience Report 2026」

AIエージェント市場は2026年に470億ドル規模に成長し、MCP対応エージェントがエンタープライズ市場の42%を占めると予測されている。

出典: MarketsandMarkets「AI Agent Market Report 2026」

実践ステップ

  1. 1

    開発言語を選択する(TypeScript or Python)

    型安全性を重視するならTypeScript、データ処理やプロトタイプ速度を重視するならPythonを選択。どちらも公式SDKが充実している。

  2. 2

    プロジェクトを初期化しSDKをインストール

    TypeScript: `npm install @modelcontextprotocol/sdk zod` / Python: `pip install 'mcp[cli]'` でSDKを導入。

  3. 3

    ツールを定義する

    AIが呼び出せる関数をTools APIで登録。入力パラメータのスキーマ定義と、実際の処理ロジックを実装する。

  4. 4

    MCP Inspectorでテストする

    TypeScript: `npx @modelcontextprotocol/inspector` / Python: `mcp dev server.py` でデバッグUIを起動し、各ツールの動作を確認。

  5. 5

    Claude Codeに接続して動作確認

    プロジェクトルートの `.mcp.json` にサーバー設定を追加し、Claude Codeからツールが呼び出せることを確認。実際のユースケースで統合テストを行う。

MCPは『AIのUSB-C』だ。どのAIモデルでも、どのツールでも、同じプロトコルで接続できる。これが標準化されたことで、AIエージェント開発のコストは劇的に下がった。

高橋 直樹

AI基盤エンジニア / テクノロジーカンパニー

MCP Server開発の実務経験を持つエンジニアは全世界的に不足している。この領域でのスキルは、今後3〜5年にわたってキャリアの強力な差別化要因になる。

松田 恵理

採用ディレクター / AIスタートアップ

AI偏差値テストとの関連

この記事の内容は、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。フルリモート・フルフレックスで、あなたのスキルを最大限活かせる環境です。

採用情報を見る

SalesNow で働く

データとAIで「働く」を変える仲間を募集中

1,400万件の企業データベース × AI。データAIカンパニーで新しいキャリアを。

採用情報を見る

AIネイティブ企業の開発環境を見る

全社員Claude Code MAX配布。MCP Server開発、バイブコーディングの最前線。

開発環境を見る →

あなたのAI偏差値を測ってみませんか?

OECD/WEF準拠の6次元フレームワークで、あなたのAI活用力を10分で診断。

10分で完了完全無料即時結果

この記事が役立つ職種