mcpField
C
Chain Of Recursive Thoughts (cort) Mcp Server

Chain Of Recursive Thoughts (cort) Mcp Server

ローカル
pypi.orgAI・エージェント576 週間前に更新

Chain Of Recursive Thoughts (cort) Mcp Server について

CoRT MCP Serverは、Chain-of-Recursive-Thoughtsの手法をMCPクライアントに提供し、回答候補の生成と評価を反復します。単一モデルと複数LLMを使う方式があり、簡潔な出力や回答履歴を含むツールを備えています。

主な機能

  1. 01回答候補の反復生成と評価
  2. 02プロバイダーをまたぐ複数LLM推論
  3. 03簡潔・詳細・複数LLMのツール
  4. 04推論説明を求める評価プロンプト

活用シーン

  1. 01プロンプトへの回答候補の比較
  2. 02複数LLMによる代替案の検討

MCP 対応

簡潔版、詳細版、複数LLM版、新評価版などのCoRTツールをMCPクライアントに公開します。モデル呼び出しにはOpenRouterとOpenAIのAPIキーを使用します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"cort": {
"command": "uvx",
"args": [
"cort-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"OPENROUTER_API_KEY": "<OPENROUTER_API_KEY>"
}
}
}
}
起動コマンドuvx cort-mcp
設定が必要な環境変数
OPENAI_API_KEYシークレット
OPENROUTER_API_KEYシークレット

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

パッケージ
pypicort-mcp

ツール

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

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

詳細

CoRT MCP サーバー

smithery badge

これは Chain-of-Recursive-Thoughts(CORT)の MCP サーバーです。 元のプロジェクトは以下のとおりです。素晴らしい成果を生み出した作者に心から感謝します。

元のプロジェクト:PhialsBasement/Chain-of-Recursive-Thoughts: AI に繰り返し自分自身と議論させることで、より深く考えさせました。驚くほどうまく機能します。
https://github.com/PhialsBasement/Chain-of-Recursive-Thoughts

リリースノート

0.2.0 LLM リストを更新 0.1.0 初回リリース

機能

  • MCP サーバー経由で CoRT メソッドを利用できます。AI に繰り返し自分自身と議論させることで、より深く考えさせます。驚くほどうまく機能します。

動作確認済み

Roo code / Cline

MCP ホストの設定

タイムアウトは 300 秒を推奨します。(予想よりも時間がかかる場合があります) OPENROUTER_API_KEY が必要です。https://openrouter.ai/

例:ログを無効にする場合
"CoRT-chain-of-recursive-thinking": {
  "command": "pipx",
  "args": ["run", "cort-mcp", "--log=off"],
  "env": {
    "OPENAI_API_KEY": "{apikey}",
    "OPENROUTER_API_KEY": "{apikey}"
  }
}
例:ログを有効にする場合(絶対パスのログファイルを指定する必要があります)
"CoRT-chain-of-recursive-thinking": {
  "command": "pipx",
  "args": ["run", "cort-mcp", "--log=on", "--logfile=/workspace/logs/cort-mcp.log"],
  "env": {
    "OPENAI_API_KEY": "{apikey}",
    "OPENROUTER_API_KEY": "{apikey}"
  }
}
  • --log=off :すべてのログを無効にします(ログは書き込まれません)
  • --log=on --logfile=/absolute/path/to/logfile.log :ログを有効にし、指定した絶対パスにログを書き込みます
  • ログを有効にする場合、両方の引数が必須です。どちらか一方が指定されていない場合、パスが絶対パスでない場合、または無効な値が指定された場合、サーバーはエラーで終了します。

注:

  • ログを有効にすると、ログは指定された絶対パスにのみ書き込まれます。相対パスを指定した場合や、--logfile を省略した場合はエラーになります。
  • ログを無効にすると、ログは出力されません。
  • 必須の引数が指定されていないか無効な場合、サーバーは起動せず、エラーメッセージを出力します。
  • ログファイルは MCP サーバープロセスからアクセスでき、書き込み可能である必要があります。
  • このサーバーの実行に問題がある場合は、古いバージョンの cort-mcp がキャッシュされていることが原因かもしれません。以下の設定で cort-mcp の最新バージョン(x.y.z を最新バージョンに置き換えてください)を指定して実行してみてください。
