Token导航 LogoToken导航TokenDH.com
Ilerpg Code Checker logo
开发工具未说明官方级别未说明来源级核验

Ilerpg Code Checker

MCP Server

一个用于检查ILE-RPG源代码语法和编码规范合规性的MCP服务器。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
Claude开发工具命令行工具Claude DesktopClaudeClineVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

GuriCat

提供方

GuriCat

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

ILE-RPG代码检查器

检查ILE-RPG语法和编码标准合规性的MCP服务器。

概述

此MCP服务器分析ILE-RPG源代码并检测以下问题:

  • 规格订单错误
  • 违反列位置规则
  • 线路延续错误
  • 违反命名约定
  • 使用已弃用的功能
  • 违反最佳做法

特性

检查功能

  1. 结构检查

- 规格顺序(H→F→D→P→I→C→O) 具有P程序段意识 - 每种规格的列位置规则(H/F/D/P/C) - D-spec高级验证(名称续 ...、声明类型放置、尾随句点检测) - 行长度限制(最多100列) - DBCS(双字节字符集)支持,并考虑移位字符

  1. 语法检查

- 行连续规则验证 - 禁止在一行上多个语句 - /免费和/或免费通信 - 正确使用\*\*免费格式 - 括号和字符串文字匹配

  1. 命名约定检查

- 变量和过程名称约定 - 特殊字符使用限制 - 有意义的名字推荐 - 保留字检查(严格级别)

  1. 最佳实践检查

- 检测16个已弃用的功能(GOTO、TAG、MOVE、MOVEL、Z-ADD、Z-SUB等) - 编号指示器警告(\*IN01-\*IN99) - 关于完全自由格式的建议 - 自定义规则支持

  1. 常见错误检测

- F-spec空间短缺 - D-spec列位置错误(包括列偏移启发式) - 连续行错误

检查液位

  • 基本的:基本检查(规范顺序、关键语法错误)
  • 标准:标准检查(基本+列位置、行连续性等)
  • 严格:严格检查(标准+命名约定、最佳实践)

多语言支持

  • 英语(en):默认语言
  • 日语(ja):对所有消息和报告提供全面的日语支持

DBCS支持

considerDBCS 如果启用了该选项,检查器将考虑DBCS字符串(日语、中文、韩语)中使用的移入(SI)和移出(SO)字符。这可确保在存在DBCS字符时进行准确的列位置验证。

自定义规则

用户可以在JSON文件中定义自定义最佳实践规则。规则支持:

  • 基于模式的匹配(正则表达式)
  • 自定义严重性级别
  • 启用/禁用功能
  • 规则说明和建议

安装

先决条件

  • Node.js 18或更高版本
  • npm

设置

  1. 安装依赖项:
cd /path/to/ilerpg-code-checker
npm install
  1. 构建:
npm run build
  1. 添加到MCP配置文件:

适用于IBM Bob IDE

添加以下内容 c:\Users\user\AppData\Roaming\Bob-IDE\User\globalStorage\ibm.bob-code\settings\mcp_settings.json:

