PA

portkey-ai/mcp-tool-filter

Analytics & monitoring

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

52 stars 8 forks 品質 67 トレンド 13MIT

MCP (Model Context Protocol) サーバー用の超高速セマンティック ツールを埋め込みます。 ツールのコンテキストを1000以上のツールから10-20のツールまで10ms以下に減らします.

概要

MCP (Model Context Protocol) サーバー用の超高速セマンティック ツールを埋め込みます。 ツールのコンテキストを1000以上のツールから最も関連性の高い10-20ツールまで減らすことができます。 - ⚡ : <10ms は、組み込みの最適化を備えた 1000 + ツールのレイテンシをフィルタリング - OST : 6-8x は、ドット製品、スマートトップ K 選択、真の LRU キャッシュを高速化します。 : インテリジェントなツールのマッチングのための埋め込みを使用する - のみ 埋め込みプロバイダ API が必要です。 - チャットの完了メッセージや生の文字列を受け入れる - 💾 : キャッシュの埋め込みと最適なパフォーマンスのためのコンテキスト - ️️ : チューンスコアは、常に最適なタイミングを把握し、最適化します。 - ⚡ 超高速: 1-5ms レイテンシ - プライベート: 外部 API に送信されたデータなし - クーポン無料: いいえ API コスト - オフラインで: インターネットなしで動作します - APIモデルより精度をわずかに下げる - 初期化ダウンロードモデル(〜25MB) - Xenova/all-MiniLM-L6-v2 (デフォルト) - 384 寸法、非常に高速 - Xenova/all-MiniLM-L12-v2 - 384 寸法、もっと...

概要(AI 翻訳)

MCP (Model Context Protocol) サーバー用の超高速セマンティック ツールを埋め込みます。 ツールのコンテキストを1000以上のツールから10-20のツールまで減らすことができます** 10ms未満**。

##特徴

  • ⚡Lightning Fast: `

MCP サーバーでフィルタを初期化します。 この優先順位は、すべてのツールの埋め込みをキャッシュします。

注意: 起動時に一度電話してください。 ツールの数に応じて数秒かかる非同期動作です。

######[filter(input: FilterInput, options?: FilterOptions): Promise

入力コンテキストに基づくフィルタツール。

入力タイプ:

Options (すべてのオプション、オーバーライドデフォルト):

返品:

######getStats()

フィルターの状態に関する統計を取得します。

######[clearCache()

コンテキスト埋め込みキャッシュをクリアします。

パフォーマンスの最適化

組み込み最適化

ライブラリには、ボックスからいくつかのパフォーマンスの最適化が含まれています。

1。 ** LOCK-Unrolled Dot製品** - ベクトル類似性計算は、CPUパイプラインの最適化による6-8倍高速です 2.スマート Top-K Selection - ハイブリッドアルゴリズムは、典型的なワークロード用の高速ビルトインソートを使用して、500 +ツールのヒープベースの選択に切り替えます 3.

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。

README

以下は原文 README の抜粋です。原文を見る。

@portkey-ai/mcp-tool-filter

Ultra-fast semantic tool filtering for MCP (Model Context Protocol) servers using embedding similarity. Reduce your tool context from 1000+ tools down to the most relevant 10-20 tools in under 10ms.

Features

  • ⚡ Lightning Fast: <10ms filtering latency for 1000+ tools with built-in optimizations
  • 🚀 Performance Optimized: 6-8x faster dot product, smart top-K selection, true LRU cache
  • 🎯 Semantic Understanding: Uses embeddings for intelligent tool matching
  • 📦 Zero Dependencies on Runtime: Only requires an embedding provider API
  • 🔄 Flexible Input: Accepts chat completion messages or raw strings
  • 💾 Smart Caching: Caches embeddings and context for optimal performance
  • 🎛️ Configurable: Tune scoring thresholds, top-k, and always-include tools
  • 📊 Performance Metrics: Built-in timing for optimization

Installation

npm install @portkey-ai/mcp-tool-filter

Quick Start

import { MCPToolFilter } from '@portkey-ai/mcp-tool-filter';

// 1. Initialize the filter (choose embedding provider)

// Option A: Local Embeddings (RECOMMENDED for low latency < 5ms)
const filter = new MCPToolFilter({
  embedding: {
    provider: 'local',
  }
});

// Option B: API Embeddings (for highest accuracy)
const filter = new MCPToolFilter({
  embedding: {
    provider: 'openai',
    apiKey: process.env.OPENAI_API_KEY,
  }
});

// 2. Load your MCP servers (one-time setup)
await filter.initialize(mcpServers);

// 3. Filter tools based on context
const result = await filter.filter(
  "Search my emails for the Q4 budget discussion"
);

// 4. Use the filtered tools in your LLM request
console.log(result.tools); // Top 20 most relevant tools
console.log(result.metrics.totalTime); // e.g., "2ms" for local, "500ms" for API

Embedding Provider Options

Pros:

  • ⚡ Ultra-fast: 1-5ms latency
  • 🔒 Private: No data sent to external APIs
  • 💰 Free: No API costs
  • 🌐 Offline: Works without internet

Cons:

  • Slightly lower accuracy than API models
  • First initialization downloads model (~25MB)
const filter = new MCPToolFilter({
  embedding: {
    provider: 'local',
    model: 'Xenova/all-MiniLM-L6-v2', // Optional: default model
    quantized: true, // Optional: use quantized model for speed (default: true)
  }
});

Available Models:

  • Xenova/all-MiniLM-L6-v2 (default) - 384 dimensions, very fast
  • Xenova/all-MiniLM-L12-v2 - 384 dimensions, more accurate
  • Xenova/bge-small-en-v1.5 - 384 dimensions, good balance
  • Xenova/bge-base-en-v1.5 - 768 dimensions, higher quality

Performance:

  • Initialization: 100ms-4s (one-time, downloads model)
  • Filter request: 1-5ms
  • Cached request: <1ms

API Embeddings

For highest accuracy, use OpenAI or other API providers:

const filter = new MCPToolFilter({
  embedding: {
    provider: 'openai',
    apiKey: process.env.OPENAI_API_KEY,
GitHub で README 全文を見る

インストール

npx ts-node examples/benchmark.ts
MCP 初心者?mcpskill.org のガイドから始めましょう →