user-prompt について
user-promptは、タスクの途中でユーザーへの確認が必要なAIエージェント向けのMCPサーバーです。`user_prompt`ツールは専用のターミナルウィンドウで質問を表示し、回答を構造化されたQ&A形式で返します。タイムアウトやウィンドウ終了も処理します。
主な機能
- 011回の呼び出しで複数の質問
- 02専用ターミナルウィンドウで質問を表示
- 03構造化されたQ&A形式で回答を返却
- 0410分間の応答タイムアウト処理
- 05ウィンドウ終了時にエージェントへ通知
活用シーン
- 01エージェントの作業中に曖昧な要件を確認
- 02予期しないエラー後にユーザーの判断を得る
- 03ワークフローの続行前に設計上の選択を確認
MCP 対応
stdioを通じて、MCPクライアントに`user_prompt`ツールを公開します。クライアントがサーバープロセスを起動し、ツールはユーザーの回答をエージェントに返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
User Prompt MCP Server
mcp-name: io.github.Jacob-J-Thomas/user-prompt
AI エージェントがポップアップのターミナルウィンドウを通じて、タスクの途中でユーザーに確認の質問をできるようにする Model Context Protocol (MCP) サーバーです。.NET 8 と C# で構築されています。
問題点
Claude Code、IDE のコパイロット、カスタムのエージェント型ワークフローなど、長時間実行される AI エージェントは、人間の入力を必要とする状況によく遭遇します。たとえば、要件が曖昧な場合、予期しないエラーが発生した場合、複数の進め方がある設計上の判断が必要な場合などです。質問する仕組みがなければ、エージェントは推測する(多くの場合、誤った推測です)か、完全に停止してユーザーが気づくのを待つことになります。
解決策
この MCP サーバーは、AI エージェントが実行中の任意の時点で呼び出せる単一のツール、user_prompt を公開します。呼び出されると、ユーザーのマシンに新しいターミナルウィンドウが開き、エージェントからの質問が表示されます。ユーザーが回答を入力すると、その回答がエージェントに直接返され、追加のコンテキストを得たエージェントが作業を続けられます。