{
  "mcpServers": {
    "ilerpg-code-checker": {
      "command": "node",
      "args": ["
\\build\\index.js"],
      "disabled": false,
      "alwaysAllow": [],
      "disabledTools": []
    }
  }
}

适用于克劳德桌面

添加到您的Claude Desktop MCP设置文件(通常 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS或 %APPDATA%\Claude\claude_desktop_config.json 在Windows上):

{
  "mcpServers": {
    "ilerpg-code-checker": {
      "command": "node",
      "args": ["
/build/index.js"]
    }
  }
}

对于Cline(VS代码扩展)

在VS Code中添加到您的临床MCP设置中:

{
  "mcpServers": {
    "ilerpg-code-checker": {
      "command": "node",
      "args": ["
/build/index.js"]
    }
  }
}

注: 替换 带有ilerpg代码检查器目录的实际绝对路径。

用法

MCP工具

关于代币效率的说明: 检查文件时,最好使用 check_rpg_file 超过 check_rpg_codeThe check_rpg_file 该工具直接在服务器端读取文件,与传递整个代码内容相比,大大减少了令牌的使用 check_rpg_code。这对于大文件或检查多个文件时尤为重要。

1.check_rpg_code

检查整个RPG源代码。 注: 为了提高令牌效率,请考虑使用 check_rpg_file 检查文件时。

use_mcp_tool({
  server_name: "ilerpg-code-checker",
  tool_name: "check_rpg_code",
  arguments: {
    code: "H DFTACTGRP(*NO)\n...",
    checkLevel: "standard",  // "basic" | "standard" | "strict"
    language: "en",          // "en" | "ja"
    considerDBCS: false,     // true to consider DBCS shift characters
    customRulesPath: "./custom-rules.json"  // Optional
  }
})

返回值:

{
  "valid": false,
  "issues": [
    {
      "severity": "error",
      "category": "structure",
      "line": 10,
      "column": 7,
      "message": "Invalid specification order...",
      "rule": "SPEC_ORDER",
      "suggestion": "..."
    }
  ],
  "summary": {
    "totalIssues": 5,
    "errors": 2,
    "warnings": 2,
    "infos": 1,
    "checkedLines": 100
  }
}

2.检查_规格_订购

仅检查规格顺序。

use_mcp_tool({
  server_name: "ilerpg-code-checker",
  tool_name: "check_specification_order",
  arguments: {
    code: "H DFTACTGRP(*NO)\n...",
    language: "en"  // "en" | "ja"
  }
})

3.检查列位置

检查列位置规则。

use_mcp_tool({
  server_name: "ilerpg-code-checker",
  tool_name: "check_column_positions",
  arguments: {
    code: "H DFTACTGRP(*NO)\n...",
    language: "en",       // "en" | "ja"
    considerDBCS: false   // true to consider DBCS shift characters
  }
})

4.检查最小约定

检查命名约定。

use_mcp_tool({
  server_name: "ilerpg-code-checker",
  tool_name: "check_naming_conventions",
  arguments: {
    code: "D MyVar           S             10A\n...",
    language: "en"  // "en" | "ja"
  }
})

5.检查_测试_实践

检查最佳实践。

use_mcp_tool({
  server_name: "ilerpg-code-checker",
  tool_name: "check_best_practices",
  arguments: {
    code: "C                   GOTO      Label\n...",
    language: "en",                         // "en" | "ja"
    customRulesPath: "./custom-rules.json"  // Optional
  }
})

6.check_rpg_file

逐一检查文件。 推荐: 这个工具比 check_rpg_code 因为它通过直接在服务器端读取文件来减少令牌使用。

use_mcp_tool({
  server_name: "ilerpg-code-checker",
  tool_name: "check_rpg_file",
  arguments: {
    filePath: "//your-server/path/to/your-file.rpg",
    checkLevel: "standard",
    language: "en",          // "en" | "ja"
    considerDBCS: false,     // true to consider DBCS shift characters
    customRulesPath: "./custom-rules.json"  // Optional
  }
})

自定义规则

创建一个JSON文件来定义自定义最佳实践规则:

{
  "rules": [
    {
      "id": "no-select-all",
      "name": "Avoid SELECT *",
      "description": "Using SELECT * is not recommended",
      "pattern": "SELECT\\s+\\*",
      "severity": "warning",
      "suggestion": "Specify column names explicitly",
      "enabled": true
    },
    {
      "id": "require-error-handling",
      "name": "Error handling required",
      "description": "All file operations should have error handling",
      "pattern": "CHAIN|READ|WRITE|UPDATE|DELETE",
      "severity": "info",
      "suggestion": "Add error handling with %ERROR or *IN99",
      "enabled": true
    }
  ]
}

自定义规则属性

  • id:规则的唯一标识符
  • name:显示名称
  • description:详细说明
  • pattern:要匹配的正则表达式模式
  • severity:“错误”|“警告”|“信息”
  • suggestion:关于解决该问题的建议
  • enabled:true | false

检测到的问题示例

结构错误

F-spec
H-spec  ← Error: H-spec must be placed before F-spec

列位置错误

D MyVariable    S             10A  ← Error: Variable name is not in correct column position

行连续错误

D MyLongVariableName
D-                    S             10A  ← Error: Continuation line spec type mismatch

违反命名约定

D x               S             10A  ← Warning: Variable name is too short
D 1stVar          S             10A  ← Error: Variable name cannot start with a number

弃用功能

C                   GOTO      Label  ← Warning: GOTO is deprecated
C     Label        TAG

DBCS示例

considerDBCS: true:

D MyVar           S             10A   INZ('日本語')
  ↑ Correctly accounts for shift characters in column position check

发展

项目结构

ilerpg-code-checker/
├── package.json
├── tsconfig.json
├── README.md                 # Documentation (English)
├── README.ja.md              # Documentation (Japanese)
├── DESIGN.md                 # Architecture & design document
├── custom-rules.example.json # Custom rules example
├── src/
│   ├── index.ts              # MCP server entry point
│   ├── orchestrator.ts       # Check orchestration
│   ├── parser/
│   │   ├── rpg-parser.ts     # RPG code parser
│   │   └── line-analyzer.ts  # Line analysis
│   ├── checkers/
│   │   ├── structure-checker.ts     # Spec order & column validation
│   │   ├── syntax-checker.ts        # Syntax & format validation
│   │   ├── naming-checker.ts        # Naming convention validation
│   │   ├── best-practice-checker.ts # Deprecated features & best practices
│   │   └── common-errors-checker.ts # Common error patterns
│   ├── i18n/
│   │   └── messages.ts       # Multi-language messages (en/ja)
│   ├── config/
│   │   └── custom-rules.ts   # Custom rules manager
│   ├── types/
│   │   └── index.ts          # Type definitions
│   └── utils/
│       ├── file-reader.ts    # File I/O operations
│       ├── reporter.ts       # Report formatting
│       └── dbcs-helper.ts    # DBCS support utilities
└── build/                    # Compiled output

构建

npm run build

开发模式(自动构建)

npm run watch

故障排除

MCP服务器无法启动

  1. 检查Node.js版本: node --version (要求18岁或以上)
  2. 验证构建是否完成:检查 build/index.js 存在
  3. 验证MCP配置文件路径是否正确

未显示检查结果

  1. 检查源代码编码(建议使用UTF-8)
  2. 验证文件路径是否正确
  3. 检查MCP服务器日志

许可证

麻省理工学院

作者

古里卡特

版本

0.0.7

更新日志

0.0.7 (2026-02-12)

  • 修复了WCA4i测试用例的误报
  • 改进了连续行的解析器鲁棒性
  • 修复了P程序部分内的SPEC_ORDER误报

0.0.6 (2026-02-12)

  • 增加了第9阶段的编译结果,用于D-spec验证
  • 名称延续语法(...)搬运
  • 声明类型错位检测(第22-23列vs第24-25列)
  • 字段名称中的尾随周期检测(RNF0622/RNF0623)
  • 大小字段中关键字检测的列移位启发式算法

0.0.5 (2026-02-12)

  • 增强的D-spec柱位置验证
  • 跨规格进行更稳健的柱位置检查
  • 改进了错误消息和建议

0.0.4 (2026-01-25)

  • 完全自由格式(\*\*免费)检测
  • 工具描述中的令牌效率改进
  • 修复了\*\*行长度验证前的免费检测

0.0.3 (2026-01-25)

  • 添加了完全免费的格式检测支持
  • 提高令牌效率的工具描述改进
  • 更名为“ILE RPG代码检查器”
  • 在启动消息中添加了版本号

0.0.2 (2026-01-25)

  • 更新文件
  • 将标题从“ILE-RPG编码标准检查器”更改为“ILE-RPG-代码检查器”
  • 更新说明,包括“语法和编码标准”
  • 示例中隐藏敏感信息
  • 修复了DBCS示例使用INZ而不是日语变量名的问题

0.0.1 (2026-01-25)

  • 初始版本
  • 基本检查功能实现
  • 提供6个MCP工具
  • 多语言支持(英语/日语)
  • DBCS字符支持
  • 自定义规则功能

参考文献

  • IBM i信息中心-ILE RPG参考

支持

对于问题或疑问,请向项目的问题跟踪器报告。

目录标签

目录标签

Claude开发工具命令行工具RPGLE本地部署代码检查语法分析编码规范RPG语言

支持客户端

Claude DesktopClaudeClineVS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP