mcpField
P
Promptheus

Promptheus

ローカル
github.comAI・エージェント172 週間前に更新

Promptheus について

Promptheus は、適応型の質問と反復的な編集でプロンプトを改善します。コマンドライン、Web UI、Python ライブラリ、MCP サーバーを備え、複数の AI プロバイダーに対応し、プロンプト履歴を再利用できます。

主な機能

  1. 01適応型の確認質問
  2. 02対話によるプロンプト改善
  3. 03プロンプトの部分的な修正
  4. 04複数の AI プロバイダーに対応
  5. 05プロンプト履歴の保存と再利用
  6. 06コマンドライン、Web UI、Python ライブラリ

活用シーン

  1. 01コンテンツ生成プロンプトの要件を明確にする
  2. 02コードレビュー用プロンプトを改善する
  3. 03既存のプロンプトを短く修正する
  4. 04シェルパイプラインでプロンプトを改善する

MCP 対応

MCP サーバーはプロンプトの改善と部分修正に加え、モデルやプロバイダーの確認、設定と接続の検証を行うツールを公開します。改善時に確認質問を返し、クライアント側で処理できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"Promptheus": {
"command": "uvx",
"args": [
"promptheus"
],
"env": {
"GOOGLE_API_KEY": "<GOOGLE_API_KEY>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"GROQ_API_KEY": "<GROQ_API_KEY>",
"QWEN_API_KEY": "<QWEN_API_KEY>",
"GLM_API_KEY": "<GLM_API_KEY>",
"PROMPTHEUS_PROVIDER": "<PROMPTHEUS_PROVIDER>",
"PROMPTHEUS_MODEL": "<PROMPTHEUS_MODEL>"
}
}
}
}
起動コマンドuvx promptheus
設定が必要な環境変数
GOOGLE_API_KEYシークレットGoogle Gemini API key (optional, at least one provider required)
ANTHROPIC_API_KEYシークレットAnthropic Claude API key (optional, at least one provider required)
OPENAI_API_KEYシークレットOpenAI API key (optional, at least one provider required)
GROQ_API_KEYシークレットGroq API key (optional, at least one provider required)
QWEN_API_KEYシークレットAlibaba Qwen API key (optional, at least one provider required)
GLM_API_KEYシークレットZhipu GLM API key (optional, at least one provider required)
PROMPTHEUS_PROVIDEROverride provider selection (gemini, anthropic, openai, groq, qwen, glm)
PROMPTHEUS_MODELOverride model selection for the chosen provider

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypipromptheus0.3.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Promptheus

LLM 向けのプロンプトを洗練・最適化

Python Version PyPI Version Release Version License: MIT GitHub Stars

Deploy GitHub Pages Docker Build & Test Publish Python Package

クイックスタート

pip install promptheus
# Interactive session
promptheus

# Single prompt
promptheus "Write a technical blog post"

# Skip clarifying questions
promptheus -s "Explain Kubernetes"

# Use web UI
promptheus web
Python ライブラリの使用方法
from promptheus import refine_prompt

result = refine_prompt("Write a technical blog post", skip_questions=True)
print(result["refined_prompt"])

すでに非同期アプリケーション(例:FastAPI)を使用している場合は、同期ヘルパーの代わりに refine_prompt_async を呼び出してください。

Promptheus とは?

Promptheus はプロンプトを分析し、次の機能を使って洗練します。

  • 適応型の質問:入力が必要な情報を賢く判断します
  • マルチプロバイダー対応:Google、OpenAI、Anthropic、Groq、Qwen などで動作します
  • 対話型の洗練:自然な会話を通じて、出力を段階的に改善します
  • セッション履歴:過去のプロンプトを自動的に記録し、再利用します
  • CLI とウェブ UI:ターミナルまたはブラウザーから利用できます

対応プロバイダー

プロバイダーモデル設定
Google Geminigemini-2.0-flash, gemini-1.5-proAPI キー
Anthropic Claudeclaude-3-5-sonnet, claude-3-opusコンソール
OpenAIgpt-4o, gpt-4-turboAPI キー
Groqllama-3.3-70b, mixtral-8x7bコンソール
Alibaba Qwenqwen-max, qwen-plusDashScope
Zhipu GLMglm-4-plus, glm-4-airコンソール
OpenRouteropenrouter/auto(自動ルーティング)ダッシュボード

Promptheus の OpenRouter 統合は、openrouter/auto ルーティングモデルを中心に最適化されています。

  • モデル一覧は意図的に最小限にしています。Promptheus では、OpenRouter アカウントの全モデルカタログは表示されません。
  • API キーでアクセスできる場合は、OPENROUTER_MODEL または --model を使って、具体的なモデルを手動で指定することもできます。

