AI時代の開発を語るだけでなく、実際に作る。AI駆動開発の実践・つまずき・判断を、一次情報で記録するメディア。
ホーム › エージェント・MCP › MCPサーバーの自作完全ガイド|作り方から接続・運用まで
エージェント・MCP

MCPサーバーの自作完全ガイド|作り方から接続・運用まで

わくてか / 更新:2026-06-20
MCPサーバーの自作完全ガイド|作り方から接続・運用まで
MCPサーバーを自作したいけれど、用語が多すぎて全体像がつかめない――そんな状態でこの記事にたどり着いた人が多いと思う。結論から言うと、MCPサーバーはClaudeなどのAIに「自分の道具」を追加する仕組みで、無料の道具だけで半日あれば最初の1本が動く。この記事を最後まで進めれば、Claude DesktopやCursorから叩ける自作サーバーが手元に残る。
  • MCPサーバーは、AIに外部の機能やデータを使わせるための小さなサーバープログラムである。
  • 主な機能は「Tools(道具)」「Resources(データ)」「Prompts(定型文)」の3つに分かれる。
  • 通信はJSON-RPC 2.0という形式で、標準入出力かHTTPでやり取りする。
  • 自作の費用は、ローカル開発だけなら0円から始められる。
  • 最初の1本は、環境構築込みで所要時間およそ2〜4時間・難易度はやさしめ。

MCPサーバーの自作とは?仕組みと費用の基礎知識

自作MCPサーバの作り方 〜 Python編 〜 AIをもっと便利に使うために!
自作MCPサーバの作り方 〜 Python編 〜 AIをもっと便利に使うために!

MCPサーバーの自作とは、AIに新しい機能やデータ参照能力を追加するための小さなサーバープログラムを、自分で書いて用意することです。

MCP(Model Context Protocol)は、Anthropicが公開したオープンな規格だ。AIモデルと外部ツールをつなぐ「共通の差し込み口」だと思えばいい。

私はこのメディアのCMSもAI駆動で組んでいるが、AIに「自社の処理」を渡したい場面は山ほどある。MCPはその受け渡しを標準化してくれる。

MCPサーバーでできること(機能の3兄弟)

MCPサーバーが提供できる機能は、Tools・Resources・Promptsの3種類に整理されている。

ここを最初に押さえておくと、後の実装で「これはどれを作っているのか」が迷わなくなる。

MCPの機能3兄弟
種類役割具体例
ToolsAIが呼び出して実行する関数天気を取得する、計算する、DBに書き込む
ResourcesAIが読み取る参照データファイルの中身、設定値、ログ
Prompts定型のプロンプトテンプレートレビュー用の質問テンプレ、要約指示の雛形

3つのうち、実際に作る頻度が高いのは圧倒的にToolsだ。私自身、最初に作るならまずToolだけで十分だと考えている。

なぜREST APIではなくMCPを使うのか

REST APIではなくMCPを使う理由は、AIが「どんな道具があり、どう呼べばいいか」を自分で読み取れる形になっているからです。

REST APIは人間が仕様書を読んで叩く前提で作られている。MCPは、ツールの名前・説明・引数の形をAIが解釈できる形で渡す。

つまり、毎回「このAPIをこう呼んで」と指示しなくても、AI側が状況に応じて道具を選んでくれる。ここが普通のAPI連携との決定的な違いだ。

通信の仕組みとデータの形式

MCPの通信はJSON-RPC 2.0という形式で行われ、トランスポートは「標準入出力」か「HTTP(SSEを含む)」を選びます。

ローカルでClaude Desktopから使うなら、標準入出力(stdio)が一番シンプルだ。サーバーをサブプロセスとして起動し、入出力でメッセージをやり取りする。

離れた場所のサーバーに置いて複数人で使うなら、HTTPベースを選ぶ。この記事では、まずstdioで作り、後半でHTTP化の話に進む。

標準入出力でサーバーを作るとき、ログやデバッグ出力を標準出力(print相当)に出してはいけない。通信が壊れる。ログは必ず標準エラー出力かファイルに出す。

自作にかかる費用と必要なもの

自作の費用は、ローカル開発に限れば0円から始められます。

必要なのは、開発言語の実行環境(無料)と、テスト用のMCPクライアント(Claude Desktopなどは無料で使える)だけだ。

費用が発生するのは、本番でクラウドに常駐させる段階から。下に、どこでお金がかかるかを整理しておく。

