项目简介
'protolint' 是一个用于 Protocol Buffer (proto2/proto3) 文件的规范检查与自动化修复工具。它帮助开发者遵循官方스타일 가이드,提升代码质量。现在它支持作为 MCP 服务器运行,允许兼容的 AI 客户端(如 LLM)直接与之交互。
主要功能点
- Protocol Buffer 文件规范检查 (Linting): 自动检测 '.proto' 文件中不符合规范风格或潜在的问题。
- 自动化修复常见规范问题 (Fixing): 对于部分可自动修复的问题,'protolint' 可以直接修改文件来解决。
- 支持自定义检查规则: 允许用户编写插件来添加自己的规范检查规则。
- 通过 MCP 协议提供以上能力给 AI 客户端: 将核心的规范检查和修复功能通过标准化的 MCP 协议提供给支持该协议的 AI 客户端调用。
- 支持多种输出报告格式: 除了 MCP 格式外,还支持 plain, junit, json, sarif, unix, tsc, ci 等多种报告格式。
安装步骤
您可以选择以下任一方式安装 'protolint':
-
Homebrew (macOS/Linux):
brew tap yoheimuta/protolint brew install protolint或者,如果 'protolint' 已在 Homebrew 核心库中,直接使用 'brew install protolint' 安装(此版本由 Homebrew 社区维护,非官方维护)。
-
GitHub Releases 下载预编译二进制: 访问项目的 Releases 页面 'https://github.com/yoheimuta/protolint/releases',下载适用于您的操作系统的最新版本 '.tar.gz' 压缩包。解压后,将包含 'protolint' 可执行文件的目录添加到您的系统 PATH 环境变量中。
-
使用官方 Docker 镜像: 可以通过 Docker Hub 获取官方镜像 'yoheimuta/protolint',并在 Docker 环境中使用。
docker run --volume "$(pwd):/workspace" --workdir /workspace yoheimuta/protolint lint your_proto_file.proto -
从源码安装 (需要 Go 环境): 如果您已经安装了 Go 语言环境,可以通过 'go install' 命令从源码安装,但这可能不会包含版本信息。
go install github.com/yoheimuta/protolint/cmd/protolint@latest -
Node.js / npm: 如果您在 Node.js 项目中使用,可以作为开发依赖安装:
npm install protolint --save-dev安装脚本会自动下载对应的二进制文件。
-
Python: 对于 Python 项目,可以通过 pip 安装包含二进制文件的 'protolint-bin' 包:
pip install protolint-bin
服务器配置
MCP 客户端连接 'protolint' MCP 服务器时,通常需要在其设置中配置服务器的启动命令及其参数。根据 'protolint' 的设计,启动 MCP 服务器的命令是 'protolint --mcp'。配置示例如下:
{ "name": "Protolint MCP Server", "command": "protolint", "args": ["--mcp"], "description": "Provides linting and fixing for Protocol Buffer files." // 实际配置可能因 MCP 客户端不同而有差异,请参考您的客户端文档。 // 传输协议通常默认为 Stdio,即通过标准输入输出进行通信。 }
请参考您的 MCP 客户端(如 Claude Desktop 或其他支持 MCP 的 AI 应用)的文档,了解如何添加和配置外部 MCP 服务器。
基本使用方法(通过MCP客户端)
一旦在您的 MCP 客户端中成功配置并连接了 'protolint' MCP 服务器,您就可以通过客户端提供的用户界面或交互方式来利用 'protolint' 的功能。
例如,客户端可能会提供一个界面,让您选择要进行规范检查的 '.proto' 文件或目录。当您触发检查操作时,MCP 客户端会构建一个符合 MCP 协议的 JSON-RPC 请求(通常是调用 'protolint' 服务器注册的 "lint-files" 工具),并通过配置好的通信通道(如 Stdio)发送给 'protolint' MCP 服务器。
'protolint' 服务器接收到请求后,会执行实际的 linting 或 fixing 操作,并将结果(例如,发现的规范问题列表、每项问题的详细信息、是否已尝试修复等)封装成 JSON-RPC 响应,发送回客户端。客户端接收到响应后,会在其界面上展示检查结果,供您查看和处理。
具体的功能调用方式和结果展示效果完全取决于您使用的 MCP 客户端。
信息
分类
开发者工具