主な機能

🧠 適応型タスク検出 タスクに洗練が必要か、直接最適化すべきかを自動的に検出します

⚡ 対話型の洗練 的を絞った質問で要件を引き出し、出力を改善します

📝 パイプライン統合 Unix パイプラインやシェルスクリプトでシームレスに動作します

🔄 セッション管理 過去のプロンプトを自動的に記録、読み込み、再利用します

📊 テレメトリーと分析 分析に役立てるため、利用状況とパフォーマンスの匿名メトリクスを追跡します(ローカルストレージのみ。無効化できます)

🌐 ウェブインターフェース 対話型のプロンプト洗練や履歴管理に使える、美しい UI を提供します

設定

少なくとも 1 つのプロバイダー API キーを含む .env ファイルを作成します。

GOOGLE_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here

または、対話型セットアップを実行します。

promptheus auth

例

コンテンツ生成

promptheus "Write a blog post about async programming"
# System asks: audience, tone, length, key topics
# Generates refined prompt with all specifications

コード分析

promptheus -s "Review this function for security issues"
# Skips questions, applies direct enhancement

対話型セッション

promptheus
/set provider anthropic
/set model claude-3-5-sonnet
# Process multiple prompts, switch providers/models with /commands

パイプライン統合

echo "Create a REST API schema" | promptheus | jq '.refined_prompt'
cat prompts.txt | while read line; do promptheus "$line"; done

テストと例:適応型タスク検出(分析と生成)を実演するテスト用プロンプトについては、sample_prompts.md を参照してください。

テレメトリーと分析

# View telemetry summary (anonymous metrics about usage and performance)
promptheus telemetry summary

# Disable telemetry if desired
export PROMPTHEUS_TELEMETRY_ENABLED=0

# Customize history storage location
export PROMPTHEUS_HISTORY_DIR=~/.custom_promptheus

MCP サーバー

Promptheus には、プロンプトの改善機能を MCP 対応クライアントと統合するための標準化されたツールとして公開する Model Context Protocol(MCP)サーバーが含まれています。

MCP サーバーの機能

Promptheus MCP サーバーは、次の機能を提供します。

  • Q&A によるプロンプトの改善:適応的な質問を通じた、インテリジェントなプロンプトの最適化
  • プロンプトの微調整:既存のプロンプトに対する的確な変更
  • モデル/プロバイダーの調査:利用可能な AI プロバイダーの検出と検証
  • 環境の検証:設定の確認と接続テスト
MCP サーバーの起動
# Start the MCP server
promptheus mcp

# Or run directly with Python
python -m promptheus.mcp_server

前提条件:

  • MCP パッケージがインストールされていること:pip install mcp(requirements.txt に含まれています)
  • 少なくとも 1 つのプロバイダー API キーが設定されていること(設定を参照)
利用可能な MCP ツール
refine_prompt

必要に応じて確認質問を行い、インテリジェントにプロンプトを改善します。

入力:

  • prompt(必須):改善する最初のプロンプト
  • answers(任意):質問 ID と回答を対応付ける辞書 {q0: "answer", q1: "answer"}
  • answer_mapping(任意):質問 ID と元の質問文を対応付けます
  • provider(任意):プロバイダーを上書きします(例:"google"、"openai")
  • model(任意):モデル名を上書きします

レスポンスタイプ:

  • {"type": "refined", "prompt": "...", "next_action": "..."}:改善されたプロンプトを含む成功レスポンス
  • {"type": "clarification_needed", "questions_for_ask_user_question": [...], "answer_mapping": {...}}:質問が必要です
  • {"type": "error", "error_type": "...", "message": "..."}:エラーが発生しました
tweak_prompt

既存のプロンプトに的を絞った変更を適用します。

入力:

  • prompt(必須):変更する現在のプロンプト
  • modification(必須):変更内容の説明(例:"短くする")
  • provider、model(任意):プロバイダー/モデルを上書きします

戻り値:

  • {"type": "refined", "prompt": "..."}:変更されたプロンプト
list_models

設定済みのプロバイダーから利用可能なモデルを検出します。

入力:

  • providers(任意):照会するプロバイダー名のリスト
  • limit(任意):プロバイダーごとのモデル数の上限(デフォルト:20)
  • include_nontext(任意):ビジョン/埋め込みモデルを含めます

戻り値:

  • {"type": "success", "providers": {"google": {"available": true, "models": [...]}}}
list_providers

プロバイダーの設定状況を確認します。

戻り値:

  • {"type": "success", "providers": {"google": {"configured": true, "model": "..."}}}
validate_environment

環境設定と API 接続をテストします。

入力:

  • providers(任意):検証する特定のプロバイダー
  • test_connection(任意):実際の API 接続をテストします

