MLIR MCP服务器
用于MLIR(多级中间层)的MCP(模型上下文协议)服务器 代表)操纵。该服务器使像Claude这样的AI助手能够 通过标准化的方法解析、生成、转换和分析MLIR代码 协议。
特性
MCP工具
服务器提供9个MCP工具用于MLIR操作:
服务器管理:
ping-健康检查端点toolchain_info-获取工具链配置和工具可用性
解析和验证: 3\. parse_mlir -解析MLIR代码并提取模块信息 4\. validate_mlir -验证MLIR语法和语义 5\. get_module_info -提取详细的结构信息(操作, 区域、块)
代码生成: 6\. create_function -生成具有自定义签名的MLIR函数 7\. create_operation -生成特定的MLIR操作 8\. generate_from_template -从预定义模板生成MLIR 9\. list_templates -列出可用的生成模板
配置
- 零配置设置:自动检测通用MLIR工具链
安装位置
- 灵活配置:支持
.env文件和环境变量
用于自定义工具链路径
- 简单且可扩展:最小配置,留有未来空间
扩张
- 轻松验证:使用最少的MLIR安装(核心工具
仅限),可选工具可优雅回退
安装
先决条件
- bash或兼容的shell
- Python 3.10或更高版本
- 已安装MLIR工具链(来自LLVM项目或自定义构建)
- MLIR Python绑定(可选,但解析工具需要)
重要:使用与MLIR Python绑定相同的Python版本。检查 通过检查扩展模块:
ls /path/to/mlir/python_packages/mlir_core/mlir/_mlir_libs/
# Look for: _mlir.cpython-311-darwin.so (Python 3.11)
# or: _mlir.cpython-310-linux.so (Python 3.10)
# ^^^^^^^^来源
git clone https://github.com/brnorris03/mlir-mcp-server.git
cd mlir-mcp-server
# Create virtual environment with Python version matching your MLIR bindings
# Example: if MLIR was built with Python 3.11
python3.11 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install package
pip install -e .为了发展
pip install -e ".[dev]"MLIR Python绑定设置
自动设置(推荐):使用 MLIR_INSTALLATIONS 配置 选项(请参阅下面的配置部分)。服务器将自动 为您配置Python和库路径!
手动设置 (如果需要):
# Set MLIR Python bindings path
export PYTHONPATH=/path/to/mlir/python_packages/mlir_core:$PYTHONPATH
# Set library path for MLIR shared libraries
# macOS:
export DYLD_LIBRARY_PATH=/path/to/mlir/lib:$DYLD_LIBRARY_PATH
# Linux:
export LD_LIBRARY_PATH=/path/to/mlir/lib:$LD_LIBRARY_PATH
# Windows:
set PATH=C:\path\to\mlir\bin;%PATH%助手脚本:使用这些来运行服务器/测试:
./run_server.sh-运行服务器./run_tests.sh-运行测试
配置
MLIR MCP服务器使用简单、灵活的配置系统 自动检测。
自动检测
服务器会自动在这些位置搜索MLIR工具链(在 订单):
/opt/ttmlir-toolchain/bin/usr/local/llvm/bin/usr/local/bin/opt/llvm/bin~/llvm-project/build/bin
如果您的MLIR工具链位于以下位置之一 mlir-opt 目前,没有 需要配置!
简单配置
对于单个MLIR安装,请使用 MLIR_TOOLCHAIN_PATH:
export MLIR_TOOLCHAIN_PATH=/path/to/llvm/build/bin
python -m mlir_mcp_server多个MLIR安装
对于多个MLIR项目(例如,主要LLVM+自定义方言),请使用 MLIR_INSTALLATIONS:
# Automatically configures PYTHONPATH, library paths, and tools
export MLIR_INSTALLATIONS=/opt/llvm-build:/opt/custom-project
python -m mlir_mcp_server每个安装根目录应包含:
bin/-MLIR工具(MLIR选项、自定义选项等)lib/-共享库python_packages/mlir_core/-Python绑定
服务器自动执行以下操作:
- 在所有bin目录中搜索工具
- 将所有Python绑定添加到sys.path
- 设置特定于平台的库路径(macOS上的DYLD_library_PATH,
Linux上的LD_LIBRARY_PATH)
配置文件(.env)
创建一个 .env 项目根目录中的文件用于持久配置。
选项1:简单的单次安装
MLIR_TOOLCHAIN_PATH=/path/to/llvm/build/bin选项2:多个MLIR安装(推荐)
自动配置工具、Python绑定和库路径:
# Colon-separated list of MLIR installation roots
# Each should have: bin/, lib/, python_packages/mlir_core/
MLIR_INSTALLATIONS=/path/to/llvm-build:/path/to/custom-mlir-project
# Example with main LLVM + custom "TT" project:
# MLIR_INSTALLATIONS=/opt/llvm:/opt/tt-mlir这会自动:
- 搜索两者
/opt/llvm/bin和/opt/tt-mlir/bin用于工具 - 将两个Python绑定添加到PYTHONPATH
- 将两个库目录添加到LD_LIBRARY_PATH/DYLD_LIBRARY_PATH
- 使工具像
mlir-opt和tt-opt可用的
无需手动设置PYTHONPATH或LD_LIBRARY_PATH!
配置优先
服务器使用此优先级(从高到低)解析工具链路径:
.env配置文件- 环境变量
- 从常见位置自动检测
使用Claude Desktop
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"mlir": {
"command": "python",
"args": ["-m", "mlir_mcp_server"],
"env": {
"MLIR_TOOLCHAIN_PATH": "/usr/local/llvm/bin"
}
}
}
}备注:在Windows上,在路径中使用正斜杠或转义反斜杠(例如。, "C:/LLVM/bin" 或 "C:\\LLVM\\bin").
如果你忽略了 MLIR_TOOLCHAIN_PATH,服务器将自动检测工具链。
运行服务器
独立
python -m mlir_mcp_server服务器使用stdio传输,并已准备好接收MCP请求。
测试安装
启动服务器后,您可以使用MCP客户端或Claude对其进行测试 桌面。服务器提供两个基本工具:
ping:返回服务器状态的健康检查toolchain_info:有关配置的MLIR工具链和
可用工具
发展
运行测试
pytest代码格式化
black src tests
ruff check src tests类型检查
mypy src工具链验证
服务器在启动时验证MLIR工具链:
- 核心工具(必需):
mlir-opt,mlir-translate - 可选工具:
mlir-reduce,mlir-query,mlir-runner
如果缺少核心工具,服务器将退出并出错。如果可选工具 当以下情况发生时,将记录警告并禁用相应的MCP工具 实施。
项目状态
该项目正在积极开发中。目前实施:
- ✅ 具有自动检测功能的配置系统
- ✅ 支持多个MLIR安装
- ✅ 自动Python绑定和库路径设置
- ✅ 配备18个工具的MCP服务器
- ✅ MLIR解析工具(解析、验证、获取模块信息)
- ✅ MLIR生成工具(创建函数、操作、模板)
- ✅ MLIR转换工具(应用过程、规范化)
- ✅ MLIR分析工具(计数操作、提取函数、分析操作数)
- ✅ MLIR翻译工具(MLIR↔ LLVM-IR)
- ✅ 全面的测试套件(137个测试,87%的覆盖率)
马上就来:
- 方言文档的资源提供者
- 常见MLIR任务的工作流提示
贡献
欢迎投稿!请随时提交拉取请求。
许可证
MIT许可证-请参阅 许可证 了解详情。
作者
博亚娜·诺里斯(brnorris03@gmail.com)
