Cortex MCP — Multi-Level Reasoning Server について
Cortex MCPは、深さを調整できる構造化されたステートフル推論を必要とするクライアント向けのstdioサーバーです。メモリ内セッションを管理し、推論ツールに加えてプロンプトとリアルタイムのトレースリソースを提供します。
主な機能
- 014段階の推論深度
- 02段階的または一括の推論
- 03セッションの継続とロールバック
- 04構造化された観察と評価
- 05ライブセッションとトレースリソース
活用シーン
- 01指定した深さで問題を検討
- 02推論セッションの継続や修正
- 03複数の思考ステップをまとめて送信
- 04セッションのトレースを確認
MCP 対応
stdioのMCPクライアントに`reasoning_think`ツール、7種類のプロンプト、セッションおよびトレースのリソースを提供します。セッション状態はメモリ内に保持され、プロセスの再起動時に消去されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| level | enum | いいえ | 深度レベル。新しいセッションでは必須です。basic(1~3ステップ、2K予算)、normal(4~8ステップ、8K予算)、high(10~15ステップ、32K予算)、expert(20~25ステップ、128K予算)。basic | normal | high | expert |
| query | string | いいえ | 分析する質問または問題。 |
| runMode | enum | いいえ | "step"(デフォルト)または "run_to_completion"(basic レベルのみ)。step | run_to_completion |
| thought | any | いいえ | 推論テキスト。そのまま保存されます。step モードでは文字列、バッチモードでは string[] です。 |
| sessionId | string | いいえ | 続行するセッションの ID。 |
| evaluation | string | いいえ | 仮説への批評。 |
| hypothesis | string | いいえ | 次に提案するアイデア。 |
| observation | string | いいえ | このステップで判明している事実。 |
| stepSummary | string | いいえ | ステップを一文で要約します。 |
| isConclusion | boolean | いいえ | 最終回答時にセッションを早期終了します。 |
| rollbackToStep | integer | いいえ | ロールバック先の 0 始まりのインデックス。後続の思考は破棄されます。 |
| targetThoughts | integer | いいえ | 正確なステップ数。レベルの範囲内である必要があります。 |
詳細
Cortex MCP
深さレベルを設定でき、セッションベースの状態管理、構造化された思考入力、リアルタイムのトレースリソースを備えた、多段階推論 MCP サーバーです。
概要
Cortex MCP は、状態を保持し、深さを制御できる推論用の stdio 専用 MCP サーバーです。src/index.ts のランタイムエントリーポイントは createServer() を StdioServerTransport に接続し、src/server.ts のサーバー機能では、単一のセッションベース推論エンジンを中心に、ツール、プロンプト、補完、ログ、購読可能なリソースを有効にします。
Inspector で確認された実際の MCP 機能は、1 個のツール、6 個の具体的なリソース、4 個のリソーステンプレート、7 個のプロンプトです。セッションはメモリ内に保存され、MCP リソースとして公開され、プロセスの再起動時に消去されます。
主な機能
reasoning_thinkは、段階的なセッション、run_to_completionによる一括実行、ロールバック、早期結論、構造化されたobservation/hypothesis/evaluation入力に対応します。- エンジンには、
basic、normal、high、expertの 4 段階の深さが組み込まれており、それぞれに上限付きの思考範囲とトークン予算が設定されています。 - プロンプトヘルパーは、
reasoning.basic、reasoning.normal、reasoning.high、reasoning.expert、reasoning.continue、reasoning.retry、get-helpを提供します。 - リソースエンドポイントは、内部ドキュメントに加え、実行中のセッション一覧、セッションごとの JSON 表示、完全な Markdown トレース、個々の思考ドキュメントを公開します。
completable()とリソーステンプレートの補完フックを通じて、深さレベル、セッション ID、思考名の補完を利用できます。
要件
- ローカルで
npxまたはnpmを使用する場合は、Node.js>=24が必要です。 stdioトランスポートに対応した MCP クライアントが必要です。- 任意:
Dockerfileで定義されたコンテナイメージをビルドまたは実行する場合は、Docker が必要です。
クイックスタート
次の標準的な MCP クライアント設定を使用します。
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
クライアント設定
VS Code にインストール
[](https://insiders.vscode.dev/redirect/mcp/install?name=cortex-mcp&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40j0hanz%2Fcortex-mcp%40latest%22%5D%7D).vscode/mcp.json に追加します:
{
"servers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
または CLI からインストールします:
code --add-mcp '{"name":"cortex-mcp","command":"npx","args":["-y","@j0hanz/cortex-mcp@latest"]}'
詳しくは、VS Code MCP ドキュメントをご覧ください。
VS Code Insiders にインストール
.vscode/mcp.json に追加します:
{
"servers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
または CLI からインストールします:
code-insiders --add-mcp '{"name":"cortex-mcp","command":"npx","args":["-y","@j0hanz/cortex-mcp@latest"]}'
詳しくは、VS Code Insiders MCP ドキュメントをご覧ください。
Cursor にインストール
~/.cursor/mcp.json に追加します:
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳しくは、Cursor MCP ドキュメントをご覧ください。
Visual Studio にインストール
mcp.json (VS integrated) に追加します:
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳しくは、Visual Studio MCP ドキュメントをご覧ください。
Goose にインストール
Goose extension registry に追加します:
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳しくは、Goose MCP ドキュメントをご覧ください。
LM Studio にインストール
LM Studio MCP config に追加します:
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳しくは、LM Studio MCP ドキュメントをご覧ください。
Claude Desktop にインストール
claude_desktop_config.json に追加します:
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳しくは、Claude Desktop MCP ドキュメントをご覧ください。
Claude Code にインストール
Claude Code CLI に追加します:
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
または CLI からインストールします:
claude mcp add cortex-mcp -- npx -y @j0hanz/cortex-mcp@latest
詳しくは、Claude Code MCP ドキュメントをご覧ください。
Windsurf にインストール
~/.codeium/windsurf/mcp_config.json に追加します:
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳しくは、Windsurf MCP ドキュメントをご覧ください。
Amp にインストール
Amp MCP config に追加します:
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
または CLI からインストールします:
amp mcp add cortex-mcp -- npx -y @j0hanz/cortex-mcp@latest
詳しくは、Amp MCP ドキュメントをご覧ください。
Cline にインストール
cline_mcp_settings.json に追加します:
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳細については、Cline MCP ドキュメントをご覧ください。
Codex CLI にインストール
~/.codex/config.yaml or codex CLI に追加します。
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳細については、Codex CLI MCP ドキュメントをご覧ください。
GitHub Copilot にインストール
.vscode/mcp.json に追加します。
{
"servers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳細については、GitHub Copilot MCP ドキュメントをご覧ください。
Warp にインストール
Warp MCP config に追加します。
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳細については、Warp MCP ドキュメントをご覧ください。
Kiro にインストール
.kiro/settings/mcp.json に追加します。
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳細については、Kiro MCP ドキュメントをご覧ください。
Gemini CLI にインストール
~/.gemini/settings.json に追加します。
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳細については、Gemini CLI MCP ドキュメントをご覧ください。
Zed にインストール
~/.config/zed/settings.json に追加します。
{
"context_servers": {
"cortex-mcp": {
"settings": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
}
詳細については、Zed MCP ドキュメントをご覧ください。
Augment にインストール
VS Code settings.json に追加します。
VS Code の
settings.jsonのaugment.advancedの下に追加します。
{
"augment.advanced": {
"mcpServers": [
{
"id": "cortex-mcp",
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
]
}
}
詳細については、Augment MCP ドキュメントをご覧ください。
Roo Code にインストール
Roo Code MCP settings に追加します。
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳細については、Roo Code MCP ドキュメントをご覧ください。
Kilo Code にインストール
Kilo Code MCP settings に追加します。
{
"mcpServers": {
"cortex-mcp": {
"command": "npx",
"args": ["-y", "@j0hanz/cortex-mcp@latest"]
}
}
}
詳細については、Kilo Code MCP ドキュメントをご覧ください。
ユースケース
適切な深さで範囲を限定した推論を開始する
クライアントがプロンプトを起点とするエントリーポイントを求めている場合は、reasoning.basic、reasoning.normal、reasoning.high、reasoning.expert を使用するか、query、level、最初の thought を指定して reasoning_think を直接呼び出します。各応答は、現在のセッション状態と、クライアントが続行する方法を示す summary 文字列を返します。
関連ツール:reasoning_think
関連プロンプト:reasoning.basic、reasoning.normal、reasoning.high、reasoning.expert
アクティブなセッションを続行、再試行、またはバッチ処理する
sessionId を再利用して以前のトレースを続行します。残りの思考入力がすでにある場合は、runMode="run_to_completion" に切り替えるか、続行プロンプトと再試行プロンプトを使用して次の呼び出しペイロードを生成します。ハンドラーは、トレースを修正したり早期に終了したりするための rollbackToStep と isConclusion もサポートしています。
関連ツール:reasoning_think
関連プロンプト:reasoning.continue、reasoning.retry
ツールを再実行せずにライブトレースを確認する
アクティブなセッション一覧は reasoning://sessions、JSON 詳細ビューは reasoning://sessions/{sessionId}、Markdown の書き起こしは reasoning://sessions/{sessionId}/trace、単一の思考は reasoning://sessions/{sessionId}/thoughts/{thoughtName} から読み取れます。これにより、クライアントは次のツール呼び出しとは独立して、進行状況を提示したりセッションを監査したりできます。
関連リソース:reasoning://sessions、reasoning://sessions/{sessionId}、reasoning://sessions/{sessionId}/trace、reasoning://sessions/{sessionId}/thoughts/{thoughtName}
アーキテクチャ
[MCP Client]
|
| stdio
v
[src/index.ts]
createServer()
-> new StdioServerTransport()
-> server.connect(transport)
|
v
[src/server.ts]
McpServer("cortex-mcp")
capabilities:
- tools
- prompts
- completions
- logging
- resources { subscribe: true, listChanged: true }
|
+--> tools/call
| -> reasoning_think
| -> src/tools/reasoning-think.ts
| -> ReasoningThinkInputSchema / ReasoningThinkToolOutputSchema
| -> src/engine/reasoner.ts
| -> SessionStore
|
+--> prompts/get
| -> src/prompts/index.ts
|
+--> resources/read
| -> src/resources/index.ts
| -> internal://* and reasoning://sessions/*
|
+--> notifications
-> logging messages
-> resources/list_changed
-> resources/updated
-> notifications/progress
リクエストのライフサイクル
[Client] -- initialize --> [Server]
[Server] -- serverInfo + capabilities --> [Client]
[Client] -- notifications/initialized --> [Server]
[Client] -- tools/call {name: "reasoning_think", arguments} --> [Handler]
[Handler] -- validate args --> [Reasoner + SessionStore]
[Reasoner] -- progress/resource events --> [Server notifications]
[Handler] -- structuredContent + optional trace resource --> [Client]
MCP インターフェース
ツール
reasoning_think
複数ステップのセッションを作成・継続するための状態を保持する推論ツールです。1 ステップずつの対話的な呼び出し、run_to_completion によるバッチ処理、観察・仮説・評価の構造化された入力、ロールバック、早期終了に対応し、構造化されたセッション状態を返します。
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | no | 分析する質問または問題です。 |
level | string | no | 深さのレベルです。新しいセッションでは必須です。basic(1~3 ステップ、2K の予算)、normal(4~8 ステップ、8K の予算)、high(10~15 ステップ、32K の予算)、expert(20~25 ステップ、128K の予算)。 |
targetThoughts | integer | no | 正確なステップ数です。レベルの範囲内である必要があります。 |
sessionId | string | no | 継続するセッションの ID です。 |
runMode | string | no | "step"(デフォルト)または "run_to_completion" です。 |
thought | any | no | 推論テキストです。そのまま保存されます。ステップモードでは文字列、バッチモードでは string[] です。 |
isConclusion | boolean | no | 最終回答でセッションを早期終了します。 |
rollbackToStep | integer | no | ロールバック先の 0 始まりのインデックスです。それ以降の思考は破棄されます。 |
stepSummary | string | no | ステップの要約を 1 文で記述します。 |
observation | string | no | このステップで既知の事実です。 |
hypothesis | string | no | 次のアイデアとして提案する内容です。 |
evaluation | string | no | 仮説への評価です。 |
データフロー
1. [Client] -- tools/call {name: "reasoning_think", arguments} --> [Server]
Transport: stdio
2. [Server] -- dispatch("reasoning_think") --> [Handler: src/tools/reasoning-think.ts]
3. [Handler] -- validate(ReasoningThinkInputSchema) --> [src/engine/reasoner.ts]
4. [Reasoner] -- create/update session --> [src/engine/session-store.ts]
5. [Handler] -- structuredContent + optional embedded trace resource --> [Client]
| リソース | URI またはテンプレート | MIME タイプ | 説明 |
|---|---|---|---|
server-instructions | internal://instructions | text/markdown | MCP サーバーの使用方法に関する説明です。 |
server-config | internal://server-config | application/json | 推論サーバーの実行時制限とレベル設定です。 |
tool-catalog | internal://tool-catalog | text/markdown | ツールリファレンス:モデル、パラメーター、出力、データフローです。 |
tool-info | internal://tool-info/{toolName} | text/markdown | ツールごとの契約の詳細です。 |
tool-info-reasoning_think | internal://tool-info/reasoning_think | text/markdown | reasoning_think の契約の詳細です。 |
workflows | internal://workflows | text/markdown | 推奨されるワークフローとツールの順序です。 |
reasoning.sessions | reasoning://sessions | application/json | アクティブな推論セッションの一覧と概要です。セッションの進行に合わせてリアルタイムで更新されます。 |
reasoning.session | reasoning://sessions/{sessionId} | application/json | 個々の推論セッションの詳細ビューです。すべての思考とメタデータが含まれます。 |
reasoning.trace | reasoning://sessions/{sessionId}/trace | text/markdown | 推論セッションの Markdown トレース(全内容)です。 |
reasoning.thought | reasoning://sessions/{sessionId}/thoughts/{thoughtName} | text/markdown | 個々の思考の Markdown コンテンツです(例:Thought-1)。 |
プロンプト
| プロンプト | 引数 | 説明 |
|---|---|---|
get-help | なし | サーバーの使用方法に関する説明を返します。 |
reasoning.basic | query 必須、targetThoughts 任意 | 基本レベルの推論(1~3 個の思考)。 |
reasoning.normal | query 必須、targetThoughts 任意 | 通常レベルの推論(4~8 個の思考)。 |
reasoning.high | query 必須、targetThoughts 任意 | 高度な推論(10~15 個の思考)。 |
reasoning.expert | query 必須、targetThoughts 任意 | エキスパートレベルの推論(20~25 個の思考)。 |
reasoning.continue | sessionId 必須、query 任意、level 任意 | 既存のセッションを続行します。任意で追加のクエリを指定できます。 |
reasoning.retry | query 必須、level 必須、targetThoughts 任意 | パラメーターを変更して、失敗した推論タスクを再試行します。 |
MCP の機能
| 機能 | ステータス | 根拠 |
|---|---|---|
tools | 確認済み | src/server.ts:203-205, src/tools/reasoning-think.ts:479 |
prompts | 確認済み | src/server.ts:205, src/prompts/index.ts:201 |
completions | 確認済み | src/server.ts:207, src/prompts/index.ts:249, src/resources/index.ts:375 |
logging | 確認済み | src/server.ts:204, src/server.ts:98 |
resources.subscribe | 確認済み | src/server.ts:208, src/server.ts:121 |
resources.listChanged | 確認済み | src/server.ts:208, src/server.ts:114 |
progress notifications | 確認済み | src/lib/mcp.ts:71, src/tools/reasoning-think.ts:424 |
ツールのアノテーション
| アノテーション | 値 | 根拠 |
|---|---|---|
readOnlyHint | false | src/tools/reasoning-think.ts:500 |
destructiveHint | false | src/tools/reasoning-think.ts:502 |
openWorldHint | false | src/tools/reasoning-think.ts:503 |
idempotentHint | false | src/tools/reasoning-think.ts:501 |
構造化出力
reasoning_thinkはoutputSchemaを宣言し、structuredContentを返します。トレースが十分に小さい場合は、埋め込みトレースリソースも含まれます。根拠:src/tools/reasoning-think.ts:498、src/lib/mcp.ts:97-114。
設定
| 変数 | デフォルト | 必須 | 根拠 |
|---|---|---|---|
CORTEX_SESSION_TTL_MS | 1800000(30 分) | いいえ | src/engine/reasoner.ts:22, src/engine/session-store.ts:19 |
CORTEX_MAX_SESSIONS | 100 | いいえ | src/engine/reasoner.ts:23, src/engine/session-store.ts:20 |
CORTEX_MAX_TOTAL_TOKENS | 2000000 | いいえ | src/engine/reasoner.ts:24, src/engine/session-store.ts:21 |
CORTEX_MAX_ACTIVE_REASONING_TASKS | 32 | いいえ | src/engine/config.ts:41-44 |
CORTEX_REDACT_TRACE_CONTENT | false | いいえ | src/engine/config.ts:21 |
メモ
ソースでは、HTTP のホスト/ポート設定は定義されていません。環境関連で確認できるその他の情報は、Docker イメージ内の
NODE_ENV=productionと、ローカルのdev:runスクリプト内の--env-file=.envのみです。
セキュリティ
| 制御 | ステータス | 根拠 |
|---|---|---|
| 入力検証 | 確認済み | src/schemas/inputs.ts:13, src/schemas/outputs.ts:46, src/prompts/index.ts:207 |
| stdout に安全なログ出力の代替処理 | 確認済み | src/server.ts:98, src/server.ts:145 |
| メインスレッドのみで実行 | 確認済み | src/index.ts:15-25 |
| 非 root のコンテナユーザー | 確認済み | Dockerfile:37 |
メモ
サーバーは stdio トランスポートのみを公開するため、現在のソースには認証、OAuth、HTTP オリジンチェック、レート制限の制御は実装されていません。
開発
| スクリプト | コマンド | 目的 |
|---|---|---|
dev | tsc --watch --preserveWatchOutput | 開発中にソースを監視してコンパイルします。 |
dev:run | node --env-file=.env --watch dist/index.js | オプションのローカル .env ファイルを使って、ビルド済みサーバーを監視モードで実行します。 |
build | node scripts/tasks.mjs build | dist をクリーンアップし、TypeScript をコンパイルして、アセットをコピーし、エントリーポイントを実行可能にします。 |
lint | eslint . | リポジトリ全体に対して ESLint を実行します。 |
type-check | node scripts/tasks.mjs type-check | ソースとテストの TypeScript チェックを並行して実行します。 |
test | node scripts/tasks.mjs test | 設定済みのローダーを使って TypeScript のテストスイートを実行します。 |
test:dist | node scripts/tasks.mjs test:dist | 先に再ビルドしてから、ビルド済みの出力に対してテストを実行します。 |
test:fast | node --test --import tsx/esm src/__tests__/**/*.test.ts node-tests/**/*.test.ts | タスクラッパーを使わず、高速な直接テストコマンドを実行します。 |
format | prettier --write . | リポジトリをフォーマットします。 |
inspector | npm run build && npx -y @modelcontextprotocol/inspector node dist/index.js | サーバーをビルドし、MCP Inspector で開きます。 |
prepublishOnly | npm run lint && npm run type-check && npm run build | 公開前にリリースチェックを実施します。 |
診断、カバレッジ、アセットのコピー、knip 用の追加ヘルパースクリプトは package.json で定義されています。
ビルドとリリース
.github/workflows/release.ymlはpackage.jsonとserver.jsonのバージョンを更新し、タグ付けと GitHub リリースの作成前にnpm run lint、npm run type-check、npm run test、npm run buildを実行します。- 同じワークフローで Trusted Publishing を使ってパッケージを npm に公開し、
mcp-publisherで MCP Registry に公開し、マルチアーキテクチャの Docker イメージをghcr.ioにプッシュします。 Dockerfileはマルチステージの Node 24 Alpine ビルドを使用し、開発用依存関係を削除してから、リリース済みコンテナをmcpユーザーとして実行します。
トラブルシューティング
- セッションはメモリ上に保持され、デフォルトでは 30 分後に期限切れになります。
E_SESSION_NOT_FOUNDを受け取った場合は、新しいセッションを開始するか、CORTEX_SESSION_TTL_MSを大きくしてください。 runMode="run_to_completion"では、残りのステップをカバーするのに十分な数のthoughtエントリーが必要です。各ステップの後にサーバーから応答を返す場合は、デフォルトのstepモードを使用してください。- stdio トランスポートでは、サーバープロセスの周囲に独自の stdout ロギングを追加しないでください。このサーバーは MCP ロギング経由でログを出力し、失敗時には
stderrにフォールバックします。
クレジット
| 依存関係 | レジストリ |
|---|---|
| @modelcontextprotocol/sdk | npm |
| zod | npm |
コントリビューションとライセンス
- ライセンス:MIT
- プルリクエストによるコントリビューションを歓迎します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。