戻り値:

  • {"type": "success", "validation": {"google": {"configured": true, "connection_test": "passed"}}}
Q&A によるプロンプト改善ワークフロー

MCP サーバーは、最適なプロンプト改善のための構造化された確認ワークフローをサポートしています。

ステップ 1:最初の改善リクエスト
{
  "tool": "refine_prompt",
  "arguments": {
    "prompt": "Write a blog post about machine learning"
  }
}
ステップ 2:確認レスポンスの処理
{
  "type": "clarification_needed",
  "task_type": "generation",
  "message": "To refine this prompt effectively, I need to ask...",
  "questions_for_ask_user_question": [
    {
      "question": "Who is your target audience?",
      "header": "Q1",
      "multiSelect": false,
      "options": [
        {"label": "Technical professionals", "description": "Technical professionals"},
        {"label": "Business executives", "description": "Business executives"}
      ]
    }
  ],
  "answer_mapping": {
    "q0": "Who is your target audience?"
  }
}
ステップ 3:ユーザーの回答を収集

MCP クライアントの AskUserQuestion ツールを使って提示された質問を行い、回答を質問 ID に対応付けます。

ステップ 4:回答を使った最終的な改善
{
  "tool": "refine_prompt", 
  "arguments": {
    "prompt": "Write a blog post about machine learning",
    "answers": {"q0": "Technical professionals"},
    "answer_mapping": {"q0": "Who is your target audience?"}
  }
}

レスポンス:

{
  "type": "refined",
  "prompt": "Write a comprehensive technical blog post about machine learning fundamentals targeted at software engineers and technical professionals. Include practical code examples and architectural patterns...",
  "next_action": "This refined prompt is now ready to use. If the user asked you to execute/run the prompt, use this refined prompt directly with your own capabilities..."
}
AskUser の統合契約

MCP サーバーは、次の 2 つのモードで動作します。

対話モード(AskUserQuestion を利用できる場合):

  • 注入された AskUserQuestion 関数を介して、確認の質問を自動的に行います
  • 回答の収集後、改善されたプロンプトをすぐに返します
  • 対応クライアント内でシームレスなユーザー体験を実現します

構造化モード(すべてのクライアント向けのフォールバック):

  • 整形された質問を含む clarification_needed レスポンスを返します
  • AskUserQuestion ツールの呼び出しはクライアントが担当します
  • 回答は answer_mapping 辞書を介して対応付けられます

質問の形式: questions_for_ask_user_question 内の各質問には、次の項目が含まれます。

  • question:表示する質問文
  • header:短い識別子(Q1、Q2 など)
  • multiSelect:複数選択オプションの真偽値
  • options:ラジオボタン/チェックボックス形式の質問に使う {label, description} の配列

回答の対応付け:

  • 質問 ID は q0、q1、q2 などのパターンに従います
  • 回答辞書では、これらの ID をキーとして使用します:{"q0": "answer", "q1": "answer"}
  • answer_mapping は、プロバイダーのコンテキストに使う元の質問文を保持します
MCP のトラブルシューティング

MCP パッケージがインストールされていない

Error: The 'mcp' package is not installed. Please install it with 'pip install mcp'.

修正方法: pip install mcp を実行するか、開発用依存関係を含めて Promptheus をインストールします:pip install -e .[dev]

プロバイダーの API キーが不足している

{
  "type": "error",
  "error_type": "ConfigurationError", 
  "message": "No provider configured. Please set API keys in environment."
}

診断方法: list_providers または validate_environment ツールを使って、設定状況を確認します

プロバイダーの設定ミス

{
  "type": "success",
  "providers": {
    "google": {"configured": false, "error": "GOOGLE_API_KEY not found"},
    "openai": {"configured": true, "model": "gpt-4o"}
  }
}

修正方法: .env ファイルまたは環境変数に不足している API キーを設定します

接続テストの失敗

{
  "type": "success", 
  "validation": {
    "google": {
      "configured": true,
      "connection_test": "failed: Authentication error"
    }
  }
}

修正方法: API キーが有効で、必要な権限を持っていることを確認します

ドキュメント全文

クイックリファレンス:promptheus --help

詳細ガイド:

開発

git clone https://github.com/abhichandra21/Promptheus.git
cd Promptheus
pip install -e ".[dev]"
pytest -q

開発の詳細なガイダンスについては、CLAUDE.md を参照してください。

ライセンス

MIT ライセンスの詳細については、LICENSE を参照してください

コントリビューション

コントリビューションを歓迎します!コントリビューションのガイドラインについては、開発ガイド をご覧ください。


ご質問がありますか? イシューを作成 | ライブデモ:promptheus web

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。