
portkey-ai/mcp-tool-filter
Analytics & monitoringЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Сверхбыстрая фильтрация семантических инструментов для серверов MCP (Model Context Protocol) с использованием встраиваемого сходства. Сократите контекст инструмента с 1000+ инструментов до наиболее релевантных 10-20 инструментов менее чем за 10 мс.
Обзор
Сверхбыстрая фильтрация семантических инструментов для серверов MCP (Model Context Protocol) с использованием встраиваемого сходства. Сократите контекст инструмента с 1000+ инструментов до наиболее релевантных 10-20 инструментов. - <10ms filtering latency for 1000+ tools with builtin optimizations - an : 6-8x faster dot product, smart top-K selection, true LRU cache - an : Uses embeddings for smart tool matching - an : Only requires the embedding provider API - an : Accepts chat complete messages or raw strings - an : Caches embeddings and context for optimal performance - -️ : Tune scoring thresholds, top-k, and always-include tools - - : Builtin time for optimization Ультрабыстрая задержка: 1-5 мс - Private Частная: нет данных, отправленных на внешние API - Бесплатная: нет затрат на API - Оффлайн: Работает без Интернета Немного более низкая точность, чем модели API - модель загрузки первой инициализации (~ 25 МБ) - Xenova/all-MiniLM-L6-v2 (по умолчанию) - 384 размера, очень быстро - Xenova/all-MiniLM-L12-v2 - 384 размера, более...
Обзор (машинный перевод)
Сверхбыстрая фильтрация семантических инструментов для серверов MCP (Model Context Protocol) с использованием встраиваемого сходства. Уменьшите контекст инструмента с 1000+ инструментов до наиболее релевантных 10-20 инструментов менее чем за 10 мс.
Особенности
- Быстрая молния:
Инициировать фильтр с помощью MCP-серверов. Это предвычисляет и кэширует все встроенные инструменты.
**Примечание: Позвоните один раз во время запуска. Это асинхронная операция, которая может занять несколько секунд в зависимости от количества инструментов.
#####filter(input: FilterInput, options?: FilterOptions): Promise
Инструменты фильтрации на основе контекста ввода.
** Типы ввода:**
** Варианты** (все опциональные, переопределить по умолчанию):
** Возврат:**
#####[[Т1]]
Получите статистику о состоянии фильтра.
#####[[Т2]]
Очистите контекст, встраивающий кэш.
Оптимизация производительности
###Встроенная оптимизация
Библиотека включает в себя несколько оптимизаций производительности из коробки:
-
-
- op Loop-Unrolled Dot Product * * - вычисление векторного сходства в 6-8 раз быстрее с помощью оптимизации конвейера процессора
-
- ** - Smart Top-K Selection** - Гибридный алгоритм использует быстрый встроенный сорт для типичных рабочих нагрузок, переключается на кучу на основе выбора для 500+ инструментов
Эта страница переведена автоматически. Технические детали смотрите в оригинале.
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
Local Embeddings (Recommended)
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 fastXenova/all-MiniLM-L12-v2- 384 dimensions, more accurateXenova/bge-small-en-v1.5- 384 dimensions, good balanceXenova/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,
Установка
npx ts-node examples/benchmark.ts