mcpField
K
Krep MCP Server

Krep MCP Server

本地服务
github.com/bmorphism搜索与检索184 周前更新

关于 Krep MCP Server

Krep MCP Server 将 krep 字符串搜索工具封装为 MCP 服务,供 AI 助手在文件或字符串中查找模式。它提供文件搜索、字符串搜索和计数等模式,并支持多线程及可用的 SIMD 加速。

主要功能

  1. 01搜索文件或字符串
  2. 02统计匹配次数
  3. 03按模式长度选择算法
  4. 04自动利用 CPU 多线程
  5. 05可用时使用 SIMD 加速

适用场景

  1. 01在文件中查找指定模式
  2. 02检查字符串是否匹配
  3. 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 助手无缝集成

为什么这份代码库令人遗憾

这份代码库展示了一个简单工具(字符串搜索工具的封装)如何因不必要的复杂性而变得臃肿:

  1. 核心简单,实现复杂:实际功能直截了当,却被层层过度设计的内容掩盖

  2. 文档过载:一个本可通过结构清晰的 README 说明的工具,却有 15 个文档文件

  3. 集成混乱:有 3 套独立的集成系统(Cline、Claude Desktop、SDK),每套都有重复的脚本和文档

  4. 安装脚本泛滥:有 7 个安装脚本,而一个可配置的脚本就足够了

  5. 错误处理重复:在多个层级重复处理错误,而不是采用统一方案

  6. 测试分散:测试文件散落在代码库各处,而不是经过系统整理

  7. 配置冗余:多个组件中重复设置配置文件和环境变量

  8. 二进制路径过度设计:为一个本应放在唯一固定位置的二进制文件搜索 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...

安装

  1. 确保已安装 krep 二进制文件:

    cd /path/to/krep-native
    make
    
  2. 在 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 服务的工作流程如下:

  1. 通过 Model Context Protocol 接收请求
  2. 解析请求参数
  3. 根据模式和参数构建相应的 krep 命令
  4. 使用 krep 二进制文件执行命令
  5. 解析结果并以结构化格式返回

性能

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"

如需详细说明和使用示例,请参阅:

与 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。