工具过滤服务器

MCP代理服务器,基于请求上下文提示使用向量嵌入(本地或基于LLM)过滤工具。

  • by milichev
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 milichev/mcp-tool-filter-server

使用说明

mcp-tool-filter-server

概述

MCP代理服务器。使用向量嵌入(基于本地或LLM)根据请求上下文提示过滤工具。

用途 @portkey-ai/mcp-tool-filter 作为底层过滤引擎:

使用嵌入相似性对MCP(模型上下文协议)服务器进行超快速语义工具过滤。将您的工具上下文从1000多个工具减少到最相关的10-20个工具 10ms以下.

特性

  • ⚡ 迅速的:1000多种内置优化工具的过滤延迟<10ms
  • 🚀 性能优化:6-8倍更快的点积,智能top-K选择,真正的LRU缓存
  • 🎯 语义理解:使用嵌入进行智能工具匹配
  • 📦 对运行时零依赖:仅需要嵌入提供程序API
  • 🔄 灵活输入:接受聊天完成消息或原始字符串
  • 💾 智能缓存:缓存嵌入和上下文以获得最佳性能
  • 🎛️ 可配置的:调整得分阈值、top-k,并始终包含工具
  • 📊 性能指标:内置时间优化

用法

env 变量

[!提示]

参见 @portkey-ai/mcp-tool-filter 过滤器和嵌入设置和微调的文档。

名称以开头的变量 EMBEDDING_ 和 FILTER_,与

变量 描述 默认值
EMBEDDING_PROVIDER local, openai, voyage, cohere local
EMBEDDING_MODEL (可选)
*外部:型号名称(默认为提供商推荐的型号)
*本地:HuggingFace型号名称(默认为“Xenova/all-MiniLM-L6-v2”)
--
EMBEDDING_API_KEY 外部提供程序的API密钥 -
EMBEDDING_DIMENSIONS 可选:嵌入维度(适用于支持它的提供程序) --
EMBEDDING_BASE_URL 可选:自定义端点的基本URL
EMBEDDING_QUANTIZED 可选:量化级别(默认为true以加快推理速度) false
FILTER_TOP_K 要退回的顶级工具数量 20
FILTER_MIN_SCORE 最小相似性得分阈值 0.3
FILTER_CONTEXT_MESSAGES 需要考虑上下文的最近消息数 3
FILTER_ALWAYS_INCLUDE 无论得分如何,都要始终包含工具 --
FILTER_EXCLUDE 从结果中排除的工具 --
FILTER_MAX_CONTEXT_TOKENS 上下文的最大令牌数(默认值:500) 500
FILTER_INCLUDE_SERVER_DESCRIPTION 在工具嵌入中包含服务器描述以获取更多上下文 false
FILTER_DEBUG 启用调试日志记录 false
UPSTREAM_MCP_TRANSPORT stdio 或 http stdio
UPSTREAM_MCP_COMMAND stdio命令(例如。, node, npx) npx
UPSTREAM_MCP_ARGS 可选:stdio上游服务器命令的逗号分隔参数 --
UPSTREAM_MCP_ENV 可选:逗号分隔 KEY:VALUE 对于stdio上游服务器 --
UPSTREAM_MCP_CWD 可选:stdio上游服务器的工作目录 --
UPSTREAM_MCP_URL 上游MCP服务器的基本URL(HTTP传输) --
PROXY_MCP_TRANSPORT stdio 或 http stdio
PROXY_MCP_PORT HTTP传输端口 3000
LOG_LEVEL trace, debug, info, warn, error, silent info

Docker镜像

将代理服务器和上游MCP服务器捆绑在一个Docker容器中是有意义的。

有一个方便的脚本--build-image.sh示例:

构建:

UPSTREAM_SOURCE=/path/to/upstream-mcp-server.mjs \
  UPSTREAM_MCP_COMMAND=node \
  UPSTREAM_MCP_ARGS="/app/upstream/upstream-mcp-server.mjs" \
  IMAGE_NAME="mcp-tool-filter-server-bundle" \
  IMAGE_TAG="0.1.0" \
  ./build-image.sh

运行(HTTP代理): 在这个例子中,MCP代理是

docker run -p 3129:3129 --rm \
  --name mcp-bundle \
  --add-host=host.docker.internal:host-gateway \
  --network host \
  -v "/path/to/configs:/app/config" \
  -e 'UPSTREAM_MCP_ENV=KEY:"VAL",FILE_REF:"{file:/app/config/data.json}"' \
  -e 'PROXY_MCP_TRANSPORT=http' \
  mcp-tool-filter-server-bundle:latest			

与ToolHive集成

对于 ToolHive 集成,将代理配置为 stdio 服务器。确保Docker容器或本地进程可以访问上游连接所需的环境变量。

路线图

  1. 支持多个上游MCP服务器(聚合+过滤)。
  2. 基于JSON的配置文件支持替换/补充环境变量。

贡献

提交带有描述性标题的PR。跟随 约定式提交.

许可证

麻省理工学院