MCP Promptsとは?基本概念やサーバー構成、実装例を解説

MCP Prompts 基本概念 サーバー構成 実装例
押さえておきたいポイント
  • MCPはLLM間の文脈共有を標準化し、生成AIの再現性と開発効率を大幅に向上させる
  • MCP Promptsはプロンプトを構造化・バージョン管理でき、チーム開発やABテストにも有効。
  • Claudeやローカル環境と連携して簡単に実装可能で、現場での導入も現実的に進めやすい。

生成AIの精度と開発スピードを高めるには、プロンプト設計の標準化が欠かせません。

そこで昨今注目されているのが、Model Context Protocol(MCP)と、その実装例であるMCP Promptsです。

本記事では、MCPの基本概念からサーバー構成、実践的な使い方までを具体例とともに解説し、再現性の高い生成AI開発を実現するヒントを提示します。

さらに、ニュース要約タスクでの検証も行いますので、ぜひ最後までご覧ください!

目次

MCP Promptsとは

参考:https://blog.stackademic.com/adding-prompts-to-mcp-server-64d058c4e758

MCP Promptsとは、Model Context Protocol(MCP)が定めるフォーマットで記述されたプロンプトテンプレート群を指します。

目的・制約・入出力仕様をYAML/JSONで厳密に階層化し、LLMが参照すべき文脈を段階的に提示できる構造が特徴です。

これにより、「誰が実行しても同一結果を得やすい」再現性と、「Git上でのバージョン管理・レビューのしやすさ」を両立します。

さらに、Playwright MCPなどの自動テストと組み合わせれば、対話シナリオのE2E検証にもそのまま流用でき、開発効率が大幅に向上します。

現在は公式ページ(※1)で多様なタスク向けテンプレートが公開されており、企業内のナレッジ共有にも活用されています。​

MCPとは

MCP(Model Context Protocol)は、複数のLLMやエージェントが協調してタスクを遂行する際、文脈情報を構造化して受け渡すためのオープンプロトコルです。

HTTPのようにヘッダーとボディを分離し、「who」「what」「why」「how」のメタデータをタグ付けします。

これによりモデルは、必要な情報だけを効率的に参照することができ、トークン消費を抑えつつ一貫性を保った出力を生成できます。

我々開発者は、各ステップをYAMLやJSONで定義し、PlaywrightやLangChainなどのフレームワークと組み合わせるだけで、対話、E2Eテスト、自動ドキュメント生成などに応用することができます。

さらにバージョニング機構があるため、プロンプトの履歴を追跡しながら安全に更新でき、チームのレビュー体制やABテストのようなシーンでも便利です。

この設計によって、MCPは生成AI開発の標準インターフェースとして急速に採用が広がっています

なお、MCPについて詳しく知りたい方は、下記の記事を合わせてご確認ください。

MCPサーバーとは

参考:https://github.com/sparesparrow/mcp-prompts

MCPサーバーとは、プロトコルで定義されたメッセージフォーマットを解釈し、LLMや外部API、データベースへのルーティングを担う実行エンジンです。

クライアントが送信したYAML/JSONの指示を受け取り、各ステップをワーカーに分配しながら、途中経過をログとして保持します。

サーバーは、認証機構やレート制御を備え、トークン残高の可視化や課金連携も標準でサポートします。

さらに、WebSocket経由のストリーム出力に対応しているため、フロントエンドは進捗をリアルタイムで取得することができます。

オンプレミス導入とクラウドホスティングの両方に対応しており、社内規定で機密データを外に出せない場合でも安全に運用可能です。

なお、MCPサーバーについて詳しく知りたい方は、下記の記事を合わせてご確認ください。

MCP Promptsの使い方

ここからは実際に、MCP Promptsを動かす手順をフローで解説します。

今回はClaude Desktopアプリで動かせるように実装していきます。

1.Node.js 18以上を確認

node –version コマンドを実行し、v18.x.xなどのバージョン文字列が表示されるか確認してください。

表示されない場合は https://nodejs.org から最新版LTSをインストールしてください。

2.Claude Desktopを最新版に更新

メニューバー → Claude › Check for Updates… を実行し、再起動します。

更新後のビルドは Quickstart ページの記載と同じく「ハンマーアイコン対応版(2025年4月現在)」となります。

まだダウンロードしていない方は https://claude.ai/download からダウンロードしましょう。

3.MCP Prompts サーバーをローカル起動

ローカル環境で以下コマンドを実行してください。実行すると2つのディレクトリが作成されます。

mkdir -p ~/mcp/data/{prompts,backups}

続いてnpxでサーバーを取得します。以下コマンドは初回のみ実行が必要で2回目以降は必要ありません。

npx -y @sparesparrow/mcp-prompts@latest --help

“MCP Prompts Server v1.x.xx”のようなヘルプ出力が表示されればOKです。

その後、以下コマンドでMCP Promptsサーバーをバックグラウンドで起動します。

