AutoCAD AutoLISP Mac GraphRAG MCP 服务

  • 项目简介

    • 这个仓库实现了一个 MCP 服务器,用于 Claude Code 等 MCP 客户端通过 JSON-RPC 形式请求时,提供对 AutoCAD AutoLISP 文档的语义检索与上下文信息服务。核心通过 GraphRAG(基于 Kuzu 图数据库)对 4500 余份官方文档进行向量检索和关系扩展,返回格式化的上下文信息,便于 LLM 进行推理或回答。
  • 主要功能点

    • MCP 服务器实现:使用 FastMCP 框架暴露 MCP 工具,支持通过客户端发起查询请求并获取文本化的上下文结果。
    • 语义检索与图谱扩展:将文档内容向量化后存储在 KUZU 数据库,提供基于查询的向量检索与图谱扩展(种子节点及其邻居节点)。
    • 文档索引与知识图构建:提供 build_graph.py 用于将 AutoLISP / AutoCAD 文档导入并构建图数据库,以及向量索引。
    • 本地验证与兼容性工具整合:结合脚本用于检查 Mac 平台兼容性,便于在上下文中附带相关函数信息。
    • 客户端可用的格式化输出:对检索结果进行格式化,清晰标注 MATCH/RELATED、平台兼容性等信息,方便 LLM 读取。
  • 安装步骤

    • 安装依赖
      • 需要 Python 环境,安装依赖:pip install mcp sentence-transformers kuzu
    • 获取与准备数据
      • 将 AutoCAD/AutoLISP 文档放置在 docs 目录,确保 build_graph.py 能访问。
      • 若首次运行,需要提供 ANTHROPIC_API_KEY(用于文档提取阶段的 Claude API 调用)并运行 build_graph.py 构建图数据库。
    • 生成知识图
      • 运行: python build_graph.py --docs ./docs --db ./autolisp.db
    • 启动 MCP 服务器
      • 运行: python mcp_server.py
    • 注:MCP 客户端配置不在本仓库中提供代码示例,但服务器需要在 Claude Code/ Claude Desktop 等环境中通过 .mcp.json 实现自动发现。服务器会在启动时加载 AUTOLISP_DB_PATH 指定的数据库。
  • 服务器配置(MCP 客户端需要的配置信息,JSON 表示,非代码) 服务器名称: autolisp_docs 启动命令: python3 启动参数: ["/absolute/path/to/mcp_server.py"] 环境变量: { "AUTOLISP_DB_PATH": "/absolute/path/to/autolisp.db" } 注释: 该配置用于 MCP 客户端在启动时知道如何连接到服务器及其工作数据库。实际路径需要根据部署服务器的文件系统填写。

  • 基本使用方法

    • 启动后,客户端可以通过 MCP 调用名为 search 的工具,传入查询文本、可选的展开深度与过滤选项,服务器返回格式化的上下文信息。
    • 示例流程(客户端侧应由 MCP 框架处理,这里仅描述使用逻辑):
      • 发送请求:以查询文本作为输入,指定调用 depth、filter 参数,以获取相关文档节点及其描述。
      • 服务器端处理:基于向量检索与图扩展,返回 MATCH 和 RELATED 节点的摘要信息,包含名称、类型、摘要、平台、是否 Mac 安全、语法等字段。
      • 客户端接收后将结果作为上下文信息注入到 LLM 的对话上下文中,辅助回答与推理。
  • 其他注意事项

    • 数据库与模型需要合规的 API 密钥,Anthropic 模型调用在 ingestion 阶段需要 ANTHROPIC_API_KEY。
    • 服务器与文档结构需要与仓库中的 docs、references、assets 等保持一致,以保证图谱构建与检索的覆盖性与准确性。

服务器信息