mcpField
N
Natural Context Provider

Natural Context Provider

ローカル
github.com/portel-devAI・エージェント1001 週間前に更新

Natural Context Provider について

Natural Context Provider(NCP)は、多数のツール、スキル、Photonを使うAIクライアント向けのMCPゲートウェイです。必要な機能を都度検索して実行でき、TypeScriptの実行やスケジュール設定にも対応し、初期のツール一覧を絞れます。

主な機能

  1. 01ツール、スキル、Photonのオンデマンド検索
  2. 02統一インターフェースでのツール実行
  3. 03TypeScriptワークフローの実行
  4. 04タスクのスケジュール設定
  5. 05プロジェクト単位のMCP設定

活用シーン

  1. 01多数のMCPから適切なツールを探す
  2. 02複数のツールを組み合わせて自動化する
  3. 03コードタスクを繰り返し実行するよう設定する

MCP 対応

NCPはMCPクライアントに`find`、`run`、有効時の`code`などのゲートウェイツールを公開し、下流のMCP、スキル、Photonを管理します。MCP Apps対応クライアントには、選択されたアプリコールバックツールも提供できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"portel-dev-ncp": {
"command": "npx",
"args": [
"-y",
"@portel/ncp"
],
"env": {
"NCP_DEBUG": "<NCP_DEBUG>",
"NCP_MODE": "<NCP_MODE>",
"NO_COLOR": "<NO_COLOR>"
}
}
}
}
起動コマンドnpx -y @portel/ncp
設定が必要な環境変数
NCP_DEBUGEnable debug logging for troubleshooting
NCP_MODEOperating mode: 'mcp' for AI assistant integration or 'cli' for command-line
NO_COLORDisable colored output in logs and CLI

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

パッケージ
npm@portel/ncp3.0.0

ツール

2

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
descriptionstringいいえ必要な機能を説明する検索クエリ(例:"send email"、"read file")。すべてのツールを一覧表示するには、このパラメーターを完全に省略してください("list all" や空文字列を渡さないでください)。複数のクエリは縦棒で区切ります("gmail | slack")。
limitnumberいいえページあたりの最大結果数(検索時のデフォルト:5、一覧表示時のデフォルト:20)
pagenumberいいえページ番号(デフォルト:1)
confidence_thresholdnumberいいえ最小信頼度 0.0-1.0(デフォルト:0.35)。低いほど結果が増え、高いほど精度が上がります。
depthnumberいいえ詳細レベル:0=名前、1=+説明、2=+パラメーター(デフォルト:2)

詳細

npm version npm downloads GitHub release downloads Latest release License: Elastic-2.0 MCP Compatible

NCP ロゴ

NCP - Natural Context Provider

すべてを支配する1つの MCP

お使いの MCP をさらに強力に。ツールを見つけ、コードモードで実行し、スケジュールを設定し、スキルを検索し、一般的な MCP クライアントを通じて Photon を読み込みます。必要に応じて検出することで、初期状態で表示されるツールを絞り込めます。

関連する Portel プロジェクト: Photon は、TypeScript のメソッドを、エージェントが利用できる信頼性の高い機能に変換します。MCP ツール、埋め込みアプリ UI、CLI コマンド、ウェブルート、スケジュール、ウェブフック、再試行、Beam インターフェースに対応します。NCP はエージェントがツールを発見して操作できるようにし、Photon は開発者がエージェントに信頼されるツールやアプリを構築できるようにします。

💍 NCP とは?

AI が複数の MCP に散在する50以上のツールを使い分ける代わりに、NCP は コードモードでの実行、スケジュール設定、スキルの検出、カスタム Photon を備えた、単一の統一インターフェースを提供します。

ほとんどのホストに表示される NCP の小さなゲートウェイサーフェスは、find、run、および有効な場合は code です。MCP Apps に対応するホストには、埋め込みインターフェースが引き続き動作するよう、選択されたアプリのコールバックツールも提供できます。NCP はアプリツールを選択的に追加し、アプリが名前で呼び出す可能性のあるコールバックの名前は変更せず、競合するアプリグループは省きます。

  • find - 任意のツール、スキル、Photon を検索します。「ファイルを読みたい」→適切なツールを自動的に見つけます
  • code - TypeScript を直接実行します。await github.create_issue({...})(コードモード。デフォルトで有効)
  • run - ツールを個別に実行します(コードモードが無効な場合)