npx -y @sparesparrow/mcp-prompts@1.0.0 \
    --storageType file \
    --promptsDir ~/mcp/prompts \
    --backupsDir ~/mcp/backups \
    --logLevel info &

※2025年5月時点で、MCPの最新バージョンは1.2.38ですが、筆者の環境(Apple silicon、MacOS)ではうまく動作しなかったため、1.0.0を適用しています。もしエラーが出た際は他のバージョンを試してみてください。

“MCP Prompts Server connected successfully to stdio transport”といった表示が出れば起動成功です。

4.Claude設定ファイル編集

Claudeの設定ファイルを編集します。

以下の画像のように”claude_desktop_config.json”ファイルをエディタで開いて編集します。

設定値は以下の通りです。編集が完了したら保存してファイルを閉じましょう。

{
  "mcpServers": {
    "prompts": {
      "command": "npx",
      "args": ["-y", "@sparesparrow/mcp-prompts"],
      "env": {
        "STORAGE_TYPE": "file",
        "PROMPTS_DIR": "/Users/<あなたのユーザ名>/mcp/data/prompts",
        "BACKUPS_DIR": "/Users/<あなたのユーザ名>/mcp/data/backups",
        "LOG_LEVEL": "info"
      }
    }
  }
}

Claudeアプリを再起動し、以下画像のように入力欄右下にハンマーアイコンが表示されていれば、ClaudeでMCP Promptsを使える状態になります。

少し複雑ですが、以上のステップでClaude Desktop AppでMCP Promptsを使う準備が完了しました。

次のチャプターでは実際にMCP Promptsを使ってタスク検証を行っていきます。

補足

上記の使い方フローは筆者環境(Apple sillicon、MacOS)で動作させるため、MCPの旧バージョンを使用しています。

本来のフローはこちらの通りとなりますので、環境設定がうまくいかない場合は、ご自身の環境にあわせて使用バージョンやインストール方法を試してください。

0.事前インストール(初回のみ)

# Homebrew で Node 20 と pnpm を導入
brew install node@20 pnpm                                    # ← 標準手順

# pnpm のグローバル bin を PATH へ追加  (済みならスキップ)
mkdir -p "$HOME/Library/pnpm"
echo 'export PNPM_HOME="$HOME/Library/pnpm"' >> ~/.zshrc
echo 'export PATH="$PNPM_HOME:$PATH"'        >> ~/.zshrc
exec $SHELL                                   # ← 反映

1.プロジェクト新規作成

# 1-1: 作業フォルダー
mkdir -p ~/mcp-server && cd ~/mcp-server

# 1-2: package.json を生成(質問はすべて Enter)
pnpm init

2.SDK+公式サーバーを追加

# server-everything は "全部入り" 参考実装、SDK は必須依存
pnpm add @modelcontextprotocol/server-everything \
        @modelcontextprotocol/sdk@latest

3.HTTPモードで起動

# ★2025.4.28 以降は環境変数で指定するのが確実
MCP_TRANSPORT=http \        # ← HTTP を明示
MCP_PORT=3003 \             # ← 待ち受けポート
npx -y @modelcontextprotocol/server-everything \
  --logLevel error          # ← テスト用ノイズを抑制(任意)
# → "HTTP server listening on http://0.0.0.0:3003" が出れば成功

