使用说明
MCP搜索服务器
一个最小、快速的模型上下文协议(MCP)服务器,它公开了一个工具: search_file 用于在文件中搜索。设计用于与Cursor和Claude Desktop配合使用,以及一个可直接使用的小型CLI。
仓库: https://github.com/devleo10/mcp-search-server
技术栈
- Bun(运行时+包管理器)
- TypeScript
@modelcontextprotocol/sdkv1.21.0(官方MCP SDK)- Express 5(HTTP模式)
- JSON-RPC 2.0(协议)
这是什么(不是什么)
- Is:一个从文件搜索工具返回上下文/结果的MCP服务器
- 不是:模特/LLM。模型存在于MCP客户端(Cursor,Claude)
安装
bun install
跑
HTTP模式(默认):
bun run start # http://localhost:3000/mcp
stdio模式(用于光标/克劳德):
export MCP_TRANSPORT=stdio # macOS/Linux
$env:MCP_TRANSPORT="stdio" # Windows PowerShell
bun run start
可选:限制对工作区根目录的文件访问
export WORKSPACE_ROOT=/path/to/project
在游标中使用(推荐)
- 创建或编辑您的MCP配置
- 窗户:
%APPDATA%\Cursor\mcp.json - macOS:
~/.cursor/mcp.json - Linux:
~/.config/Cursor/mcp.json
- 添加服务器
{
"mcpServers": {
"search-server": {
"command": "bun",
"args": ["run", "/path/to/mcp-search-server/src/server.ts"],
"cwd": "/path/to/mcp-search-server",
"env": {
"MCP_TRANSPORT": "stdio",
"WORKSPACE_ROOT": "/path/to/mcp-search-server"
}
}
}
}
Windows示例 (使用双反斜杠):
{
"mcpServers": {
"search-server": {
"command": "bun",
"args": ["run", "C:\\path\\to\\mcp-search-server\\src\\server.ts"],
"cwd": "C:\\path\\to\\mcp-search-server",
"env": {
"MCP_TRANSPORT": "stdio",
"WORKSPACE_ROOT": "C:\\path\\to\\mcp-search-server"
}
}
}
}
备注:替换 /path/to/mcp-search-server 使用您的实际项目目录路径。
- 重新启动Cursor并询问:
- “可用的MCP工具有哪些?”→ 应列出
search_file - “在中搜索“关键字”
samples/sample.txt两行上下文”
提示
- 使用相对于的路径
WORKSPACE_ROOT - 询问上下文:“有两行上下文”
CLI使用(直接,无MCP)
# basic
bun run cli -- samples/sample.txt keyword
# case-insensitive with context
bun run cli -- samples/sample.txt keyword -i -c 2
# regex
bun run cli -- samples/sample.txt "function.*\(" -r
选项
-r, --regex启用正则表达式-i, --insensitive不区分大小写-c N, --context N上下文行(0-100)-m N, --max N最大结果(1–100000)
MCP检查员演示
以下是如何使用MCP Inspector测试该工具:
-
安装MCP检查器 (如果尚未安装):
npm install -g @modelcontextprotocol/inspector -
启动服务器:
bun run start -
运行MCP检查器:
mcp-inspector http://localhost:3000/mcp -
测试工具:
- 选择
search_file从工具列表中 - 使用此示例输入:
{ "path": "samples/sample.txt", "keyword": "keyword", "options": { "insensitive": true, "context": 2 } } - 点击“调用工具”查看结果
- 选择
注意:添加一个屏幕截图,显示MCP Inspector界面以及工具调用和结果
工具API(搜索文件)
输入
{
"path": "samples/sample.txt",
"keyword": "keyword",
"options": {
"regex": false,
"insensitive": true,
"context": 2,
"maxResults": 1000
}
}
输出(内容[0]。文本包含JSON)
{
"matches": [ { "line": 13, "text": "..." } ],
"meta": { "path": "samples/sample.txt", "keyword": "keyword", "count": 1, "durationMs": 5 }
}
测试
bun test
项目布局
src/
server.ts # MCP server + transport
search.ts # search engine (streaming + in-memory)
bin/
search-cli.ts
samples/
tests/
故障排除
- “找不到文件”→ 使用内部路径
WORKSPACE_ROOT相对于它 - “拒绝访问:路径必须在工作区根目录内”→ fix
WORKSPACE_ROOT - 光标不显示工具→ 重新启动Cursor,检查MCP日志(查看→ 输出→ MCP)
许可证:麻省理工学院
