关于 Krep MCP Server
Krep MCP Server 将 krep 字符串搜索工具封装为 MCP 服务,供 AI 助手在文件或字符串中查找模式。它提供文件搜索、字符串搜索和计数等模式,并支持多线程及可用的 SIMD 加速。
主要功能
- 01搜索文件或字符串
- 02统计匹配次数
- 03按模式长度选择算法
- 04自动利用 CPU 多线程
- 05可用时使用 SIMD 加速
适用场景
- 01在文件中查找指定模式
- 02检查字符串是否匹配
- 03统计文件中的模式出现次数
MCP 相关
服务通过 MCP 暴露统一的 krep 搜索工具,客户端可指定搜索目标、模式及文件、字符串或计数模式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Krep MCP 服务
一款高性能字符串搜索工具,集成 MCP(Model Context Protocol),适用于 infinity-topos 环境。这是 krep 的封装。krep 是一款超快速模式匹配工具,性能远超 grep 等传统工具。
THE KREP-MCP-SERVER ABSURDITY DIAGRAM
====================================
+-----------------------------------------------------+
| |
| The KREP MCP Redundancy Zone |
| |
+-----^--------------------+------------------------+-+
| | |
+-----------+----------+ +------+-------------+ +------+-------+
| | | | | |
| M E T A D A T A | | F U N C T I O N | | B I N A R Y |
| E X P L O S I O N | | N A M E C H A O S| | H U N T |
| | | | | |
+-----+----------+-----+ +---+-----------+----+ +------+-------+
| | | | |
v v v v v
+--------+--+ +----+-----+ +---+----+ +---+-----+ +----+------+
| | | | | | | | | |
| "Unified" | | 37 Paths | | krep | |krepSearch| | 5 Error |
| Function | | To Find | | | |krepMatch | | Handlers |
| That Does | | The Same | | | |krepCount | | For |
| 3 Things | | Binary | | | | | | 1 Error |
| | | | | | | | | |
+-----------+ +----------+ +--------+ +----------+ +-----------+
+-----------------------------------------------------+
| |
| Configuration & Shell Script Hell |
| |
+-----^--------------------+------------------------+-+
| | |
+-----------+----------+ +------+-------------+ +------+-------+
| | | | | |
| 3 Scripts to | | Integer | | Test Mode |
| Install 1 Thing | | Arithmetic in | | that Mocks |
| | | Shell that says | | Success When|
| | | 0 + 0 = Syntax | | Everything |
| | | Error | | Fails |
+----------------------+ +--------------------+ +--------------+
"It's not redundant if it's resilient!"
- MCP Engineer, probably
概述
Krep MCP 服务为 krep 二进制文件提供统一接口。krep 是一款类似 grep 的高性能字符串搜索工具,采用优化算法并支持多线程。它通过 Model Context Protocol 暴露 krep 的功能,让 AI 助手能够高效地在文件和字符串中搜索模式。
功能
- 高性能搜索:使用优化算法(KMP、Boyer-Moore-Horspool、Rabin-Karp),并根据模式长度进行选择
- 硬件加速:在可用时利用 SIMD 指令(x86/x64 上的 SSE4.2/AVX2,ARM 上的 NEON)
- 优化的多线程:自动使用所有可用的 CPU 核心,以实现最高的并行搜索性能
- 统一接口:单个函数支持多种模式(文件搜索、字符串搜索、仅计数)
- MCP 集成:通过 Model Context Protocol 与 AI 助手无缝集成
为什么这份代码库令人遗憾
这份代码库展示了一个简单工具(字符串搜索工具的封装)如何因不必要的复杂性而变得臃肿:
-
核心简单,实现复杂:实际功能直截了当,却被层层过度设计的内容掩盖
-
文档过载:一个本可通过结构清晰的 README 说明的工具,却有 15 个文档文件
-
集成混乱:有 3 套独立的集成系统(Cline、Claude Desktop、SDK),每套都有重复的脚本和文档
-
安装脚本泛滥:有 7 个安装脚本,而一个可配置的脚本就足够了
-
错误处理重复:在多个层级重复处理错误,而不是采用统一方案
-
测试分散:测试文件散落在代码库各处,而不是经过系统整理
-
配置冗余:多个组件中重复设置配置文件和环境变量
-
二进制路径过度设计:为一个本应放在唯一固定位置的二进制文件搜索 37 个不同路径
它本该是这样:
┌──────────────────────┐
│ krep-mcp-server │
│ ┌────────────────┐ │
│ │ index.js │ │
│ │ - one function│ │
│ └────────────────┘ │
│ ┌────────────────┐ │
│ │ README.md │ │
│ │ - clear docs │ │
│ └────────────────┘ │
│ ┌────────────────┐ │
│ │ install.sh │ │
│ │ - one script │ │
│ └────────────────┘ │
└──────────────────────┘
项目结构
以下是实际的项目结构:
krep-mcp-server/
├── CLINE_README.md
├── CLINE_SETUP.md
├── CLAUDE_DESKTOP_INTEGRATION.md
├── CLAUDE_DESKTOP_README.md
├── EXAMPLES.md
├── IMPLEMENTATION_SUMMARY.md
├── INSTALL_NOW.md
├── LIFECYCLE_DESIGN.md
├── MCP_COMPLIANCE.md
├── MCP_URIS.md
├── README.md
├── SETUP_CLAUDE_DESKTOP.md
├── TESTING_STRATEGY.md
├── THREAD_OPTIMIZATION.md
├── analysis/
│ └── index.tree.json
├── auto-install-claude.sh
├── cline-config.js
├── direct-install.sh
├── eslint.config.js
├── fix-claude-desktop.sh
├── go-integration/
│ ├── example/
│ └── krep.go
├── install-claude-desktop.sh
├── install-cline-integration.sh
├── install-sdk-integrations.sh
├── jest.config.js
├── just-krep.sh
├── mcp-config.json
├── package-lock.json
├── package.json
├── python-integration/
│ └── krep_mcp_client.py
├── run-claude-desktop.sh
├── run-claude-integration.sh
├── run-cline-mcp-server.sh
├── run-cline-test.sh
├── run-tests.sh
├── run.sh
├── sdk-integration.js
├── src/
│ ├── index.js
│ ├── index.min.js
│ ├── mcp_server.js
│ └── mcp_server.min.js
├── Support/
│ └── Claude/
├── test/
│ ├── benchmark.js
│ ├── fixtures/
│ ├── integration/
│ ├── mcp_benchmark.js
│ ├── mock-server.js
│ ├── unit/
│ └── utils.js
└── various test scripts...
安装
-
确保已安装 krep 二进制文件:
cd /path/to/krep-native make -
在 MCP 设置文件中配置 MCP 服务:
{ "mcpServers": { "krep": { "command": "node", "args": [ "/path/to/krep-mcp-server/src/index.js" ], "env": { "CLAUDE_MCP": "true", "KREP_PATH": "/path/to/krep-native/krep", "DEBUG": "true" }, "description": "High-performance string search utility with unified interface", "disabled": false, "autoApprove": [ "krep" ] } } }
用法
krep MCP 服务提供一个统一函数:
<use_mcp_tool>
<server_name>krep</server_name>
<tool_name>krep</tool_name>
<arguments>
{
"pattern": "search pattern",
"target": "file path or string to search",
"mode": "file|string|count",
"caseSensitive": true|false,
"threads": null // Automatically uses all CPU cores if not specified
}
</arguments>
</use_mcp_tool>
参数
- pattern(必需):要搜索的模式
- target(必需):要搜索的文件路径或字符串
- mode(可选):搜索模式
file(默认):在文件中搜索string:在字符串中搜索count:仅统计出现次数
- caseSensitive(可选):搜索是否区分大小写(默认:true)
- threads(可选):使用的线程数(默认:根据 CPU 核心数自动检测)
示例
详细的用法示例和模式请参见 examples.md。
工作原理
krep MCP 服务的工作流程如下:
- 通过 Model Context Protocol 接收请求
- 解析请求参数
- 根据模式和参数构建相应的 krep 命令
- 使用 krep 二进制文件执行命令
- 解析结果并以结构化格式返回
性能
Krep 专为高性能模式搜索而设计:
- 算法选择:根据模式长度自动选择最优算法
- KMP(Knuth-Morris-Pratt)适用于极短模式(少于 3 个字符)
- Boyer-Moore-Horspool 适用于中等长度模式(3–16 个字符)
- Rabin-Karp 适用于较长模式(超过 16 个字符)
- 硬件加速:在可用时使用 SIMD 指令
- 动态多线程:自动利用所有可用的 CPU 核心,以获得最佳并行搜索性能
Cline VSCode 扩展集成
krep-mcp-server 可与 Cline VSCode 扩展集成,让你可以直接在 VSCode 环境中使用高性能字符串搜索功能。
使用 Cline 安装
我们提供了自动安装脚本来设置 Cline 集成:
# Install the integration
./install-cline-integration.sh
# Test the integration before installing
./run-cline-test.sh
# Uninstall the integration
./uninstall-cline-integration.sh
在 Cline 中使用 krep
集成完成后,你可以直接在 Cline 对话中使用 krep:
/krep krep pattern="function" target="/path/to/search" mode="file"
如需详细说明和使用示例,请参阅:
- CLINE_SETUP.md - 设置说明
- CLINE_README.md - 使用指南
与 Infinity Topos 集成
Krep MCP Server 专为在 infinity-topos 环境中无缝运行而设计:
- Babashka 集成:使用 Babashka 处理搜索结果
- Say 集成:使用 Say MCP server 朗读搜索结果
- Coin-Flip 集成:使用随机化来确定搜索策略
开发
环境变量
CLAUDE_MCP:设为 "true" 以在 MCP 模式下运行KREP_PATH:krep 二进制文件的路径DEBUG:设为 "true" 以启用详细日志记录KREP_TEST_MODE:设为 "true" 以使用模拟响应在测试模式下运行KREP_SKIP_CHECK:设为 "true" 以跳过检查 krep 二进制文件是否存在
HTTP 服务模式
未在 MCP 模式下运行时,服务会启动 HTTP 服务并提供以下端点:
GET /health:健康检查端点GET /:服务信息POST /search:在文件中搜索模式POST /match:匹配字符串中的模式GET /performance:性能信息GET /algorithm-selection:算法选择指南
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。