内部では、NCP が50以上のツール、スキル、Photon を管理します。リクエストの振り分け、適切な機能の検出、コードの実行、タスクのスケジュール設定、健全性の管理、レスポンスのキャッシュを行います。

ホストによって、利用できるオプション機能が決まります。NCP は MCP Apps、Skills、Tasks の各機能を通知しますが、拡張機能に対応していないクライアントでも、コアツールと既存のリクエストフローを引き続き利用できます。

NCP の変換フロー

これが重要な理由:

  • AI は「どのツールを使えばいい?」の分析をやめ、実際の作業に取りかかります
  • コードモードでは、AI がツール、スキル、スケジュールを組み合わせた複数ステップの TypeScript ワークフローを作成できます
  • スキルは、キャンバスのデザイン、PDF の操作、ドキュメントの生成など、各分野の専門知識を提供します
  • Photonを使えば、npm で公開せずにカスタムの TypeScript MCP を作成できます
  • 必要に応じた検出により、初期状態で表示されるツールを絞り込めます。実際のコンテキスト使用量は、ホスト、有効化された NCP ツール、接続されたサーバーによって異なります
  • AI が集中できるようになります。 迷うことはありません。

🚀 新機能: プロジェクトレベルの設定に対応。各プロジェクトで独自の MCP を自動的に定義できます

MCP とは? Anthropic の Model Context Protocol を使うと、AI アシスタントを外部のツールやデータソースに接続できます。MCP は、ファイルへのアクセス、ウェブ検索、データベースなどの強力な機能を AI に与える「プラグイン」のようなものです。


📑 クイックナビゲーション


😤 MCP のパラドックス:アシスタントから必死な状態へ

AI アシスタントの能力を高めようと、50 個のツールを与えました。その結果、必死な状態になってしまいました。

  • 選択肢が多すぎて動けない(「read_file と get_file_content のどちらを使えばいい?」)
  • 始める前に疲れ果てる(「どのツールを使うか分析するだけで、コンテキストの上限を使い切ってしまった」)
  • コストが急増する(50 個以上のツールスキーマが、実際の作業を始める前にトークンを消費します)
  • 行動せずに質問する(以前は決断力があったのに、今では絶えず確認を求めます)

🧸 ツールが多すぎるとシステムが機能しなくなる理由

このように考えてみてください。

おもちゃを 1 つ持つ子ども → 大切にし、使いこなし、それで無限に遊びを生み出します
おもちゃを 50 個持つ子ども → すべてを把握できず、圧倒され、まったく遊ばなくなります

あなたの AI は、その子どものようなものです。 MCP はおもちゃです。多ければ常に良いとは限りません。

最も創造的な人々は、無限の選択肢ではなく、制約があることで力を発揮します。「何でもいいから書いて」と言われた詩人は、筆が止まってしまいます。「雨をテーマに俳句を書いて」と言われれば、すぐにひらめきます。

あなたの AI も同じです。 完璧なツールを 1 つ与えれば、すぐに行動できます。ツールを 50 個与えれば、認知的な過負荷になります。NCP は必要なときに必要なツールを見つけられるようにすることで、AI が必要なものを必要なタイミングで使えるようにします。


📊 導入前と導入後の実態

NCP 導入前:必死なアシスタント 😵‍💫

AI アシスタントが 50 個のツールを直接管理する場合:

🤖 AI Assistant Context:
├── Filesystem MCP (12 tools)
├── Database MCP (8 tools)
├── Web Search MCP (6 tools)
├── Email MCP (15 tools)
├── Shell MCP (10 tools)
├── GitHub MCP (20 tools)
└── Slack MCP (9 tools)

💀 Total: 80 tool schemas compete for attention before useful work begins

何が起きるか:

  • AI は、どのようなツールがあるかを理解するだけでコンテキストの 50%以上を消費します
  • どのツールを使うかの分析に 5~8 秒かかります
  • スキーマの混同により、間違ったツールを選ぶことがよくあります
  • 会話の途中でコンテキストの上限に達します