MCPサーバー自作でかかる費用の目安
段階必要なもの費用感
ローカル開発言語の実行環境・エディタ・MCPクライアント0円
外部API連携天気APIなどの利用料(無料枠あり)0円〜従量
本番デプロイクラウドの常駐サーバー/コンテナ月数百円〜

正直、学習目的なら最後まで0円で完結できる。お金の話で身構える必要はない。

開発環境の準備と前提条件

MCPサーバーの自作を始めるには、好きな言語の実行環境とMCP用の公式SDKを入れるだけで準備が整います。

開発環境の準備と前提条件

前提条件はシンプルだ。コマンドを打てる端末(ターミナル)と、テキストエディタ、それに対象言語のランタイム。これだけあればいい。

  • 前提:ターミナル操作の基本(フォルダ移動・コマンド実行)ができること。
  • 前提:対象言語の実行環境がインストール済みであること。
  • 所要時間:環境構築だけなら15〜30分ほど。

対応する開発言語の選び方

MCPの公式SDKは複数言語で提供されており、Python・TypeScript・C#・Goなどから選べます。

どれを選ぶかは「普段使っている言語」で決めていい。MCPの考え方はどの言語でも同じだ。

主な言語別の向き不向き
言語向いている人ひとこと
TypeScript/Node.jsWeb系・フロント出身の人公式SDKが充実、サンプルも多い
Pythonデータ・AI周りを触る人最短で書ける、学習向き
C#(.NET)業務システム・Windows寄りの人型がしっかり、社内システム連携向き
Go常駐サーバーを軽く速く動かしたい人単一バイナリで配布が楽

私の本音を言うと、初学者には書く量が少ないPythonかTypeScriptを勧める。社内の既存資産がC#や.NETならC#で揃える、という判断でいい。

実行環境のインストールと確認

インストール後は必ずバージョンを表示するコマンドで、正しく入ったかを確認します。

例えばNode.jsなら「node --version」、Pythonなら「python --version」、.NETなら「dotnet --version」を打つ。

ここでバージョン番号が返ってくれば正しい。コマンドが見つからないと出たら、PATHが通っていない。インストーラを入れ直すか、端末を再起動する。

ここまでできていれば正しい:ターミナルでバージョン番号が表示される。これが出ないまま先に進むと、後で必ず詰まる。

プロジェクトの作成と必要な部品の導入

空のプロジェクトを作り、MCPの公式SDKをパッケージとして追加すれば下準備は完了です。

TypeScriptなら作業フォルダで「npm init -y」してから、MCP用のSDKを「npm install」で入れる。Pythonなら仮想環境を作ってSDKを入れる。

パッケージの正確な名前とバージョンは更新が早いので、公式リポジトリのREADMEを見て入れるのが確実だ。

【手順】はじめてのMCPサーバーを作る

はじめてのMCPサーバーは、サーバー本体の生成→ツール定義→データ公開→起動の4ステップで完成します。

【手順】はじめてのMCPサーバーを作る

ここでは「足し算をする計算ツール」と「設定値を返すデータ」を持つ最小サーバーを作る。1ステップ=1動作で進める。

手順1:サーバー本体を用意する

まず、SDKからサーバーのインスタンスを1つ作ります。

このとき、サーバーの「名前」と「バージョン」を渡す。名前は後でクライアント側に表示されるので、自分が分かるものにしておく。

ここまででサーバーの“ガワ”ができた。まだ何の機能もないが、それでいい。

手順2:機能(ツール)を定義する

次に、AIが呼び出せるツールを1つ登録します。

ツールには「名前」「説明文」「入力の形(引数)」「実行する処理」を持たせる。今回は2つの数を受け取って合計を返す処理にする。

説明文はAIが「いつこの道具を使うか」を判断する材料になる。だから雑に書かない。「2つの整数を受け取り合計を返す」のように具体的に書く。

ここまでできていれば正しい:ツールの名前・説明・引数・処理の4点セットが1つ揃っている状態。

手順3:データを公開する

続いて、AIが読み取れるResource(データ)を1つ公開します。

Resourceには一意のアドレス(URI)を付ける。例えば「config://app/settings」のような形で、アクセスされたら設定値を返すようにする。

Toolが「動かす」担当なら、Resourceは「見せる」担当だ。読み取り専用の情報はここに置く。

手順4:サーバーを動かして確認する

最後に、トランスポートを標準入出力に設定してサーバーを起動します。

起動コマンドを打つと、サーバーは入力待ちの状態でじっと止まる。エラーを吐かずに止まっていれば成功だ。

