ANTLR4 MCP服务器
Claude Desktop语法调试和操作工具包
 
 ](https://github.com/natl-set/antlr4-mcp) 
MCP(模型上下文协议)服务器,使Claude AI能够读取、分析、修改和调试ANTLR4语法。非常适合使用复杂的解析器、修复语法问题和理解大型多文件语法。
](https://github.com/natl-set/antlr4-mcp)
这是什么?
这个工具让Claude AI通过提供55多种专业工具来帮助您使用ANTLR4语法。Claude可以:
- 查找bug 在你的语法中(比如使用
?当你需要的时候*) - 了解结构 跨多个导入的语法文件
- 建议修复 具有上下文感知令牌模式
- 进行精确编辑 diff输出仅显示变化
- 汇总警告 -将17000个警告转化为10个可操作的项目
为什么要用这个?
传统ANTLR工作流程:
- 编辑语法文件
- 运行ANTLR编译器
- 查看17000条警告
- 手动通过它们
- 猜猜哪一个很重要
- 重复
使用此工具+克劳德:
- 问克劳德“我的语法怎么了?”
- 克劳德分析并说:“你有9个缺失的标记和8个量词错误”
- 克劳德向你展示了需要哪些规则
*而不是? - 克劳德可以一次修复所有问题,也可以让你选择特定的问题
- 在30分钟内完成,而不是几个小时
特性
- 55+专业语法工具 用于分析、验证和修改
- 智能验证 -将17000多个警告汇总为10个可操作项目
- 多文件语法支持 -加载并分析导入的语法
- 模式检测 -查找可疑的量词和反模式
- 性能分析 -检测瓶颈,测试解析速度
- Lexer模式支持 -分析和管理上下文相关的标记化
- 选择性批量修复 -修复特定规则或所有检测到的问题
- 情境感知建议 -智能代币模式建议
- 输出限制 -处理大型语法而不发生令牌溢出
- Diff模式 -仅查看更改,不查看完整文件
安装
先决条件
- Node.js 18+和npm
- Claude Desktop或任何兼容MCP的客户端
- 可选:Java+ANTLR4用于本机运行时(100%准确解析)
设置
- 克隆和构建:
git clone https://github.com/natl-set/antlr4-mcp.git
cd antlr4-mcp
npm install
npm run build- 配置Claude桌面:
增添 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"antlr4": {
"command": "node",
"args": ["/path/to/antlr4-mcp/dist/index.js"]
}
}
}- 重新启动克劳德桌面
快速开始
示例1:验证大型语法
// Old way: 17,234 individual warnings
await use_mcp_tool("antlr4", "validate-grammar", {
from_file: "MyGrammar.g4",
max_issues: 100
});
// New way: Smart validation
await use_mcp_tool("antlr4", "smart-validate", {
from_file: "MyGrammar.g4",
load_imports: true
});
// Output:
// 📊 Total: 17,234 issues across 3 categories
// 1. Undefined tokens (15,890 refs, 9 unique)
// → Add ADDRESS_REGEX (89 refs), EVENT_TYPE (67 refs)
// 2. Suspicious quantifiers (8 rules)
// → bgpp_export: rule? should be rule*
// 3. Incomplete parsing (3 rules)
// → ss_ssl_tls_service_profile uses null_rest_of_line示例2:查找并解决量化问题
// Step 1: Detect issues
await use_mcp_tool("antlr4", "detect-quantifier-issues", {
from_file: "PaloAlto_interface.g4"
});
// Output shows:
// ⚠️ snie_ethernet (line 45)
// Pattern: )?
// Suggestion: Change to )* for multiple occurrences
//
// ⚠️ snie_lacp (line 62)
// Pattern: )?
// Suggestion: Change to )* for multiple occurrences
//
// ... (15 total issues)
// Step 2: Fix specific rules you want to change
await use_mcp_tool("antlr4", "fix-quantifier-issues", {
from_file: "PaloAlto_interface.g4",
rule_names: ["snie_ethernet", "snie_lacp", "snil_units"],
output_mode: "diff",
write_to_file: true
});
// Shows diff:
// @@ -49,7 +49,7 @@
// | snie_layer2
// | snie_layer3
// | snie_virtual_wire
// - )?
// + )*
// ;
// Or fix all detected issues at once:
await use_mcp_tool("antlr4", "fix-quantifier-issues", {
from_file: "PaloAlto_interface.g4",
write_to_file: true // Omit rule_names to fix all
});示例3:添加和测试令牌
// Add token with diff output (see only changes)
await use_mcp_tool("antlr4", "add-rule", {
from_file: "MyGrammar.g4",
rule_name: "EQUALS",
pattern: "'='",
output_mode: "diff",
write_to_file: true
});
// Test it
await use_mcp_tool("antlr4", "preview-tokens", {
from_file: "MyGrammar.g4",
input: "x = 42"
});关键工具
智能验证
- 智能验证 -综合分析与汇总
- 检测量词问题 -查找
?那应该是* - 检测不完整解析 -查找反模式
分析与验证
- 语法分析 -结构分析
summary_only选项 - 验证语法 -语法验证
max_issues限制 - 查找规则用法 -多文件使用情况跟踪
语法操作
- 添加规则 -自动从命名中检测词法分析器/解析器
- 更新规则 -修改现有规则
- 删除规则 -安全删除规则
- 重命名规则 -使用引用更新重命名
- 移动规则 -重新定位规则
- 排序规则 -按字母顺序排序
- 内联规则 -内联一次性使用规则
测试和预览
- 测试解析器规则 -使用输入测试解析器规则
- 预览令牌 -查看标记化结果
- 测试词法规则 -测试词法模式
性能分析
- 分析瓶颈 -检测高分支规则、波浪号否定、缺失模式
- 基准分析 -模拟基准(快速估算)
- 本地基准 -真正的ANTLR4 Java运行时基准测试(准确)
- 配置文件解析 -详细的解析度量(歧义、树深度、规则频率)
- 可视化解析树 -ASCII/JSON/LISP树可视化
- 生成压力测试 -为性能测试生成压力测试输入
- 比较配置文件 -比较两个解析配置文件以衡量优化影响
- 比较语法 -比较两种语法以找出差异
第一阶段分析
- 语法度量 -分支估计、复杂性、依赖关系
- 检测-重做 -ReDoS漏洞扫描程序
- 检查样式 -带有质量评分的风格检查器
Lexer模式
- 分析lexer模式 -分析模式结构和规则
- 分析模式转换 -检测模式转换问题
- 添加lexer模式 -添加新的lexer模式声明
- 将规则添加到模式 -将规则添加到特定模式
批量操作
- 批量创建令牌 -生成多个令牌
- 从错误中建议令牌 -解析错误日志
现实世界影响
测试于 Palo Alto防火墙配置语法 (36个文件,1500+行):
在智能验证之前:
- 17234个单独警告
- 手动grep/分析的小时数
- 难以确定根本原因
智能验证后:
- 3个问题类别
- 9个缺失的代币(带有建议的模式)
- 8个量词错误(有具体修复)
- 3种不完整的解析模式
- 30分钟内修复
发现Bug
- 量化错误 (8条规则)
bgpp_export: rule? // Should be rule*影响:1200多个警告
- 缺少令牌 (9个代币)
ADDRESS_REGEX, EVENT_TYPE, USERNAME_REGEX, ...影响:15890次警告
- 解析不完整 (3条规则)
rule: ... null_rest_of_line // Discards content影响:144次警告
文档
发展
构建
npm run buildCLI基准测试
对于真实ANTLR4运行时的准确性能测试:
# Download ANTLR4 (first time only)
mkdir -p ~/.local/lib
curl -L -o ~/.local/lib/antlr-4.13.1-complete.jar https://www.antlr.org/download/antlr-4.13.1-complete.jar
# Run benchmark
./benchmark-antlr4.sh MyGrammar.g4 start_rule test_input.txt 20运行测试
cd tests
bash run-all-tests.sh测试套件
- 数据丢失防护
- 输出限制
- Diff输出模式
- 智能验证
- 防止超时
所有测试均已通过✅
建筑
- src/index.ts -MCP服务器实现
- src/antlrAnalyzer.ts -核心语法分析引擎
- src/antlr4time.ts -原生ANTLR4运行时集成
贡献
问题和拉取请求欢迎访问
许可证
麻省理工学院
学分
使用Anthropic的模型上下文协议(MCP)构建。