NCP 導入後:エグゼクティブアシスタント ✨

NCP をチーフ・オブ・スタッフとして利用する場合:

🤖 AI Assistant Context:
└── NCP gateway tools → discover and run the tools needed for this request

🎯 Behind the scenes: NCP manages all 80 tools
📈 Tool discovery happens on demand
🎪 AI behavior: Confident, focused, decisive

NCP により、すべての下流ツールのスキーマを事前にホストへ読み込む必要性が軽減されます。節約できるコンテキストの量や応答時間への影響は、ホスト、サーバーカタログ、有効な機能によって異なります。


📋 前提条件

  • Node.js 22 以降(Node.js 24 を推奨。CI では 24 を使用)(こちらからダウンロード)
  • npm(Node.js に同梱)またはパッケージの実行に使用する npx
  • コマンドラインへのアクセス(Mac/Linux ではターミナル、Windows ではコマンドプロンプト/PowerShell)

🚀 インストール

セットアップ手順を確認するには、MCP クライアントを選択してください。

クライアント説明セットアップガイド
Claude DesktopAnthropic の公式デスクトップアプリです。NCP に最適 — ワンクリックの .dxt インストールと自動同期に対応しています→ 詳細ガイド
Claude Codeターミナル中心の AI ワークフローです。インストールしてすぐに使えます!サポート内蔵
VS CodeAgent Mode を備えた GitHub Copilot です。セマンティックなツール検出には NCP をお使いください→ セットアップ
CursorComposer を備えた AI 中心のコードエディターです。人気の VS Code 代替製品です→ セットアップ
WindsurfCascade を備えた Codeium の AI ネイティブ IDE です。VS Code を基盤としています→ セットアップ
ClineMCP に対応した、AI 支援開発向けの VS Code 拡張機能です→ セットアップ
ContinueAgent Mode とローカル LLM に対応した VS Code の AI アシスタントです→ セットアップ
他のクライアントをお探しですか?MCP 対応クライアントとツールの全リストをご覧ください公式 MCP クライアント • Awesome MCP
その他のクライアントnpm を介して、あらゆる MCP 対応クライアントを利用できますクイックスタート ↓

クイックスタート(npm)

上級ユーザー、または上記に記載されていない MCP クライアント向けです。

ステップ 1:NCP をインストール

npm install -g @portel/ncp

ステップ 2:既存の MCP をインポート(任意)

ncp config import  # Paste your config JSON when prompted

ステップ 3:MCP クライアントを設定

クライアントの MCP 設定に追加します。

{
  "mcpServers": {
    "ncp": {
      "command": "ncp"
    }
  }
}

✅ 完了です! AI は NCP を通じてツールを検出し、実行できるようになります。MCP Apps に対応したホストでは、選択したアプリのコールバックツールも受け取れる場合があります。

NCP リストの概要


🧪 試してみる:違いを実際に確認しましょう

AI がどのような体験をしているか試してみませんか?NCP には、人にも使いやすい CLI が用意されています。

🔍 スマートな検出
# Ask like your AI would ask:
ncp find "I need to read a file"
ncp find "help me send an email"
ncp find "search for something online"

NCP Find コマンド

注目ポイント: NCP はキーワードだけでなく、意図を理解します。AI に必要なものと同じです。

📋 エコシステムの概要
# See your complete MCP ecosystem:
ncp list --depth 2

# Get help anytime:
ncp --help

NCP Help コマンド

⚡ 直接テスト
# Test any tool safely:
ncp run filesystem read_file --path "/tmp/test.txt"

これが重要な理由: AI がツールを使うのと同じように、ツールを直接デバッグしてテストできます。

✅ すべてが正常に動作することを確認
# 1. Check NCP is installed correctly
ncp --version

# 2. Confirm your MCPs are imported
ncp list

# 3. Test tool discovery
ncp find "file"

# 4. Test a simple tool (if you have filesystem MCP)
ncp run filesystem read_file --path "/tmp/test.txt" --dry-run

✅ 成功の確認項目:

  • NCP にバージョン番号が表示される
  • ncp list にインポートした MCP が表示される
  • ncp find が関連するツールを返す
  • AI クライアントに NCP のゲートウェイツールが表示される。Apps 対応ホストでは、選択したアプリのコールバックツールも表示される場合があります

