用途
filter-mcp-server 是一个使用 MCP 服务器和 LLM 工具调用来比较多种近似过滤器数据结构的项目。近似过滤器通过存储压缩摘要而非完整键来减少内存使用,但由此带来假阳性或有限操作的权衡。项目旨在对比不同过滤结构在相同工作负载下的行为。
主要能力
项目比较以下过滤器:
- Bloom 过滤器
- Counting Bloom 过滤器
- Cuckoo 过滤器
- SuRF(简化版)
此外还包含一个精确哈希集合服务器作为基线比较(filter-naive)。
比较重点包括:
- 成员查询准确性
- 假阳性率
- 插入和删除支持
- 前缀和范围查询能力
所有服务器通过 MCP 工具暴露相同的 ADT 风格接口,以便一致地进行测试。
使用方式
服务器模拟关键字搜索系统,应用于:
- 搜索自动补全
- 屏蔽词检查
- 字典成员测试
所有过滤器使用相同的关键字数据集和查询来比较性能和行为。所有 MCP 服务器提供相同的工具集。
项目提供理论/定性结构比较表,描述每种结构的预期定性行为,该表并非实测基准结果。
实测结果位于 docs/benchmark_results.md。基准测试使用 src/membership_filters/benchmark.py 中的固定合成工作负载,用相同的构建项和缺失查询探针比较所有过滤器。报告内容包括:通过 memory_usage() 估算的内存、通过 false_positive_rate() 实测的假阳性率,以及本地 contains() 的平均延迟。
可在本地运行基准测试,也可运行冒烟测试。filter-naive 作为精确基线包含在内。
示例 Claude Desktop MCP 配置
项目提供示例 Claude Desktop MCP 配置。
流程说明
- LLM 发送 MCP 工具请求。
- mcp_server.py 暴露通用的 ADT 风格工具。
- registry.py 选择请求的过滤器实现。
- 选定的过滤器处理查询。
- 结果通过 MCP 服务器返回。
该设计允许所有过滤器通过相同接口和工作负载进行测试。
适用场景
适合需要学习、实验或对比近似过滤器数据结构的研究人员和开发者,尤其在关键字搜索、自动补全和屏蔽词检查等模拟场景中。
限制
SuRF 服务器是简化的教育性实现,并非基于 LOUDS 的生产级完整 SuRF。项目侧重于比较和实验,而非生产优化。