ここで何も表示されず固まったように見えても、それが正常。サーバーはクライアントからの接続を待っている状態だ。

この手順で、足し算ツールと設定データを持つ最小のMCPサーバーが完成した。次は、これを実際にクライアントから叩いて確かめる。

作ったサーバーを動作確認する方法

【9分で分かる】MCPサーバーとは?PythonでのMCPサーバーの作り方とClaudeとの連携方法を解説!
【9分で分かる】MCPサーバーとは?PythonでのMCPサーバーの作り方とClaudeとの連携方法を解説!

動作確認は、まず公式の検査ツール「MCP Inspector」で単体チェックし、その後Claude DesktopやCursorに接続するのが安全な順番です。

いきなりClaude Desktopにつなぐと、動かないときに「サーバーが悪いのか設定が悪いのか」が切り分けられない。先に単体で確かめる。

検査ツールでの動作チェック

MCP Inspectorは、サーバーに登録したツールやリソースを画面上で一覧・実行できる公式の検査ツールです。

自作サーバーを指定して起動すると、ブラウザに検査画面が立ち上がる。そこでToolsの一覧に「足し算」が出ていれば、登録は成功している。

実際に引数を入れて実行し、正しい合計が返ってくるかをここで確かめる。AIをつなぐ前にバグを潰せるのが大きい。

Claude Desktopとつないで使ってみる

Claude Desktopとつなぐには、設定ファイルに自作サーバーの起動コマンドを書き加えます。

この設定ファイルは「claude_desktop_config.json」という名前で、OSによって置き場所が違う。下にまとめた。

Claude Desktop 設定ファイルの場所
OS場所
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json

ファイルが無ければ、同じ名前で新規作成すればいい。書き換えたらClaude Desktopを完全に再起動する。これを忘れる人が本当に多い。

再起動後、入力欄の周辺にツールのアイコンが出て、自作サーバーが認識されていれば接続成功だ。

ここまでできていれば正しい:Claudeに「3と5を足して」と頼むと、自作の足し算ツールが呼ばれて8が返る。

Cursorやその他のクライアントとの接続

自作MCPサーバーはClaude Desktop専用ではなく、CursorやCline、VS Code拡張など他のMCP対応クライアントからも同じように使えます。

Cursorの場合も、考え方は同じ。設定からMCPサーバーを追加し、起動コマンドを登録するだけだ。設定ファイルの場所や書式がクライアントごとに少し違う点だけ注意する。

私は普段Cursorで開発しているので、自作ツールをCursorに常駐させて作業を任せている。1本作れば使い回せるのがMCPの良いところだ。

うまくいかないときの対処と注意点

うまくいかない原因の大半は「設定ファイルのパス間違い」「再起動忘れ」「標準出力へのログ混入」の3つに集約されます。

うまくいかないときの対処と注意点

ここを先回りで潰しておけば、ほとんどのつまずきは避けられる。私自身が踏んだものも含めて並べる。

よくあるエラーと解決策

エラーが出たら、まず「サーバー単体は動くか」「クライアントの設定は正しいか」を分けて確認します。

よくあるエラーと対処
症状よくある原因対処
ツールが表示されない設定ファイルのパス・コマンドが誤りフルパスで書き直す/再起動する
起動直後に落ちるログを標準出力に出しているログを標準エラー出力に切り替える
コマンドが見つからない実行環境のPATHが通っていないコマンドを絶対パスで指定する
この記事について質問できますAIが記事をもとに答えます
こんにちは。この記事について、下の候補から選ぶか、自由に質問できます。
わくてか

わくてか

株式会社CIVIQ 代表 ・ AI駆動開発の実践者・Udemy講師
運営者本人(AI駆動開発の実践者)

株式会社CIVIQ代表。AI時代の開発組織論を講演で語りつつ、自分でもAIをフル活用して開発する実践者。このメディアを動かすCMS(ほぼ一人で100規模のメディアを運用)もAI駆動開発で構築した。抽象論で終わらせず、実装・つまずき・判断を一次情報で書くことにこだわる。Udemyで『AI駆動開発』講座を運営。

メルマガ登録

わくてか
わくてか
株式会社CIVIQ代表。AI時代の開発組織論を講演で語りつつ、自分でもAIをフル活用して開発する実践者。このメディアを動かすCMS(ほぼ一人で100規模のメディアを運用)もAI駆動

記事には書ききれない現場のリアルや最新の動きを、わたしから直接メルマガでお届けします。よかったら登録してください。

登録は無料・いつでも解除できます。