💪 ツールから自動化へ:真価を発揮する仕組み

find(ツールを検出)と code(TypeScript を実行)について説明しました。それぞれ単独でも便利ですが、スケジュール機能と組み合わせると、強力な自動化ツールになります。

実例:MCP カンファレンスのスクレイパー

近日公開予定のリリースに向けて、MCP 関連のカンファレンスやワークショップの最新情報を把握しておきたいと考えました。毎日ウェブサイトを手作業で確認する代わりに、Claude に依頼しました。

「MCP カンファレンスを検索して CSV ファイルに保存する、毎日実行のスクレイパーを設定してください」

Claude が行ったこと:

  1. code を使って自動化を作成:

    // Search the web for MCP conferences
    const results = await web.search({
      query: "Model Context Protocol conference 2025"
    });
    
    // Read each result and extract details
    for (const url of results) {
      const content = await web.read({ url });
      // Extract title, deadline, description...
      // Save to ~/.ncp/mcp-conferences.csv
    }
    
  2. schedule を使って自動化:

    ncp schedule create code:run "every day at 9am" \
      --name "MCP Conference Scraper" \
      --catchup-missed
    

自分で設定する方法:

まず、web photon をインストールします(検索と読み取り機能を提供します)。

# Install from the official photons repo
ncp photon add https://raw.githubusercontent.com/portel-dev/photons/main/web.photon.ts

次に Claude にスクレイパーを作成するよう依頼します。web photon が自動的に使用されます。

これで実現すること:

  • 毎朝 9 時にスクレイパーが自動実行されます
  • 新しい MCP イベントを検索し、CSV に追加します
  • 午前 9 時にノートパソコンを閉じていた場合は、開いたときに処理が追いつきます
  • 手作業なしで、最新のカンファレンス情報を確認できます

ポイント: find と code を使うと、AI が自動化を作成できます。schedule を使うと、それを継続的に実行できます。これが強力な仕組みです。


💡 NCP が AI 体験を変える理由

🧠 必死な対応から委任へ
  • 必死なアシスタント:「ツールが50個ある……どれを使えばいいんだろう……考えさせてください……」
  • エグゼクティブアシスタント:「ファイルにアクセスする必要があります。完了です。」(NCP が詳細を処理します)
💰 集中したツール検索
  • NCP を使うと、ホストは必要に応じて、より大規模なツールカタログを検索できます
  • コンテキストへの影響は、ホストと有効になっているツールの範囲によって異なります
🎯 選択肢が多すぎることによる迷いを解消
  • 必死な対応: AI が動けなくなり、間違ったツールを選び、確認を求めます
  • エグゼクティブ: NCP のチーフ・オブ・スタッフが最適なツールを即座に見つけます
🚀 自信を持って実行
  • 導入前: 8秒の遅延、ためらい、「どのツールを使えばいいんだろう?」
  • 導入後: 即座の判断、すぐに実行、迷いなし

つまり: AI は必死なアシスタントからエグゼクティブアシスタントへと変わります。


⚡ 強力な機能

NCP が MCP をどのように強化するか、詳しく説明します。

機能内容メリット
🔍 ツール検索意図とキーワードの両方からツールを検索下流のスキーマを一度にすべて公開せずに、関連するツールを見つけられます
📦 必要に応じた読み込み必要なときに下流のツールを検出初期のツール範囲を絞り込めます。コンテキストの節約効果は構成によって異なります
⏰ スケジュールの自動化cron スケジュールまたは自然言語による時刻指定で、任意のツールを実行AI セッションを開いたままにせずにバックグラウンドで自動化できます
🔌 MCP クライアントのサポートClaude Desktop、Claude Code、Cursor、VS Code など、一般的な MCP クライアントで動作コアとなるゲートウェイ機能は幅広く利用できます。拡張機能のサポートはホストによって異なります
💾 スマートキャッシュツールのスキーマと応答をインテリジェントにキャッシュ重複したインデックス作成をなくし、省エネルギーで高速に動作します

結果: MCP は、AI が効果的に活用できる統合されたインテリジェントなシステムへと変わります。


