Chapel语言MCP支持工具

为Chapel编程语言提供的MCP服务器,支持代码编译、教育示例访问、代码检查及与AI助手集成等功能。

  • by DanilaFe
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 DanilaFe/chapel-support

使用说明

MCP教堂支持

Chapel编程语言的模型上下文协议(MCP)服务器,提供使用Chapel代码、访问入门和示例以及将Chapel功能与AI助手和其他工具集成的工具。

什么是教堂?

小教堂 是一种开源并行编程语言,专为大规模高效并行计算而设计。它旨在提高并行计算机的可编程性,同时与MPI、OpenMP和CUDA等当前编程模型的性能和可移植性相匹配或超越。

特性

此MCP服务器提供以下Chapel支持功能:

  • 教堂入门课程:浏览并访问Chapel的教育入门示例
  • 代码编译:通过API直接编译Chapel代码
  • 代码检查:检查教堂代码,了解风格和最佳实践,使用 chplcheck 并应用自动修复
  • 智能CHPL_HOME检测:自动定位Chapel的安装目录

先决条件

  • Python 3.13或更高版本
  • 已安装Chapel编程语言(请参阅 教堂安装指南)
  • (可选) chplcheck 用于linting功能

安装

  1. 克隆此存储库:

    git clone <repository-url>
    cd chapel-support
    
  2. 使用UV创建和激活虚拟环境:

    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. 将环境与项目依赖关系同步:

    uv sync
    

配置

MCP服务器需要知道Chapel安装的位置(CHPL_HOME)。它将尝试按以下顺序找到它:

  1. 从 CHPL_HOME 环境变量
  2. 从a .env 项目根目录中的文件
  3. 通过跑步 chpl --print-chpl-home 如果Chapel编译器在您的PATH中

使用a .env 文件,在项目根目录中创建一个,使用:

CHPL_HOME=/path/to/your/chapel/installation

看 .env.example 对于模板。

用法

运行MCP服务器

uv run chapel-support.py

这将使用您的虚拟环境以stdio传输模式启动MCP服务器。

与AI助手或工具集成

要将此MCP服务器与AI助手或其他工具一起使用,请将其配置为连接到此服务器。例如,在客户端配置文件中:

{
  "context_servers": {
    "chapel-support": {
      "command": {
        "path": "uv",
        "args": [
          "run",
          "--directory",
          "/path/to/chapel-support",
          "chapel-support.py"
        ],
        "env": {}
      },
      "settings": {}
    }
  }
}

注意:将目录路径调整到教堂支架安装的位置。

可用工具

list_primers()

获取可用Chapel初级读本的列表。

退货: 与CHPL_HOME相关的底漆文件的路径列表。

get_primer(path: str)

检索特定教堂入门的内容。

参数:

  • path:返回的引物路径 list_primers()

退货: 底漆的内容为字符串。

compile_program(program_text: str, program_name: str = "program.chpl")

编译Chapel程序。

参数:

  • program_text:要编译的Chapel代码
  • program_name:程序文件的可选名称(默认:“program.chpl”)

退货: 一个包含以下内容的元组:

  • 成功状态(布尔值)
  • 编译器输出/错误(字符串)

list_chapel_lint_rules()

列出所有可用的教堂衣冠规则 chplcheck.

退货: 包含规则信息的词典列表:

  • name:规则名称
  • description:规则描述
  • is_default:默认情况下是否启用该规则

lint_chapel_code(program_text: str, program_name: str = "program.chpl", fix: bool = False, custom_rules: Optional[List[str]] = None)

Lints Chapel代码,并可选择应用修复程序。

参数:

  • program_text:教堂代码为lint
  • program_name:程序文件的可选名称(默认:“program.chpl”)
  • fix:是否应用自动修复(默认值:False)
  • custom_rules:要启用的特定规则列表(默认值:无,使用默认规则)

退货: 包含以下内容的词典:

  • warnings:包含linting警告的字符串
  • fixed_code:固定代码如果 fix=True
  • error:如果出现问题,则显示错误消息
  • stats:关于起毛过程的统计数据

贡献

欢迎投稿!请随时提交拉取请求或未决问题。