语言智能服务器

一个基于Zig的MCP服务器,为Klar编程语言提供语言智能服务,包括类型检查、悬停信息、跳转到定义、查找引用、文档符号和代码补全等功能。

  • by PhilipLudington
  • Zig
  • 本地部署
  • 更新于
在 GitHub 查看 PhilipLudington/MCP-Klar

使用说明

MCP就绪

基于Zig的MCP(模型上下文协议)服务器,为Klar编程语言提供语言智能。此服务器使Claude Code能够理解、分析和导航Klar代码库。

特性

  • 类型检查 (klar_check)-验证Klar代码并获得诊断
  • 悬停信息 (klar_hover)-在任何位置获取类型和文档信息
  • 转到定义 (klar_definition)-跳转到符号定义
  • 查找引用 (klar_references)-查找符号的所有用法
  • 文件符号 (klar_symbols)-列出文件中的所有符号
  • 代码补全 (klar_completions)-获取智能代码建议

需求

  • 之字形 0.15或更高
  • macOS、Linux或Windows

安装

从源代码构建

  1. 克隆存储库:

    git clone https://github.com/your-username/MCP-Klar.git
    cd MCP-Klar
    
  2. 构建服务器:

    ./build.sh
    

    或手动:

    zig build -Doptimize=ReleaseSafe
    
  3. 二进制文件将位于 zig-out/bin/mcp-klar

运行测试

./run-tests.sh

配置

环境变量

变量 描述
KLAR_STD_PATH Klar标准库路径
KLAR_VERBOSE 设置为 1, true,或 yes 启用详细输出

项目配置(klar.json)

创建一个 klar.json 项目根目录中的文件:

{
    "std_path": "/path/to/klar/std",
    "project_root": ".",
    "source_dirs": ["src", "lib"],
    "verbose": false
}

配置优先级(从高到低):

  1. 环境变量
  2. klar.json 文件
  3. 默认值

使用Claude代码

将服务器添加到您的Claude Code MCP配置中:

{
    "mcpServers": {
        "klar": {
            "command": "/path/to/mcp-klar"
        }
    }
}

可用工具

清楚_检查

键入检查Klar文件并返回诊断结果。

参数:

  • file (string,必填)-.kl文件的路径
  • content (字符串,可选)-未保存缓冲区的文件内容覆盖

_向上

获取某个位置符号的类型和文档信息。

参数:

  • file (string,必填)-.kl文件的路径
  • line (整数,必填)-行号(1-索引)
  • column (整数,必填)-列号(1-索引)
  • content (字符串,可选)-未保存缓冲区的文件内容覆盖

明确_定义

转到某个位置的符号定义。

参数:

  • file (string,必填)-.kl文件的路径
  • line (整数,必填)-行号(1-索引)
  • column (整数,必填)-列号(1-索引)
  • content (字符串,可选)-未保存缓冲区的文件内容覆盖

klar_references

查找某一位置对符号的所有引用。

参数:

  • file (string,必填)-.kl文件的路径
  • line (整数,必填)-行号(1-索引)
  • column (整数,必填)-列号(1-索引)
  • content (字符串,可选)-未保存缓冲区的文件内容覆盖
  • include_definition (布尔值,可选)-在结果中包含定义

明确_符号

列出Klar文件中的所有符号。

参数:

  • file (string,必填)-.kl文件的路径
  • content (字符串,可选)-未保存缓冲区的文件内容覆盖
  • kind (字符串,可选)-按符号类型(函数、结构、枚举、变量等)筛选

klar_完井

在Klar文件中的某个位置获取代码补全。

参数:

  • file (string,必填)-.kl文件的路径
  • line (整数,必填)-行号(1-索引)
  • column (整数,必填)-列号(1-索引)
  • content (字符串,可选)-未保存缓冲区的文件内容覆盖
  • prefix (字符串,可选)-筛选器补全的前缀

可用资源

klar://std/docs

返回Klar标准库的全面文档。

klar://project/structure

返回项目目录结构,列出所有 .kl 文件夹。

故障排除

服务器未启动

  1. 确保安装了Zig 0.15+: zig version
  2. 从源代码重建: ./build.sh
  3. 检查二进制文件是否存在: ls -la zig-out/bin/mcp-klar

未返回诊断结果

  1. 确保文件路径正确且可访问
  2. 检查文件是否有 .kl 扩展
  3. 尝试使用 content 包含文件内容的参数

找不到标准库

设置 KLAR_STD_PATH 环境变量或在中配置它 klar.json.

许可证

麻省理工学院