ソフトウェア AI 公開日 2026.04.12 更新日 2026.05.14

MCPサーバーとは?何をするもの?作り方・使いどころ・注意点まで解説

MCPサーバーとは何か、AI に対して何を公開するのか、ローカル接続とリモート公開の違い、作るときの流れや注意点を初心者向けに整理した記事です。

先に要点

  • MCPサーバー は、MCP のルールで AI へ機能やデータを公開する側のプログラムです。
  • 公開できる基本要素は MCPツールMCPリソースMCPプロンプト です。
  • 最初に決めたいのは `何を読ませるか` `何を実行させるか` `ローカル接続かリモート公開か` の3点です。
  • 実務では、読み取り専用で小さく始める、stdout に余計なログを出さない、認証を後回しにしない、の3つがかなり重要です。

MCP までは分かったけど、MCPサーバーって結局なにを作るの?
ツールやリソースって、どこに実装するの?

ここでつまずく人はかなり多いです。
MCP の総論を読むと便利そうに見えますが、実際に作る側へ回ると、MCPサーバーがどの役目を持つのか が急にあいまいになりやすいです。

この記事では、2026年4月12日時点で Model Context Protocol の公式 Architecture overview、Quickstart for server developers、TypeScript SDK、Python SDK の公開情報を確認しながら、MCPサーバー の役割、作り方、使いどころ、公開時の注意点まで初心者向けに整理します。
まず MCP 全体の概要から押さえたい場合は、MCP入門記事 を先に読むと入りやすいです。 AI API を直接組み込む場合と何が違うのか を先に比較したい場合は、API直結との比較記事 から入るのもおすすめです。 何から作ると失敗しにくいのか を具体例ベースで見たい場合は、実装例をまとめた記事 も続けて読むと流れがつかみやすいです。

MCPサーバーとは何か

MCPサーバー は、AI アプリに対して この機能を使えます このデータを読めます公開する側のプログラムです。
AI アプリ本体が何でも直接知っているわけではなく、必要な機能やデータをサーバー側から受け取る形で動きます。

公式の Architecture overview でも、参加者は host / client / server に分かれています。
初心者向けに言い換えると、役割はこうです。

  • ホスト
    AI アプリ本体です。エディタ、デスクトップアプリ、社内チャット AI などがここに当たります。
  • クライアント
    ホストの中で、各 MCPサーバー と接続する役です。
  • サーバー
    外の世界にある機能や情報を、MCP の形で見せる役です。

つまり、MCPサーバーAI と外部機能の境界面 です。
ファイル、データベース、SaaS、社内API、チケット操作などを、AI から扱いやすい形へ変換して出す場所と考えると分かりやすいです。

MCPサーバーは何を公開するのか

公式仕様でコアとして整理されているのは、MCPツールMCPリソースMCPプロンプト です。

公開要素 役割
ツール AI が実行できる機能 ファイル検索、Issue 作成、API 呼び出し、承認付き操作
リソース AI が読むためのデータ 設計書、設定値、DB スキーマ、ログの要約
プロンプト 再利用しやすい指示テンプレート 調査フォーマット、レビュー観点、報告テンプレート

ここで大事なのは、読む実行する を分けて考えられることです。
最初から強いツールを公開するより、まずは MCPリソース 中心で始める方が安全なことも多いです。

どんな接続方式を選ぶのか

MCPサーバー を作るとき、早い段階で決めたいのが接続方式です。
代表的なのは stdioStreamable HTTP です。

stdio が向く場面

  • 手元のエディタやデスクトップアプリから使う
  • まず動作確認したい
  • 認証や公開範囲の設計を最小限にしたい

ローカルで起動してローカルで使う なら、最初は stdio がかなり入りやすいです。
公式 Quickstart でも、サーバー開発の入口として扱われています。

Streamable HTTP が向く場面

  • 複数クライアントから共通利用したい
  • サーバーとして別マシンで動かしたい
  • 認証つきのリモート利用を前提にしたい

ただし、HTTP 化した瞬間に 普通の公開サーバー としての責任が増えます。
認証、公開範囲、ログ、Origin の扱い、到達範囲まで含めて設計した方が安全です。

作るときの流れ

公式の TypeScript SDK や Python SDK を見ると、作業の流れはだいたい共通しています。
実務では次の順で考えると事故が減ります。

1. 何を見せるかを先に絞る

まず決めたいのは AI に何をやらせたいか より 何なら見せても安全か です。
最初から更新系ツールまで公開すると、便利さより先に事故ポイントが増えます。

最初の一歩としては、次が無難です。

  • 読み取り専用のリソースを1つ作る
  • 破壊的でない検索ツールを1つ作る
  • 定型のプロンプトを1つ用意する

2. 入出力の形を決める

ツールなら、どんな引数を受けて、どんな結果を返すかをはっきりさせます。
ここが曖昧だと、AI 側が使いにくくなります。

実務では、引数名だけ見れば何を入れるか分かる くらいまで単純化した方が安定しやすいです。
複雑な1ツールを作るより、役割を絞った複数ツールの方が保守しやすいことも多いです。

3. ログ出力の場所を間違えない

これはかなり重要です。
stdio 接続では、stdout に余計なログを出すと JSON-RPC の通信が壊れます。