"CoRT-chain-of-recursive-thinking": {
  "command": "pipx",
  "args": ["run", "cort-mcp==x.y.z", "--log=off"],
  "env": {
    "OPENAI_API_KEY": "{apikey}",
    "OPENROUTER_API_KEY": "{apikey}"
  }
}

利用可能なツール

  • {toolname}.simple 詳細は含めず、選択された最終案のみを出力します。
  • {toolname}.details LLM の応答履歴の詳細を含めます。
  • {toolname}.mixed.llm 複数 LLM による推論です。
  • {toolname}.neweval 新しい評価プロンプトです。

以下の詳細を確認してください。

CoRT とは?

flowchart TB
    Start[User query] --> DetermineRounds[AI determine thinking rounds]
    DetermineRounds -->|determine_thinking_rounds 1-5 rounds| InitialResponse[Initial response\ntemperature=0.7]

    InitialResponse --> Round1[Starting round1]

    subgraph "Round 1"
        Round1 --> R1A1[Create alternative 1 temperature=0.7]
        Round1 --> R1A2[Create alternative 2 temperature=0.8]
        Round1 --> R1A3[Create alternative 3 temperature=0.9]

        InitialResponse & R1A1 & R1A2 & R1A3 --> R1Eval[Evaluation temperature=0.2]
        R1Eval --> R1Best[Round 1 best response]
    end

    R1Best --> Round2[Starting round2]

    subgraph "Round 2"
        Round2 --> R2A1[Create alternative 1 temperature=0.7]
        Round2 --> R2A2[Create alternative 2 temperature=0.8]
        Round2 --> R2A3[Create alternative 3 temperature=0.9]

        R1Best & R2A1 & R2A2 & R2A3 --> R2Eval[Evaluation temperature=0.2]
        R2Eval --> R2Best[Round 2 best response]
    end

    R2Best --> Remaining[Remaining rounds Repeat the same process]
    Remaining --> FinalBest[Final round best response]

    FinalBest --> FinalResponse[Final response]

元の実装からの主な機能強化

元の CoRT の手法から、いくつかの機能強化を行っています。

  1. 複数 LLM による推論:各案は、異なる LLM(モデル+プロバイダー)によってランダムに生成されます。
  2. 評価の強化:AI に推論の説明を求めるプロンプトを追加し、評価プロンプトを更新しました。(元のプロンプトはツールで利用できます)
複数 LLM による推論

概要: 従来の CoRT の思考フローに、「各案について異なる LLM(モデル+プロバイダー)をランダムに選択する」という探索戦略を加えた新しいツールです。 これにより、多様なモデルの知識やアイデアを最大限に活用し、より幅広い選択肢から最適な解決策を選べるようになります。

  • この機能は mixed llm ツールで利用できます。
LLM のリスト
  • ユーザー体験を向上させるため、比較的軽量で高速なモデルを選択しています。
MIXED_LLM_LIST = [
    {"provider": "openai", "model": "gpt-4.1-nano"},
    {"provider": "openrouter", "model": "meta-llama/llama-4-scout:free"},
    {"provider": "openrouter", "model": "google/gemini-2.0-flash-exp:free"},
    {"provider": "openrouter", "model": "mistralai/mistral-small-3.1-24b-instruct:free"},
    {"provider": "openrouter", "model": "meta-llama/llama-3.2-3b-instruct:free"},
    {"provider": "openrouter", "model": "thudm/glm-4-9b:free"},
]
mixed LLM ツールの処理
  • 各案について、上記リストから LLM(モデル+プロバイダー)を 1 つランダムに選択します
  • 生成された各案について、「使用したモデルとプロバイダー」を必ずログに記録します
  • 詳細モードでは、「各案で使用したモデルとプロバイダー」を応答履歴の情報に明示的に含めます

評価の強化

