这是一个 主控程序 服务器实现 3DS MaxScript,允许与您的编码代理集成,为其提供特定的上下文。
这尤其有用,因为:
- Autodesk不允许无头访问MaxScript文档
- MaxScript是一种相对强大但小众的语言,大多数编码代理对此知之甚少
- Max有点笨拙,需要大量的脚本编写
- 2025年,许多工作室仍然严重依赖Max
- 没有互联网检索功能的代理现在有一个本地化的文档
- 文档分为多个主题,通过过滤或语义搜索更容易访问特定主题,而不是通常抓取整个页面
MCP服务器具有7个工具:
- list_documents:列出数据库中所有带有分页的文档ID。
- search_by_tags:按标签搜索文档(每个文档有5-10个重要标签,便于过滤
- search_language_reference:语义搜索
- search_docs:语义搜索对象和接口文档
- search_tools_and_ui:语义搜索工具和ui
- search_os_interaction:语义搜索操作系统交互
- search_example.s:语义搜索示例
语义搜索工具需要 全迷你LM-L6-v2 当代理调用时,它可以在CPU上运行快速的个位数毫秒推理(例如:使用所有内核将4000个文档中的每一个,约14K个块,嵌入数据库中花费了约80秒-别担心,由于数据库附带了代码库,您不必这样做)
1.环境设置
VENV:
python3 -m venv max-mcp-env # this app was developed and tested on Python 3.12 in Ubuntu 24.04.1
source max-mcp-env/bin/activate # or .\max-mcp-env\Scripts\activate on Windows
pip install -r requirements.txt县 :
conda create -n max-mcp-env python=3.12 -y
conda activate max-mcp-env
pip install -r requirements.txt要求很严格,但如果遇到任何问题,您可以尝试使用稍新/稍旧版本的软件包
2.运行服务器
python mcp_server.py 注意:这将下载嵌入代理查询所需的句子转换器模型,其大小约为80mb。该模型下载一次到~/.cache/huggingface/hub/models——句子转换器——all-MiniLM-L6-v2。 可选:添加主机和端口参数 --mcp-port, --mcp-host,默认为 127.0.0.1:9000
3.设置VSCode MCP服务器连接
- 添加:MCP服务器(在您的VS代码编辑器上,
CTRL+SHIFT+P并选择MCP: Add Server) - 将URL设置为:
http://localhost:9000/sse(根据您使用的主机/端口进行调整) - 输入mcp服务器连接的名称(例如:maxscript-mcp服务器)并设置范围(用于从工作区或全局访问所有项目)
- 检查输出以确保存在以下日志:
2025-10-30 15:09:07.309 [info] 405 status sending message to http://localhost:9000/sse, will attempt to fall back to legacy SSE
2025-10-30 15:09:07.318 [info] Discovered 7 tools- 在.vcode文件夹中创建一个mcp.json(如果您使用了workspace选项),其中包含服务器连接详细信息,也可以手动编辑
- 现在,您应该能够使用#(例如:
#maxscript-mcp-server)以及您提供的姓名
关键RAG/代理概念
- 密集向量:该应用程序使用句子变换器(特别是全MiniLM-L6-v2模型)为文档块和搜索查询生成密集、连续的向量嵌入。
- 向量数据库:FAISS(IndexFlatIP)用于在这些密集向量上进行高效的相似性搜索,具有余弦相似性(通过归一化嵌入)。
- 通过其关键字检索
search_by_tags该功能基于预先提取的关键字/标签实现基于术语的搜索。 - 分组和重新排序:
- 初始检索:FAISS根据嵌入相似度返回50个块级结果。 - 细化/重新排名:它通过取每个文档的最大相似性得分将这些结果聚合到文档级结果中,然后排序和选择 top_k 按照精确的分数记录。