特徴
- ポップアップのターミナルプロンプト — 質問はエージェント自身の入出力とは別の専用ウィンドウに表示されます
- 複数の質問に対応 — エージェントは1回の呼び出しで複数の質問をでき、すべて最初に番号付きリストで表示されます
- 構造化された回答 — エージェントが解析しやすいよう、回答は明確に整形されたQ&A形式で返されます
- タイムアウト処理 — 10分間の回答時間が設けられ、タイムアウト時には適切なフォールバックメッセージが表示されます
- ウィンドウの閉鎖を検出 — ユーザーが回答せずにプロンプトを閉じた場合、エージェントに明確な通知が届きます
- Stdio トランスポート — MCP 仕様に従って stdin/stdout 経由で通信し、あらゆる MCP クライアントと互換性があります
前提条件
- Windows:PowerShell 5.1 以降(Windows 10/11 に付属)
- macOS/Linux (未テスト):PowerShell Core (
pwsh) をインストールする必要があります
注: ビルド済みリリースには、ほかの依存関係はありません。.NET Global Tool とソースからのビルドのオプションには、.NET 8.0 SDK 以降が必要です。
クイックスタート
以下の3つのインストール方法から1つ選んでください。各方法では、インストール、クライアント設定、更新までを一通り説明します。
オプション A:GitHub Releases
自己完結型の実行ファイルです。.NET SDK は必要ありません。
1. ダウンロード
お使いのプラットフォームに対応する zip を最新リリースからダウンロードします。
| プラットフォーム | アセット |
|---|---|
| Windows (x64) | UserPromptMcpServer-win-x64.zip |
| macOS (Intel) | UserPromptMcpServer-osx-x64.zip |
| macOS (Apple Silicon) | UserPromptMcpServer-osx-arm64.zip |
| Linux (x64) | UserPromptMcpServer-linux-x64.zip |
2. 展開
次のような恒久的な場所に zip を展開します。
- Windows:
C:\Tools\UserPromptMcpServer\ - macOS / Linux:
~/tools/UserPromptMcpServer/
3. MCP クライアントを設定
Claude Code(CLI):
claude mcp add user-prompt -- "C:\Tools\UserPromptMcpServer\UserPromptMcpServer.exe"
その他のクライアント — コマンドの実行先として実行ファイルを指定します(詳しい例はクライアント設定リファレンスを参照してください)。
{
"command": "C:\\Tools\\UserPromptMcpServer\\UserPromptMcpServer.exe"
}
更新: 新しいリリースをダウンロードし、同じフォルダー内のファイルを置き換えてください。
オプション B:.NET グローバルツール
.NET 8.0 SDK 以降が必要です。ツールは自動的に PATH に追加されます。
1. インストール
dotnet tool install -g UserPrompt
2. MCP クライアントを設定する
Claude Code(CLI):
claude mcp add user-prompt -- user-prompt
その他のクライアント — コマンド名は user-prompt です(完全な例はクライアント設定リファレンスを参照してください)。
{
"command": "user-prompt"
}
更新:
dotnet tool update -g UserPrompt
オプション C:ソースからビルドする
.NET 8.0 SDK 以降が必要です。
git clone https://github.com/Jacob-J-Thomas/user-context-retrieval-mcp-server.git
cd user-context-retrieval-mcp-server
dotnet publish UserPromptMcpServer -c Release -r win-x64 -o ./publish
win-x64を使用するプラットフォームのランタイム識別子(例:osx-arm64、linux-x64)に置き換えてください。
その後、オプション Aと同じ方法でクライアントを設定し、./publish/ 内の実行ファイルを指定します。
クライアント設定リファレンス
このサーバーは stdio トランスポートを使用するため、ポートをリッスンしません。MCP クライアントがサーバープロセスを起動し、stdin/stdout 経由で通信します。以下のコマンド/パスは、選択したインストール方法の値に置き換えてください。
Claude Desktop
claude_desktop_config.json に以下を追加します。
{
"mcpServers": {
"user-prompt": {
"command": "/path/to/UserPromptMcpServer.exe"
}
}
}
設定ファイルの場所:
| プラットフォーム | パス |
|---|---|
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
Cursor
.cursor/mcp.json(プロジェクトレベル)または ~/.cursor/mcp.json(グローバル)に以下を追加します。
{
"mcpServers": {
"user-prompt": {
"command": "/path/to/UserPromptMcpServer.exe"
}
}
}
OpenAI Codex CLI
~/.codex/config.toml(グローバル)または .codex/config.toml(プロジェクトレベル)に以下を追加します。
[mcp_servers.user-prompt]
command = "/path/to/UserPromptMcpServer.exe"
または、CLI から設定します。
codex mcp add user-prompt -- /path/to/UserPromptMcpServer.exe
その他の MCP クライアント
stdio トランスポートをサポートする MCP クライアントであれば、このサーバーを起動できます。実行ファイル、または .NET グローバルツールを使用している場合は user-prompt コマンド名を指定してください。
使用方法
設定すると、user_prompt ツールが AI エージェントから自動的に利用できるようになります。エージェントは独自の判断に基づいて呼び出すタイミングを決定するため、手動での起動は必要ありません。
ツールリファレンス
ツール名: user_prompt
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
reason | string | はい | エージェントがユーザー入力を必要とする理由を明確に説明します。ターミナルウィンドウに目立つように表示されます。 |
questions | string[] | はい | 個別の質問のリストです。番号付きリストとして表示され、ユーザーは順番に回答します。 |
ツール呼び出しの例
{
"name": "user_prompt",
"arguments": {
"reason": "The project has no database configuration and I need to set one up.",
"questions": [
"Which database engine should I use (PostgreSQL, SQLite, SQL Server)?",
"Should I include Entity Framework Core as the ORM?"
]
}
}
応答の例
User responded to 2 question(s):
1. Q: Which database engine should I use (PostgreSQL, SQLite, SQL Server)?
A: PostgreSQL
2. Q: Should I include Entity Framework Core as the ORM?
A: Yes, use EF Core with code-first migrations
ターミナルウィンドウの動作
ツールが呼び出されると、新しい PowerShell ウィンドウが開き、以下が表示されます。
- AI エージェントが入力を必要としていることを示すヘッダー
- 質問する理由としてエージェントが示した 理由
- 番号付きリストにまとめられたすべての 質問
- 番号付きの入力プロンプト(
1>、2>など)。回答ごとに Enter キーを押します - ウィンドウが自動的に閉じる前の確認メッセージ
ユーザーが 10 分以内に応答しない場合、または回答せずにウィンドウを閉じた場合、エージェントは内容を説明するフォールバックメッセージを受け取り、以降の対応を判断できます。
アーキテクチャ
UserPromptMcpServer/
├── UserPromptMcpServer.csproj # Project file (.NET 8)
├── Program.cs # MCP server entry point (stdio transport)
└── Tools/
└── UserPromptTool.cs # Tool implementation
内部での動作
- MCP クライアントが stdin 経由で
tools/callJSON-RPC リクエストを送信します - サーバーが質問を一時的な JSON ファイルに書き込みます
- PowerShell スクリプトが生成され、新しいターミナルウィンドウで起動します
- ユーザーが質問を確認し、順番に回答を入力します
- 回答が応答 JSON ファイルに書き込まれ、ターミナルが閉じます
- サーバーが応答ファイルを読み取り、整形して一時ファイルをクリーンアップし、結果を stdout 経由で返します
すべての一時ファイルは %TEMP%/UserPromptMcpServer/<session-guid>/ 内に作成され、結果にかかわらず各呼び出しの後にクリーンアップされます。
貢献
貢献を歓迎します!変更を確実にマージできるよう、作業を始める前にまず issue を作成し、提案する変更について話し合って承認を得てください。
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/my-feature) - 変更を加え、プロジェクトが問題なくビルドできることを確認します(
dotnet build) - 明確で説明的なメッセージを添えてコミットします
developに対してプルリクエストを作成します
開発環境のセットアップ
git clone https://github.com/Jacob-J-Thomas/user-context-retrieval-mcp-server.git
cd user-context-retrieval-mcp-server
dotnet restore UserPromptMcpServer/UserPromptMcpServer.csproj
dotnet build UserPromptMcpServer/UserPromptMcpServer.csproj
貢献できる分野
- クロスプラットフォーム対応 — macOS と Linux のターミナル起動機能は現在スタブの状態で、テストもされていません
- テストカバレッジ — 現時点ではテストプロジェクトがありません
- 追加の MCP ツール — プロジェクトの範囲を単一のツールより広げる場合
ライセンス
このプロジェクトは Apache License 2.0 の下でライセンスされています。詳細は LICENSE をご覧ください。
作者
Jacob Thomas — @Jacob-J-Thomas
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。