PA

portkey-ai/mcp-tool-filter

Analytics & monitoring

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

52 stars 8 forks Качество 67 Тренд 13MIT

Сверхбыстрая фильтрация семантических инструментов для серверов 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 раз быстрее с помощью оптимизации конвейера процессора
  1. ** - 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

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,
Открыть полный README на GitHub

Установка

npx ts-node examples/benchmark.ts
Новичок в MCP? Начните с руководства на mcpskill.org →