使用说明
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容器或本地进程可以访问上游连接所需的环境变量。
路线图
- 支持多个上游MCP服务器(聚合+过滤)。
- 基于JSON的配置文件支持替换/补充环境变量。
贡献
提交带有描述性标题的PR。跟随 约定式提交.
许可证
麻省理工学院