概要: 評価プロンプトをより充実したものに変更しました。(元のプロンプトはツールで利用できます) AI に推論の説明を求める {toolname}.neweval のプロンプトを使用してください。

元のプロンプト
f"""Original message: {prompt}
Evaluate these responses and choose the best one:
Current best: {current_best}
Alternatives:
{chr(10).join([f"{i+1}. {alt}" for i, alt in enumerate(alternatives)])}
Which response best addresses the original message? Consider accuracy, clarity, and completeness.
First, respond with ONLY 'current' or a number (1-{len(alternatives)}).
Then on a new line, explain your choice in one sentence."""
強化されたプロンプト
f""" Original message: {prompt}
You are an expert evaluator tasked with selecting the response that best fulfills the user's true needs, considering multiple perspectives.
Current best: {current_best}
Alternatives: {chr(10).join([f"{i+1}. {alt}" for i, alt in enumerate(alternatives)])}
Please follow this evaluation process:
Intent Analysis: What is the user REALLY seeking? What underlying needs might be present beyond the surface question?
Context Consideration: What possible situations or backgrounds could this question arise from?
Diversity Assessment: Does the response consider different viewpoints or possible interpretations?
Practicality Evaluation: How useful would the response be in the user's real-world context?
Consistency Check: Is the response internally consistent and logically coherent?
For each response (including the current best):
Does it solve the user's TRUE problem?
Does it balance accuracy and usefulness?
Does it avoid unnecessary assumptions or biases?
Is it flexible enough to apply in various contexts or situations?
Does it account for exceptions or special cases?
After completing your evaluation:
Indicate your choice with ONLY 'current' or a number (1-{len(alternatives)}).
On the next line, explain specifically why this response best meets the user's true needs. """
パラメーターの指定とフォールバック処理

この API は、指定された provider と model のパラメーターに基づいて実際に使用するモデルを決定し、エラーが発生した場合はフォールバック処理を行います。

  1. プロバイダー(provider)の解決

    • 未指定の場合:デフォルトのプロバイダーとして openrouter が使用されます。
    • 無効な値(openai または openrouter 以外)が指定された場合:デフォルトのプロバイダー openrouter にフォールバックします。
  2. モデル(model)の解決

    • 未指定の場合:
      • 解決されたプロバイダーが openrouter の場合:デフォルトモデル mistralai/mistral-small-3.1-24b-instruct:free が使用されます。
      • 解決されたプロバイダーが openai の場合:デフォルトの OpenAI モデルが使用されます。
    • 指定されている場合(有効なプロバイダーの場合):
      • 指定されたモデル名が、解決されたプロバイダーでそのまま使用されます。
      • 重要:この段階では、指定されたモデル名がそのプロバイダーで実際に利用できるかどうかは検証されません。
  3. API 呼び出しとエラー時のフォールバック

    • 上記のルールに基づいて解決されたプロバイダーとモデルの組み合わせで、まず API 呼び出しが試行されます。
    • API 呼び出し中にエラーが発生した場合(例:指定されたモデルがそのプロバイダーで利用できない、API キーの認証エラーなど):
      • 条件 1:最初に試行した呼び出しのプロバイダーが openai ではないこと。
      • 条件 2:システムで環境変数 OPENAI_API_KEY が設定されていること。
      • 上記の両方の条件を満たす場合、システムは openai プロバイダーのデフォルトモデルを使用して処理を自動的に再試行します(これがフォールバック処理です)。
      • いずれか一方、または両方の条件を満たさない場合(例:最初の試行で openai を使用した場合、または OPENAI_API_KEY が設定されていない場合)、最初のエラーが最終結果として返され、この種類のフォールバックは行われません。

環境変数に関する注意:

  • openrouter を使用するには OPENROUTER_API_KEY が必要です。
  • openai を使用する場合、または上記のフォールバック機能を利用する場合は OPENAI_API_KEY が必要です。
  • 対応する API キーが設定されていない場合、API 呼び出しは失敗します(フォールバック条件によっては OpenAI へのフォールバックも失敗します)。

ライセンス

MIT

思いきり使ってください

コメント

MCP は初めてですか?

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

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