※もしログが出ない場合は、pnpm list @modelcontextprotocol/* コマンドでSDKとサーバーのバージョンが揃っているかを確認します。

4.ターミナルの新規タブで動作確認

# 4-A: ヘルスチェック
curl http://localhost:3003/health             # {"status":"ok"}

# 4-B: ツール一覧
curl http://localhost:3003/tools | jq .       # JSON が返る

5.Claude Desktopの設定

# 5-1: 設定ファイルを編集
open -a "Visual Studio Code" \
  "$HOME/Library/Application Support/Claude/claude_desktop_config.json"
# 5-2: 追加内容(例){
  "mcp": {
    "servers": {
      "everything": {
        "transport": "http",
        "url": "http://localhost:3003"
      }
    }
  }
}

上記を追加したら、保存→Claude Desktop Appを再起動し、入力欄右下にハンマーアイコンが表示されていればOKです。

もし設定がうまくいかない場合は、以下の早見表とMCPクイックスタートガイドを参照してみてください。

トラブル早見表

スクロールできます
症状確認ポイント
curl が connection refusedになるプロセスが落ちていないか / ポート番号が意図したものになっているか
HTTP server listening が出ない環境変数名ミス(MCP_TRANSPORT, MCP_PORT)
ハンマーアイコンが出ないClaude設定のURLタイプミス / 再起動不足

MCP Promptsを実装してClaude Desktopで起動するか検証

では実際にMCP Promptsを実装して、Claude Desktopで起動するかを検証したいと思います。MCP Promptsのコーディングは公式ページGitHubを参考に進めていきます。また、こちらはPython SDKを使用しての方法です。

今回はOpenWeatherのAPIを使って、Claude Desktopから場所を入力したらその場所の天気が出力されるように実装します。

まずはローカル環境でMCPが使えるようにライブラリをインストール。

pip install "mcp[cli]"

ライブラリをインストールできたら、コードを書いていきます。

【サンプルコードはこちら】

# server.pyfrom mcp.server.fastmcp import FastMCPimport httpximport os
mcp = FastMCP("Weather MCP Server")
API_BASE_URL = "https://api.openweathermap.org/data/2.5/weather"API_KEY = os.getenv("OPENWEATHER_API_KEY", "your_openweather_api_key_here")  
@mcp.prompt()def get_weather(city: str, country_code: str = "jp") -> str:    """    指定された都市と国コードの現在の天気を取得します。        Args:        city: 都市名(例:Tokyo)        country_code: 国コード(デフォルト: jp)    """    params = {        "q": f"{city},{country_code}",        "APPID": API_KEY,        "units": "metric",                "lang": "ja"                 }
    try:        response = httpx.get(API_BASE_URL, params=params, timeout=5)        response.raise_for_status()        data = response.json()
        weather_desc = data["weather"][0]["description"]        temp = data["main"]["temp"]        feels_like = data["main"]["feels_like"]        humidity = data["main"]["humidity"]        wind_speed = data["wind"]["speed"]
        return (            f"{city}の現在の天気情報:\n"            f"- 天気: {weather_desc}\n"            f"- 気温: {temp}℃ (体感: {feels_like}℃)\n"            f"- 湿度: {humidity}%\n"            f"- 風速: {wind_speed} m/s"        )
    except httpx.HTTPStatusError as http_err:        return f"APIリクエストエラー: {http_err.response.status_code} - {http_err.response.text}"    except Exception as e:        return f"天気情報の取得中にエラーが発生しました: {str(e)}"
if __name__ == "__main__":    mcp.run()

コーディングはこれでおしまいです。あとはこのコードをClaude DesktopにインストールすればOK。

mcp install server.py --name "Weather MCP Server"

「server.py」はPythonファイルのパス名でも大丈夫です。

インストールができたらClaude Desktopを再起動しましょう。

私の環境だと「+」を押すと、下記画像のように「Weather MCP Server」が表示されますが、バージョンの問題かもしれません。

Weather MCP Serverから追加」をクリックすると下記のようになりますので。「get_weather」を選択。

最後に天気を知りたい地域名を入力すれば、天気を調べられます。country_codeはデフォルトで日本になっているので、入力しなくても大丈夫です。

実際に動かしている様子がこちら。

日本語で返すようにServer.pyを記述したつもりですが、何度試しても英語で出力されてしまい、現時点では未解決ですが、ひとまずMCP Promptsはこれで動かすことが可能です。

MCP Promptsを活用してみよう!

MCP Promptsを導入することで、プロンプト設計からテスト、運用までの一連の流れをシンプルにできます。

標準化されたフォーマットのおかげで、モデルの入れ替えや、スケールアウトも設定ファイルを書き換えるだけで完了します。

まずは小さな要約タスクから始めて、ログ可視化の便利さを実感してみてください。

特に、『複数人でプロンプトを共有する現場』や『継続的にABテストを行うサービス開発』などにおいて、MCP Promptsは学習済みモデルと開発チームをつなぐ共通言語として力を発揮するのでぜひ確認してみてください。

サービス紹介資料

生成系AIの業務活用なら!

・生成系AIを活用したPoC開発

・生成系AIのコンサルティング

・システム間API連携

最後に

いかがだったでしょうか?

MCPやMCP Promptsの導入により、プロンプト設計の属人化を防ぎつつ、生成AIの品質と再現性を両立できます。組織全体の開発基盤を強化したい方は要注目です。

株式会社WEELは、自社・業務特化の効果が出るAIプロダクト開発が強みです!

開発実績として、

・新規事業室での「リサーチ」「分析」「事業計画検討」を70%自動化するAIエージェント
・社内お問い合わせの1次回答を自動化するRAG型のチャットボット
・過去事例や最新情報を加味して、10秒で記事のたたき台を作成できるAIプロダクト
・お客様からのメール対応の工数を80%削減したAIメール
・サーバーやAI PCを活用したオンプレでの生成AI活用
・生徒の感情や学習状況を踏まえ、勉強をアシストするAIアシスタント

などの開発実績がございます。

まずは、無料相談にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ
無料相談

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、サービス紹介資料もご用意しておりますので、併せてご確認ください。

投稿者

  • 晋平大竹

    生成AIの登場に大きな衝撃を受けたWebライター。好きなAIツールは、ChatGPTとAdobeFirefly。AIがこれからの世界を良い方向に導いてくれると信じ、正しい&有益な情報を発信し続けています!

  • URLをコピーしました!
  • URLをコピーしました!
目次