なんとなく console.log を置いたら動かなくなった というのは、MCPサーバー開発でかなり起こりやすいです。
標準出力にはプロトコルのメッセージだけを流し、ログは stderr 側へ分ける意識が必要です。

4. 公開前に権限を見直す

リモート公開するなら、そのツールは本当に誰でも叩けてよいのか を必ず見ます。
社内利用でも、読み取り専用で足りるなら更新系を混ぜない方が安全です。

実務で使われやすい場面

MCPサーバー は、派手な自動化より AI に必要な入口を揃える ところで効きます。
ただし入口を増やしすぎると、AI がどの接続先を使うべきか迷いやすくなるため、数を増やしたときの崩れ方は MCPを増やすほどAIが迷いやすくなるのはなぜか?接続先判断と設計の崩れ方を整理 で分けて整理しています。
たとえば次のような場面です。

開発補助

リポジトリ検索、Issue 参照、ドキュメント読み取りを AI へ渡して調査を速くする。

社内ナレッジ検索

手順書や設計書をリソースとして見せ、更新系は出さずに読むだけで使う。

限定的な業務操作

申請作成や情報取得のように、範囲を絞ったツールだけ公開して人の確認を挟む。

このとき大事なのは、AI を何でもできる管理者にしない ことです。
便利さより先に、境界の分かりやすさを優先した方が長く運用しやすいです。

よくある失敗

強い権限をまとめて渡してしまう

便利そうだからと更新・削除まで同時に公開すると、事故時の影響が一気に大きくなります。
最初は検索や参照から始め、更新系は承認フローつきで後から追加する方が現実的です。

サーバーの役割が大きすぎる

1つの MCPサーバー に何でも詰め込むと、責任範囲が曖昧になります。
ファイル参照用 チケット操作用 社内API参照用 のように分けた方が理解しやすいです。

古い実装例をそのまま使う

MCP まわりは変化が早めです。
古い記事やサンプルだけを見るのではなく、公式仕様日付や公式 SDK の現行 README を先に見た方が安全です。

初心者が最初に触るなら

最初の1本としておすすめなのは、ローカルで動く読み取り中心の stdio サーバー です。
たとえば、特定フォルダのファイル一覧を返す、ドキュメントを読む、簡単な検索をする、くらいから始めると入りやすいです。

いきなりリモート公開や認証つきの HTTP サーバーへ行くと、MCP そのものより Web サーバー運用で詰まりやすくなります。 まずはローカルで サーバーが何を公開し、クライアントがどう呼ぶか を体でつかむのが近道です。

MCPサーバーに関するよくある質問

Q. MCP サーバーは MCP クライアントと何が違いますか?

A. MCP サーバーは ツールやデータを公開する側MCP クライアントは AI 側でそれらを使う側 です。Claude DesktopCursor などが MCP クライアント、データベースや業務システム接続が MCP サーバー、という関係です。

Q. MCP サーバーは PythonTypeScript のどちらで作るべきですか?

A. 公式 SDK が両方とも提供されており、機能差はほぼありません。既存スタックや個人の慣れで選んで問題ありません。データ分析用なら Python、Web 業務系なら TypeScript が選ばれる傾向です。

Q. stdio と HTTP はどちらで実装すべきですか?

A. ローカル専用なら stdio が一番シンプル、複数クライアントから接続したい・別マシンから使いたいなら HTTP(SSE/Streamable HTTP)が向きます。最初は stdio から始めて、必要が出てから HTTP に移すのが現実的です。

Q. MCP サーバーに認証は必要ですか?

A. ローカル使用なら不要、リモート公開や社内ネットワーク経由なら必須です。OAuth2API キー、Bearer トークンなどが使われます。MCP の HTTP 仕様は標準的な認証スキームをサポートします。

Q. 既存の REST API を MCP サーバー化する意味はありますか?

A. AI から呼びやすくする目的では意味があります。MCP は AI に対して tools/resources/prompts を構造化して提供するため、REST API を MCP でラップすると Claude が自然に使えるツール に変わります。

Q. MCP サーバーは商用で使えますか?

A. プロトコル自体は Apache 2.0 で公開されており、商用利用可能です。ただし、サーバー側で参照するデータ(顧客情報、社外秘情報など)の取り扱いは、別途自社のポリシーや契約で確認が必要です。

Q. MCP サーバーをデバッグする方法は?

A. MCP Inspector(公式ツール)が便利です。Web UI で どのツールが公開されているか引数や戻り値が何か呼び出しの履歴 を確認できます。stdio 接続のデバッグには特に有効です。

まとめ

MCPサーバー は、AI へツールやデータを公開する役を持つ、MCP の中核部分です。
公開できる要素は MCPツールMCPリソースMCPプロンプト で、接続方式としては stdioStreamable HTTP を使い分けます。

実務では、便利さだけでなく 公開範囲を絞る ログ出力を壊さない 認証を後回しにしない がかなり大事です。
初心者のうちは、まずローカルの小さなサーバーを1本作って、責任範囲を小さく保つところから始めるのがおすすめです。

参考情報

あとで見返すならここで保存

読み終わったあとに残しておきたい記事は、お気に入りからまとめて辿れます。