🛠️ 上級ユーザー向け:手動セットアップ

一から構築したい場合は、MCP を手動で追加してください。

# Add the most popular MCPs:

# AI reasoning and memory
ncp add sequential-thinking npx @modelcontextprotocol/server-sequential-thinking
ncp add memory npx @modelcontextprotocol/server-memory

# File and development tools
ncp add filesystem npx @modelcontextprotocol/server-filesystem ~/Documents  # Path: directory to access
ncp add github npx @modelcontextprotocol/server-github                       # No path needed

# Search and productivity
ncp add brave-search npx @modelcontextprotocol/server-brave-search           # No path needed

NCP 追加コマンド

💡 プロのヒント: Smithery.ai(2,200以上の MCP)または mcp.so を参照して、ニーズに合ったツールを見つけましょう。


🎯 NCP と相性の良い人気の MCP

🔥 ダウンロード数上位
# Community favorites (download counts from Smithery.ai):
ncp add sequential-thinking npx @modelcontextprotocol/server-sequential-thinking  # 5,550+ downloads
ncp add memory npx @modelcontextprotocol/server-memory                            # 4,200+ downloads
ncp add brave-search npx @modelcontextprotocol/server-brave-search                # 680+ downloads
🛠️ 開発に欠かせないツール
# Popular dev tools:
ncp add filesystem npx @modelcontextprotocol/server-filesystem ~/code
ncp add github npx @modelcontextprotocol/server-github
ncp add shell npx @modelcontextprotocol/server-shell
🌐 生産性向上と連携
# Enterprise favorites:
ncp add gmail npx @mcptools/gmail-mcp
ncp add slack npx @modelcontextprotocol/server-slack
ncp add google-drive npx @modelcontextprotocol/server-gdrive
ncp add postgres npx @modelcontextprotocol/server-postgres
ncp add puppeteer npx @hisma/server-puppeteer

🤖 内部 MCP

NCP には、外部ツールのオーケストレーションにとどまらず、機能を拡張する強力な内部 MCP が含まれています。

スケジューラー MCP - あらゆるツールを自動化

cron または自然言語によるスケジュールを使って、任意の MCP ツールを自動実行するようにスケジュール設定できます。

# Schedule a daily backup check
ncp run schedule:create --params '{
  "name": "Daily Backup",
  "schedule": "every day at 2am",
  "tool": "filesystem:list_directory",
  "parameters": {"path": "/backups"}
}'

機能:

  • ✅ 自然言語によるスケジュール(「毎日午前9時」「毎週月曜日」)
  • ✅ 高度な制御に対応する標準 cron 式
  • ✅ スケジュール設定前の自動検証
  • ✅ 実行履歴とモニタリング
  • ✅ NCP が起動していなくても動作(システム cron との連携)

→ スケジューラーの完全ガイド

MCP 管理 MCP - AI から MCP をインストール

自然言語を通じて、MCP を動的にインストールして設定できます。

# AI can discover and install MCPs for you
ncp find "install mcp"
# Shows: mcp:add, mcp:remove, mcp:list

機能:

  • ✅ レジストリから MCP を検索、検出
  • ✅ 手動設定なしで MCP をインストール
  • ✅ MCP をプログラムから更新、削除
  • ✅ AI が新しい機能を自ら拡張
スキル管理 MCP - プラグインで Claude を拡張

Anthropic Agent Skills(Claude に専門知識やツールを追加するモジュール型の拡張機能)を管理します。

// Discover skills using vector search
const results = await skills.find({ query: "canvas design" });

// Install a skill
await skills.add({ skill_name: "canvas-design" });

// List installed skills
const installed = await skills.list();

// Read skill resources
const template = await skills.read_resource({
  skill_name: "canvas-design",
  file_path: "resources/templates.md"
});

機能:

  • ✅ ベクトルを活用したスキルのセマンティック検索
  • ✅ 公式マーケットプレイスからワンコマンドでインストール
  • ✅ 段階的な情報開示(メタデータ → 全コンテンツ → リソース)
  • ✅ Anthropic 公式マーケットプレイスとの連携
  • ✅ カスタムマーケットプレイスのサポート
  • ✅ インストール済みスキルの自動読み込み

