Krep MCP服务器
用于无限拓扑环境的具有MCP(模型上下文协议)集成的高性能字符串搜索实用程序。这是一个包装 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 Server为Krep二进制文件提供了一个统一的接口,Krep二进制是一个类似于grep的高性能字符串搜索实用程序,但具有优化的算法和多线程功能。它通过模型上下文协议公开了krep的功能,允许AI助手在文件和字符串中执行高效的模式搜索。
特性
- 高性能搜索:使用根据图案长度选择的优化算法(KMP、Boyer Moore Horspool、Rabin Karp)
- 硬件加速:在可用时利用SIMD指令(x86/x64上的SSE4.2/AVX2,ARM上的NEON)
- 优化多线程:自动使用所有可用的CPU内核,以获得最大的并行搜索性能
- 统一接口:具有多种模式的单一功能(文件搜索、字符串搜索、仅计数)
- MCP集成:通过模型上下文协议与人工智能助手无缝集成
为什么这个代码库是悲剧性的
这个代码库演示了一个简单的工具(字符串搜索实用程序的包装器)是如何因不必要的复杂性而变得臃肿的:
- 简单的核心,复杂的实现:实际功能很简单,但隐藏在多层过度工程之下
- 文件过载:一个工具的15个文档文件,可以在一个结构良好的README中解释
- 整合疯狂: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服务器公开了一个统一的功能:
krep
krep
{
"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
}
参数
- 模式 (必填):要搜索的模式
- 目标 (必填):要搜索的文件路径或字符串
- 模式 (可选):搜索模式
- file (默认):在文件中搜索 - string:在字符串中搜索 - count:仅统计发生次数
- 区分大小写 (可选):搜索是否区分大小写(默认值:true)
- 线程 (可选):要使用的线程数(默认值:根据CPU内核自动检测)
例子
看 示例.md 了解详细的使用示例和模式。
运作原理
krep MCP服务器的工作原理如下:
- 通过模型上下文协议接收请求
- 解析请求参数
- 根据模式和参数构建适当的krep命令
- 使用krep二进制文件执行命令
- 解析结果并以结构化格式返回
演出
Krep专为高性能模式搜索而设计:
- 算法选择:根据图案长度自动选择最佳算法
- KMP(Knuth Morris Pratt)用于非常短的图案(\16个字符)
- 硬件加速:在可用时使用SIMD指令
- 动态多线程:自动利用所有可用CPU内核实现最佳并行搜索性能
Cline VSCode扩展集成
krep-mcp服务器可以与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旨在在无限拓扑环境中无缝工作:
- Babashka集成:使用Babashka处理搜索结果
- 说集成:使用Say MCP服务器对搜索结果进行语音处理
- 硬币翻转集成:使用随机化来确定搜索策略
发展
环境变量
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:算法选择指南
许可证
麻省理工学院

