代码搜索导航服务器

May-la MCP 是一个轻量、快速的代码搜索和导航服务器,专为提升LLMs在代码理解上的效率而设计,通过减少工具调用次数来优化代码库的理解过程。

  • by alucardeht
  • Go
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 alucardeht/may-la-mcp

使用说明

May la MCP

用于代码搜索和导航的精简、快速的MCP服务器。用Go编写,通过npm安装。

2.7 MB二进制文件。5个工具。即时启动。零依赖。

它做什么

LLM浪费了太多的工具调用来搜索代码。May la修复了这个问题——每个工具每次调用都会返回最大的有用上下文,因此模型在2-3次调用中就能理解你的代码库,而不是7次以上。

工具

info --一次通话中的项目概述

技术栈检测、目录树、文件分发、入口点。一个电话,模型就知道一切在哪里。

read --智能文件读取

读取具有自动结构摘要(函数、类型、导出)的文件。支持批量读取(一次调用多个文件)、行范围和按名称读取特定符号。

search --使用功能级上下文进行搜索

按术语或正则表达式搜索。不是只返回匹配的行,而是返回 整函数 包含比赛。消除了grep-then-read循环。

find --使用元数据进行文件发现

按glob模式查找文件。结果按目录和文件大小分组。尊重 .gitignore.

symbols --代码结构提取

从文件或目录中提取函数、类、类型、接口、方法。支持Go、TypeScript、JavaScript、Python、Java、Rust和C/C++。不需要LSP——使用快速正则表达式提取。

安装

步骤1:安装

npm install -g @alucardeht/may-la-mcp

步骤2:添加到您的客户端

克劳德代码:

claude mcp add may-la -- may-la-mcp

光标 (~/.cursor/mcp.json):

{
  "mcpServers": {
    "may-la": {
      "command": "may-la-mcp"
    }
  }
}

Gemini CLI:

gemini mcp add may-la -- may-la-mcp

其他客户: 指向命令 may-la-mcp.

支持平台

操作系统 架构
macOS arm64、amd64
Linux amd64
Windows amd64

从源代码构建

git clone https://github.com/alucardeht/may-la-mcp.git
cd may-la-mcp
make build
# Binary at bin/mayla

需要Go 1.22+。不需要CGO。

验证

# Check binary is installed
ls -lh ~/.mayla/mayla

# Test MCP protocol
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","clientInfo":{"name":"test","version":"1.0"}}}' | may-la-mcp

在克劳德代码中: /mcp 应该显示 may-la 在列表中。

建筑

MCP Client (Claude, Cursor, etc.)
    ↓ stdio
may-la-mcp (Node wrapper)
    ↓ spawn
mayla (Go binary, 2.7 MB)
    ↓
5 read-only tools

没有守护进程。没有数据库。没有LSP服务器。二进制文件启动,处理stdio上的请求,并在客户端断开连接时退出。

符号提取

基于正则表达式的7种语言提取——无需语言服务器:

语言 检测到符号
Go 函数、方法、类型、接口、常量
types/JavaScript 函数、类、接口、类型、方法、箭头函数
Python 函数、类、方法
Java 类、接口、方法
Rust 函数、方法、结构、特征、枚举、常量
C/C++ 函数、结构、联合、枚举、定义

.gitignore知道

尊重所有工具 .gitignore 跳过常见的垃圾目录(node_modules, vendor, __pycache__, dist, .git等等)。

项目结构

may-la-mcp/
├── cmd/mayla/             # Entry point (stdio MCP server)
├── internal/
│   ├── mcp/               # MCP protocol (JSON-RPC)
│   ├── tools/             # The 5 tools
│   ├── lang/              # Regex symbol extractors (7 languages)
│   ├── gitignore/         # .gitignore parser
│   └── encoding/          # File encoding (UTF-8, UTF-16)
├── pkg/
│   ├── protocol/          # JSON-RPC types
│   └── version/           # Version info
├── npm/                   # npm package wrapper
├── scripts/               # Installation scripts
└── Makefile

发展

make build      # Build binary
make test       # Run tests
make install    # Install to /usr/local/bin
make fmt        # Format code
make lint       # Run linter

故障排除

may-la-mcp 安装npm后找不到

  • npm全局bin目录可能不在PATH中
  • 检查: npm bin -g
  • 修复:将该目录添加到PATH中

macOS:“无法打开,因为无法验证开发人员”

xattr -d com.apple.quarantine ~/.mayla/mayla

安装过程中未下载二进制文件

  • 检查网络连接
  • 尝试: npm install -g @alucardeht/may-la-mcp 再次
  • 手动下载: GitHub 发布

许可证

Apache许可证2.0