→ スキルの完全ガイド

Analytics MCP - 使用状況とパフォーマンスを可視化

チャット内で、使用状況の統計、トークンの節約量、パフォーマンス指標を直接確認できます。

# View usage overview with ASCII charts
ncp run analytics:overview --params '{"period": 7}'

機能:

  • ✅ 使用状況の傾向と、最もよく使われるツール
  • ✅ トークン節約量の分析(Code-Mode の効率性)
  • ✅ パフォーマンス指標(応答時間、エラー率)
  • ✅ AI が利用しやすい ASCII 形式のグラフ

設定: 内部 MCP はデフォルトで無効になっています。プロフィール設定で有効にしてください。

{
  "settings": {
    "enable_schedule_mcp": true,
    "enable_mcp_management": true,
    "enable_skills": true,
    "enable_analytics_mcp": true
  }
}

🔧 高度な機能

スマートヘルスモニタリング

NCP は故障した MCP を自動検出し、それを回避してリクエストを振り分けます。

ncp list --depth 1    # See health status
ncp config validate   # Check configuration health

🎯 結果: AI が故障したツールで処理を止められることはありません。

複数プロフィールでの整理

プロジェクトや環境ごとに MCP を整理できます。

# Development setup
ncp add --profile dev filesystem npx @modelcontextprotocol/server-filesystem ~/dev

# Production setup
ncp add --profile prod database npx production-db-server

# Use specific profile
ncp --profile dev find "file tools"
🚀 プロジェクト単位の設定

新機能: プロジェクトごとに MCP を設定し、自動検出できます。チームやクラウド IDE に最適です。

# In any project directory, create local MCP configuration:
mkdir .ncp
ncp add filesystem npx @modelcontextprotocol/server-filesystem ./
ncp add github npx @modelcontextprotocol/server-github

# NCP automatically detects and uses project-local configuration
ncp find "save file"  # Uses only project MCPs

仕組み:

  • 📁 ローカルに .ncp ディレクトリがある → プロジェクト設定を使用します
  • 🏠 ローカルに .ncp ディレクトリがない → グローバルな ~/.ncp にフォールバックします
  • 🎯 プロフィール管理は不要 → すべてデフォルトの all.json に保存されます

次の用途に最適です:

  • 🤖 Claude Code プロジェクト(プロジェクト固有の MCP ツール)
  • 👥 チーム内の一貫性(リポジトリとともに .ncp フォルダーを共有)
  • 🔧 プロジェクト固有のツール(各プロジェクトで独自の MCP を定義)
  • 📦 環境の分離(グローバルな MCP との競合を回避)
# Example project structures:
frontend-app/
  .ncp/profiles/all.json   # → playwright, lighthouse, browser-context
  src/

api-backend/
  .ncp/profiles/all.json   # → postgres, redis, docker, kubernetes
  server/
リモート MCP トランスポートと休止状態への対応

NCP は stdio(ローカル)と HTTP/SSE(リモート)の両方の MCP サーバーに対応しています。

Stdio トランスポート(従来方式):

# Local MCP servers running as processes
ncp add filesystem npx @modelcontextprotocol/server-filesystem ~/Documents

ストリーム可能な HTTP(リモート):

{
  "mcpServers": {
    "remote-mcp": {
      "url": "https://mcp.example.com/api",
      "transport": "streamableHttp",
      "auth": {
        "type": "bearer",
        "token": "your-token-here"
      }
    }
  }
}

従来の HTTP/SSE エンドポイントを使う場合は、"transport": "sse" を設定してください。古いプロフィールに URL があり、transport が指定されていない場合、NCP は引き続き従来の SSE 動作を使用します。新しいレジストリからのインポートでは、デフォルトでストリーム可能な HTTP が選択されます。プロトコルバージョンのネゴシエーションはトランスポートの選択とは別であり、別のエンドポイントを自動的に検出することはありません。

PKCE を使用した OAuth 2.1(MCP 2025-03-26 仕様):

{
  "mcpServers": {
    "oauth-mcp": {
      "url": "https://mcp.example.com/api",
      "auth": {
        "type": "oauth",
        "oauth21": {
          "scopes": ["read", "write"],
          "callbackPort": 9876,
          "clientId": "optional-pre-registered-client-id",
          "clientSecret": "optional-client-secret"
        }
      }
    }
  }
}

