正则表达式搜索工具

一个基于Node.js的本地正则表达式搜索工具,用于在文本文件中执行正则搜索并返回匹配行号和内容,适用于IDE集成和AI代理代码分析。

  • by vinay-a4b
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Vinay-Rastogi/mcp-regex-search

使用说明

MCP正则表达式搜索服务器(本地工具)

该项目实现了 本地MCP风格的工具服务器 在 Node.js 允许IDE或代理执行 基于正则表达式的文本文件搜索 并返回 匹配行的行号.

服务器通过以下方式进行通信 stdin/stdout,这就是模型上下文协议(MCP)工具在内部的操作方式。


✨ 特性

  • 🔍 基于正则表达式的本地文件搜索
  • 📄 退货 行号+匹配内容
  • 🧰 工具型JSON API(tools/list, tools/call)
  • ⚡ 轻量级(无外部框架)
  • 🖥️ 本地运行,IDE/代理友好

📂 项目结构

mcp正则表达式服务器/ ├── server.js ├── package.json ├── package-lock.json ├── 节点模块/ └── README.md


🚀 入门指南

1.️⃣ 先决条件

  • Node.js v18+(在Node v24上测试)
  • macOS/Linux/Windows

2.️⃣ 安装依赖项

npm install

除了Node.js标准库之外,不需要任何外部依赖。

3.️⃣ 启动服务器

node server.js

您应该看到:

✅ 正则表达式工具服务器已启动

服务器现在监听stdin上的JSON请求。

🧪 测试服务器

创建示例文件

cat <<EOF > test.txt
Hello world
TODO: fix login bug
Some random text
FIXME: handle null case
Another line
EOF

🔹 测试:列出可用工具

echo '{"method":"tools/list"}' | node server.js

预期产量:


{
  "tools": [
    {
      "name": "regex_search",
      "description": "Search a file using regex and return matching lines",
      "inputSchema": {
        "type": "object",
        "properties": {
          "filePath": { "type": "string" },
          "pattern": { "type": "string" }
        },
        "required": ["filePath", "pattern"]
      }
    }
  ]
}

🔹 测试:执行正则表达式搜索

echo '{
  "method": "tools/call",
  "params": {
    "name": "regex_search",
    "arguments": {
      "filePath": "test.txt",
      "pattern": "TODO|FIXME"
    }
  }
}' | node server.js

预期产量:


{
  "content": [
    {
      "type": "json",
      "json": [
        { "line": 2, "content": "TODO: fix login bug" },
        { "line": 4, "content": "FIXME: handle null case" }
      ]
    }
  ]
}

🧠 运作原理

  • 服务器从stdin读取JSON消息

  • 支持两种MCP风格的方法:

  • 工具/列表→ 返回可用工具

  • 工具/调用→ 执行工具

  • regex_search工具:

  • 逐行读取文件

  • 应用提供的正则表达式

  • 返回匹配的行及其行号

结果通过stdout发回

🔧 工具请求格式示例

{
  "method": "tools/call",
  "params": {
    "name": "regex_search",
    "arguments": {
      "filePath": "example.txt",
      "pattern": "ERROR|WARN"
    }
  }
}

🧑‍💻 用例

  • IDE集成搜索工具

  • 执行代码分析的AI代理

  • 静态分析和linting助手