Krep MCP Server
镜子 (jìng zi)
MCP-Mirror
README
Krep MCP 服务器
一个高性能的字符串搜索工具,集成了 MCP(模型上下文协议),用于 infinity-topos 环境。 它是 krep 的一个封装,krep 是一个超快的模式匹配工具,性能显著优于传统的 grep 等工具。
KREP-MCP-SERVER 荒谬图
====================================
+-----------------------------------------------------+
| |
| KREP MCP 冗余区 |
| |
+-----^--------------------+------------------------+-+
| | |
+-----------+----------+ +------+-------------+ +------+-------+
| | | | | |
| 元 数 据 爆 炸 | | 函 数 名 称 混 乱 | | 二 进 制 搜 索 |
| | | | | |
+-----+----------+-----+ +---+-----------+----+ +------+-------+
| | | | |
v v v v v
+--------+--+ +----+-----+ +---+----+ +---+-----+ +----+------+
| | | | | | | | | |
| "统一"函数 | | 37 条路径 | | krep | |krepSearch| | 5 个错误 |
| 执行3件事 | | 查找相同 | | | |krepMatch | | 处理程序 |
| | | 二进制文件 | | | |krepCount | | 针对1个 |
| | | | | | | | | 错误 |
| | | | | | | | | |
+-----------+ +----------+ +--------+ +----------+ +-----------+
+-----------------------------------------------------+
| |
| 配置 & Shell 脚本地狱 |
| |
+-----^--------------------+------------------------+-+
| | |
+-----------+----------+ +------+-------------+ +------+-------+
| | | | | |
| 3 个脚本安装 | | Shell 中的整数 | | 测试模式 |
| 1 个东西 | | 算术,显示 | | 模拟成功 |
| | | 0 + 0 = 语法错误 | | 当一切 |
| | | | | 失败时 |
| | | | | |
+----------------------+ +--------------------+ +--------------+
"如果它具有弹性,那么它就不是冗余的!"
- MCP 工程师,大概
概述
Krep MCP 服务器提供了一个统一的接口来访问 krep 二进制文件,krep 是一个高性能的字符串搜索工具,类似于 grep,但具有优化的算法和多线程功能。 它通过模型上下文协议公开 krep 的功能,允许 AI 助手在文件和字符串中执行高效的模式搜索。
特性
- 高性能搜索:使用基于模式长度选择的优化算法(KMP、Boyer-Moore-Horspool、Rabin-Karp)
- 硬件加速:在可用时利用 SIMD 指令(x86/x64 上的 SSE4.2/AVX2,ARM 上的 NEON)
- 优化的多线程:自动使用所有可用的 CPU 核心,以实现最大的并行搜索性能
- 统一接口:具有多种模式(文件搜索、字符串搜索、仅计数)的单个函数
- MCP 集成:通过模型上下文协议与 AI 助手无缝集成
为什么这个代码库是悲剧
此代码库演示了一个简单的工具(字符串搜索实用程序的包装器)如何因不必要的复杂性而变得臃肿:
-
简单的核心,复杂的实现:实际功能很简单,但隐藏在过度设计的层层之下
-
文档过载:15 个文档文件用于一个可以用单个结构良好的 README 解释的工具
-
集成疯狂:3 个独立的集成系统(Cline、Claude Desktop、SDK),每个系统都有冗余的脚本和文档
-
安装脚本激增:7 个安装脚本,而一个可配置的脚本就足够了
-
错误处理重复:错误处理在多个级别重复,而不是采用统一的方法
-
测试碎片化:测试文件分散在整个代码库中,而不是有系统地组织
-
配置冗余:配置文件和环境变量在多个组件中重复
-
二进制路径过度:在 37 个不同的路径中搜索一个应该位于一个可预测位置的二进制文件
它本应该是什么:
┌──────────────────────┐
│ krep-mcp-server │
│ ┌────────────────┐ │
│ │ index.js │ │
│ │ - 一个函数 │ │
│ └────────────────┘ │
│ ┌────────────────┐ │
│ │ README.md │ │
│ │ - 清晰文档 │ │
│ └────────────────┘ │
│ ┌────────────────┐ │
│ │ install.sh │ │
│ │ - 一个脚本 │ │
│ └────────────────┘ │
└──────────────────────┘
项目结构
这是实际的项目结构:
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": "具有统一接口的高性能字符串搜索实用程序", "disabled": false, "autoApprove": [ "krep" ] } } }
用法
krep MCP 服务器公开一个单一的统一函数:
<use_mcp_tool>
<server_name>krep</server_name>
<tool_name>krep</tool_name>
<arguments>
{
"pattern": "搜索模式",
"target": "要搜索的文件路径或字符串",
"mode": "file|string|count",
"caseSensitive": true|false,
"threads": null // 如果未指定,则自动使用所有 CPU 核心
}
</arguments>
</use_mcp_tool>
参数
- pattern (必需): 要搜索的模式
- target (必需): 要搜索的文件路径或字符串
- mode (可选): 搜索模式
file
(默认): 在文件中搜索string
: 在字符串中搜索count
: 仅计数出现次数
- caseSensitive (可选): 搜索是否区分大小写 (默认: true)
- threads (可选): 要使用的线程数 (默认: 根据 CPU 核心自动检测)
示例
有关详细的用法示例和模式,请参见 examples.md。
工作原理
krep MCP 服务器的工作方式如下:
- 通过模型上下文协议接收请求
- 解析请求参数
- 根据模式和参数构建适当的 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-cline-integration.sh
# 在安装之前测试集成
./run-cline-test.sh
# 卸载集成
./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 服务器发声搜索结果
- 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
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。