OAuth 2.1 の機能:

  • ✅ PKCE(Proof Key for Code Exchange) - OAuth 2.1 でセキュリティのために必須です
  • ✅ 動的クライアント登録(RFC 7591) - clientId が指定されていない場合、自動的に登録します
  • ✅ トークンの保存と自動更新 - トークンは ~/.ncp/auth/ に保存され、自動的に更新されます
  • ✅ ブラウザーでの認可フロー - ユーザーの同意を得るためにブラウザーを開きます
  • ✅ ヘッドレス環境での代替手段 - サーバーや CI 環境ではコードを手動で入力できます
  • ✅ 保護対象リソースの検出(RFC 9728) - OAuth エンドポイントを自動検出します

初回セットアップの流れ:

  1. NCP がブラウザーで認可 URL を開きます
  2. 権限を許可します
  3. ブラウザーがローカルのコールバック(http://localhost:9876)にリダイレクトします
  4. NCP が PKCE を使用してコードをアクセストークンに交換します
  5. トークンが保存され、以降のリクエストに備えて自動的に更新されます

🔋 休止状態に対応したサーバー:

NCP は、Cloudflare Durable Objects や Metorial のような、休止状態に対応した MCP サーバーを自動的にサポートします。

  • 設定は不要です - 休止状態は透過的に機能します
  • 自動起動 - NCP がリクエストを送信すると、サーバーが必要に応じて起動します
  • 状態の保持 - 休止サイクルをまたいでサーバーの状態が維持されます
  • コスト削減 - MCP がリクエストを処理している間だけ料金が発生します

仕組み:

  1. アイドル状態になると、サーバーは休止します(リソースを消費しません)
  2. NCP がリクエストを送信すると、サーバーがすぐに起動します
  3. サーバーがリクエストを処理して応答します
  4. アイドルタイムアウト後、サーバーは再び休止状態になります

次の用途に最適です:

  • 💰 コストの最適化 - アクティブな処理時間に対してのみ料金が発生します
  • 🌐 クラウドホスト型 MCP - Metorial、Cloudflare Workers、サーバーレスプラットフォーム
  • ♻️ リソースの効率化 - アイドル状態のサーバーにコストがかかりません
  • 🚀 ゼロへのスケール - 必要がないときはサーバーが自動的にスリープします

注: 休止状態はサーバー側の機能です。NCP のリモート MCP クライアントは、特別な設定なしで従来型と休止状態に対応したサーバーの両方を利用できます。

最新の MCP 拡張機能と結果の処理

NCP は、探索と run を通じて、下流ツールの記述子とネイティブ MCP 結果を保持します。これには、構造化コンテンツ、エラー状態、メタデータ、テキスト、画像、音声、リソース、リソースリンクの各ブロックが含まれます。以前、結果ブロックの配列をエンコードした JSON テキストを解析していたインテグレーションは、ネイティブ MCP 結果のフィールドを使用するように更新してください。

ホストが MCP Apps のサポートを通知すると、NCP は下流アプリの起動ツールとアプリのコールバックを選択的に公開し、それらの ui:// リソースを提供します。アプリ専用のコールバックをモデルで使用できるかどうかは、ホストが制御します。ツール名または UI リソースが競合すると、該当するアプリグループは除外されます。通常のツールは引き続き find と run から利用できます。

Skills 拡張機能は、ローカルおよび互換性のあるリモートスキルのマニフェストをオンデマンドで公開します。マニフェストのバイト列に対する SHA-256 ダイジェストも含まれます。Tasks 拡張機能は、互換性のある最新のホストに、run と code 用の永続的なハンドル、および tasks/get、tasks/update、tasks/cancel を提供します。再起動後、未完了の作業は再実行されず、中断されたものとして報告されます。キャンセルは、NCP がワーカーの停止を確認できた場合にのみ報告されます。Tasks をサポートしないホストでは、既存の同期リクエストまたは複数ラウンドのリクエストフローが引き続き使用されます。

応答キャッシュには上限があり、プライベートなキャッシュエントリーは、サーバー設定と認証情報の識別情報ごとに分離されます。サーバーのキャッシュ有効期間とツールリスト変更通知に基づいて、更新が行われます。トランスポート、SDK、レジストリ、拡張機能、互換性の詳細については、MCP compatibility notes を参照してください。

Photon Runtime(CLI と DXT)

TypeScript Photon ランタイムはデフォルトで有効ですが、NCP の実行方法によって、切り替えの設定場所が異なります。

  • CLI / npm インストール: ~/.ncp/settings.json を編集するか(または ncp config を実行し)、enablePhotonRuntime: true または false を設定します。その場限りの上書きとして、NCP_ENABLE_PHOTON_RUNTIME=true ncp find "photon" を指定することもできます。
  • DXT / クライアントバンドル(Claude Desktop、Cursor など): これらのビルドは ~/.ncp/settings.json を無視します。クライアント設定内で環境変数を設定して、Photon を構成してください。
{
  "mcpServers": {
    "ncp": {
      "command": "ncp",
      "env": {
        "NCP_ENABLE_PHOTON_RUNTIME": "true"
      }
    }
  }
}

Photon ランタイムを無効にしても、内部 MCP は引き続き動作しますが、フラグを再度有効にするまで .photon.ts ファイルは無視されます。

どこからでもインポート
# From clipboard (any JSON config)
ncp config import

# From specific file
ncp config import "~/my-mcp-config.json"

# From Claude Desktop (auto-detected paths)
ncp config import

🛟 トラブルシューティング

インポートに関する問題
# Check what was imported
ncp list

# Validate health of imported MCPs
ncp config validate

# See detailed import logs
DEBUG=ncp:* ncp config import
AI がツールを使用しない
  • 接続を確認: ncp list(MCP が表示されるはずです)
  • 探索をテスト: ncp find "your query"
  • 設定を検証: AI クライアントが ncp コマンドを参照していることを確認します
パフォーマンスに関する問題
# Check MCP health (unhealthy MCPs slow everything down)
ncp list --depth 1

# Clear cache if needed
rm -rf ~/.ncp/cache

# Monitor with debug logs
DEBUG=ncp:* ncp find "test"

🌓 これを構築した理由

陰と陽のように、すべては物事のバランスに依存しています。

コンピューティングは精度と確実性をもたらします。 AIは創造性と確率をもたらします。

これらの力を適切な比率で組み合わせることで、画期的な製品が生まれると私たちは信じています。

NCP がこのバランスをどのように体現するか:

NCP の機能AI(創造性)コンピューティング(精度)バランス
ツールの探索「ファイルを読む」を意味的に理解します正確なツールへ決定論的に振り分けます自然なリクエスト → 正確な実行
オーケストレーション意図に柔軟に対応します信頼性の高いツール実行を実現します自然な流れ → 確実な結果
ヘルスモニタリングパターンに適応します接続を監視し、自動フェイルオーバーを行いますスマートな適応 → 安定した稼働

純粋な AI だけでも(予測不能すぎるため)、純粋なコンピューティングだけでも(硬直的すぎるため)、うまくいきません。

AI は創造性を保ち、NCP は精度を担います。


📚 詳細:仕組み

再現可能なゲートウェイベンチマークでは、シリアライズされたペイロードのサイズ、ローカルでのレイテンシ、ワークフローの完了状況、結果の忠実度を測定します。npm run benchmark:mcpを実行してください。バイト数に基づくトークンの代理指標は、実際のトークナイザーによる測定値とは別に表示されます。

技術的な詳細を確認しますか?トークン分析、アーキテクチャ図、パフォーマンスベンチマークをご覧ください。

📖 技術ガイドを読む →

以下について説明します。

  • ベクトル類似度検索アルゴリズム
  • N対1のオーケストレーションアーキテクチャ
  • 実環境でのトークン使用量の比較
  • ヘルスモニタリングとフェイルオーバーシステム

🤝 貢献

NCPをさらに良くするためにご協力ください。


📄 ライセンス

Elastic License 2.0 - ライセンス全文

**要約:**商用利用を含め、あらゆる用途で無料です。ただし、第三者向けのホステッドサービスとして提供することはできません。

コメント

MCP は初めてですか?

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

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