PythonでMCPサーバーにプロンプトを設定する

AI

MCPサーバーではさまざまな機能を持たせることができますが、そのひとつに プロンプト があります。
正しい情報を得るためには適切なプロンプトを与える必要がありますが、内容によっては分量が多くなり、毎回手動で入力するのは手間です。そこで、MCPサーバーにプロンプトを定義しておき、必要に応じて呼び出せるようにすることで、効率よく利用できます。

今回は Python を使って MCPサーバーにプロンプトを作成する方法 を紹介します。

MCPサーバープロジェクトの設定やToolの作成方法は前回の記事を参照してください。

実行環境

以下の環境で動作確認を行っています。

osUbuntu(WSL2)
Python3.13.7
IDEVisual Studio Code
mcp1.13.1
uv0.8.14

記事のコードは、解説をわかりやすくするために、エラーチェックなど一部の処理を省略しています。

プロンプトの作成

main.pyに以下を追加します。戻り値としてプロンプトを指定します。

mcp = FastMCP("mcp-test")

@mcp.prompt(title="クラス生成")
def create_class(table_name:str) -> str:
    return f"{table_name}用のクラスを作成してください"


if __name__ == "__main__":
    mcp.run(transport="stdio")

プロンプトを作成するには「@mcp.prompt」アノテーションをメソッドに付与します。

Copilotから利用

Copilotに「/」を入力すると、利用可能なプロンプトが表示されます。その中に「mpc.MCPサーバー名.メソッド名」というものがあるので、それをクリックします。

すると画面上部に入力欄が表示されるので、テーブル名を入力します。

入力するとチャット欄にプロンプトが自動的に反映されます。

表示名の変更

デフォルトの MCP サーバー名やメソッド名では分かりづらい場合、表示される名前を変更できます。

サーバー名は「mcp.jsonファイル」を直接編集して変更可能です(testがサーバー名になります)。

{
	"servers": {
		"test": {
			"type": "stdio",
			"command": "uv",
			"args": [
				"run",
				"--directory",
				"/home/dev/projects/python-mcp",
				"main.py"
			]
		}
	},
	"inputs": []
}

メソッド名の代わりに任意の名前を表示させたい場合は、@mcp.promptname を指定します。

@mcp.prompt(title="クラス生成",name="generateClass")

まとめ

MCPサーバーにプロンプトを定義することで、毎回長い入力を手動で書く必要がなくなり、効率的にCopilotを活用できるようになります。
@mcp.prompt アノテーションを使って簡単にプロンプトを追加でき、サーバー名やメソッド名も変更可能です。特に業務でよく使う定型的な指示をまとめておけば、開発の生産性が大幅に向上するでしょう。

コメント