Token导航 LogoToken导航TokenDH.com
Etabs MCP Server Local Embeddings logo
搜索检索stdio官方级别未说明来源级核验

Etabs MCP Server Local Embeddings

MCP Server

一个基于本地嵌入模型的ETABS文档语义搜索工具,通过MCP协议为AI模型提供文档内容检索功能。

工具数

0

提示词数

0

GitHub Stars

10

资源数

0
搜索TypeScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

PriyankGodhat

提供方

PriyankGodhat

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

ETABS文档助理MCP服务器(本地嵌入)

该项目提供了一个模型上下文协议(MCP)服务器,允许AI模型(如Anthropic的Claude通过Claude Desktop)在 用户提供 ETABS文件。它使用局部句子变换器模型进行嵌入生成(通过 @xenova/transformers.js)ChromaDB用于矢量存储,使其在初始设置后可以自由运行。

核心功能:

  • 显示名为的MCP工具 search_etabs_docs.
  • 接受关于ETABS的自然语言查询。
  • 使用语义相似性在用户的索引ETABS文档中查找最相关的部分。
  • 将文档中的文本片段(带有源文件引用)返回给MCP客户端(例如Claude Desktop),以供AI模型用作上下文。

______________________________________________________________________

🚨 重要免责声明🚨

  • 不包括ETABS文件: 此存储库 包含任何ETABS文档文件。ETABS文档是股份有限公司计算机与结构公司(CSI)拥有的专有软件。
  • 用户必须提供文件: 要使用此服务器,您 必须 持有合法获得的ETABS文件副本,通常在 .chm 格式。
  • 无隶属关系: 本项目不隶属于股份有限公司计算机与结构公司(CSI),也不由其背书或赞助。
  • 使用风险自负: 本软件按“原样”提供,不提供保修。确保您遵守ETABS及其文档的所有相关软件许可证。

______________________________________________________________________

架构概述

该项目由两个主要部分组成:

  1. Python索引器(index_chm_py/): 从您的网页中提取内容的脚本 .chm ETABS文档文件,将其转换为文本,将其分块,使用句子转换器在本地生成嵌入,并将所有内容存储在本地ChromaDB数据库中。 最初需要运行一次。
  2. Node.js MCP服务器(src/): 持续运行的实际MCP服务器。它通过以下方式接收搜索查询 search_etabs_docs 工具,在本地为查询生成嵌入,在ChromaDB数据库中查询类似的块,并将结果返回给连接的MCP客户端。
graph LR
    U[User] --> Client[MCP Client e.g., Claude Desktop]
    Client -- MCP (stdio) --> Server[Node.js MCP Server]
    Server -- HTTP --> DB[(ChromaDB via Docker)]
    User -- Provides --> CHM[ETABS .chm File]
    CHM -- Used by --> Indexer[Python Indexer Script]
    Indexer --> DB

______________________________________________________________________

先决条件

在开始之前,请确保已安装以下内容:

  • Node.js: 推荐版本18或更高版本(下载).
  • npm: 通常包含在Node.js中。
  • python 建议使用3.9或更高版本(下载).确保 pythonpip 在你的路径。
  • Docker: 需要轻松运行ChromaDB矢量数据库().确保Docker守护进程/服务正在运行。
  • ETABS文档文件: 您合法获得的 etabs.chm (或类似名称)文件。
  • CHM提取工具: 一个能够提取的外部命令行工具 .chm 文件内容。此脚本试图使用 7z (来自7-Zip)或 chmextract.

- 窗户: 安装7-Zip。确保 7z.exe 在安装期间或之后添加到系统的PATH环境变量中。 - macOS: 通过Homebrew安装: brew install p7zip chmextract (提供两者 7zchmextract). - Linux(Debian/Ubuntu): sudo apt update && sudo apt install p7zip-full libchm-bin (提供 7zchmextract).

(在继续之前,请验证该工具是否可以从您的终端调用)。

______________________________________________________________________

安装说明

克隆存储库:

git clone https://github.com//etabs-mcp-server-local-embeddings.git
cd etabs-mcp-server-local-embeddings

(替换 `` 使用您的实际用户名)

安装Node.js依赖关系:

npm install

设置Python环境并安装依赖项:

# Navigate to the Python indexer directory
cd index_chm_py

# Create a Python virtual environment
python -m venv .venv

# Activate the virtual environment
# Windows (Command Prompt): .venv\Scripts\activate.bat
# Windows (PowerShell):   .venv\Scripts\Activate.ps1
# macOS/Linux:            source .venv/bin/activate

# Install Python dependencies
pip install -r requirements.txt

# IMPORTANT: Stay in this activated environment for the indexing step!

# Go back to the project root when done with Python setup/indexing
# cd ..

______________________________________________________________________

配置

复制示例环境文件:从项目根目录:

cp .env.example .env

编辑 .env:打开 .env 使用文本编辑器在项目根目录中创建文件。

  • 查看 CHROMA_COLLECTION_NAME.默认值 etabs_docs_local 通常很好。
  • 查看 LOCAL_EMBEDDING_MODEL. Xenova/all-MiniLM-L6-v2 这是一个很好的默认设置。您可以从Hugging Face将其更改为其他兼容型号(如果以后更改,则需要重新索引)。
  • 审查 CHROMA_HOST.默认值 http://localhost:8000 匹配下面的Docker命令。确保可以从运行索引器的位置访问它。

______________________________________________________________________

运行依赖关系(ChromaDB)

启动Docker桌面:确保Docker应用程序/服务正在运行。

启动ChromaDB容器:在项目根目录中打开一个终端并运行:

# Remove container if it exists from a previous run
docker rm -f etabs_chroma_local

# Run ChromaDB, mapping local data directory for persistence
# (Use ` ` for line continuation in PowerShell if needed)
docker run -d -p 8000:8000 --name etabs_chroma_local \
  -v "$(pwd)/chroma_data:/chroma/chroma" \
  chromadb/chroma

这将启动ChromaDB分离(-d),映射端口8000,命名容器,并映射本地 chroma_data 用于持久化的文件夹。

______________________________________________________________________

索引过程(一次性设置)

此步骤提取您的 .chm 文件,处理内容,生成嵌入,并填充ChromaDB数据库。您只需执行一次,除非您的ETABS文档文件发生重大更改。

  • 确保依赖关系正在运行: Docker桌面必须正在运行,并且 etabs_chroma_local ChromaDB容器必须启动(使用 docker start etabs_chroma_local 如果之前已停止)。
  • 激活Python虚拟环境: 如果尚未激活,请导航到 index_chm_py 并激活 .venv (source .venv/bin/activate 或Windows等效物)。
  • 运行索引器脚本: 从中执行以下命令 index_chm_py 目录(当venv处于活动状态时),替换 `

` 使用文档文件的实际完整路径:

python indexer.py --chm-file "
"

在路径两边使用引号,特别是如果它包含空格。

  • 示例(Windows):
  python indexer.py --chm-file "C:\Program Files\Computers and Structures\ETABS 21\etabs.chm"
  • 示例(macOS):
  python indexer.py --chm-file "/Applications/ETABS.app/Contents/Resources/etabs.chm"
  • 示例(Linux):
  python indexer.py --chm-file "/opt/CSI/ETABS/Documentation/etabs.chm"

等待:此过程可能需要时间(分钟到小时)。监控控制台输出的进度和错误。

______________________________________________________________________

运行MCP服务器

索引完成且ChromaDB运行后:

  • 导航到项目根目录: 确保你的终端在主 etabs-mcp-server-local-embeddings 目录。
  • 构建Node.js服务器(如果您对代码进行了更改):
  npm run build
  • 启动服务器:
  npm start

或者,对于自动重新加载的开发: npm run dev

服务器将加载嵌入模型(第一次运行时可能需要一点时间 npm startnpm run dev 克隆后),然后打印 ...running on stdio. 到控制台的标准错误输出。它现在正在等待MCP客户端连接。

______________________________________________________________________

连接到客户端(示例:Claude Desktop)

  • 查找/创建Claude桌面配置:

- 窗户: %APPDATA%\Claude\claude_desktop_config.json - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • 编辑配置: 在中为您的服务器添加条目 mcpServers 对象,使用编译的绝对路径 build/server.js 文件。
{
  "mcpServers": {
    // Add other servers here if you have them
    "etabs-local-docs": {
      "command": "node", // Or full path to node.exe if needed
      "args": [
        // --- REPLACE WITH YOUR ABSOLUTE PATH ---
        // Windows Example: "C:\\Users\\YourUser\\Projects\\etabs-mcp-server-local-embeddings\\build\\server.js"
        // macOS Example: "/Users/youruser/Projects/etabs-mcp-server-local-embeddings/build/server.js"
        // Linux Example: "/home/youruser/projects/etabs-mcp-server-local-embeddings/build/server.js"
        "YOUR_ABSOLUTE_PATH_TO_PROJECT/etabs-mcp-server-local-embeddings/build/server.js"
      ]
      // "env": {} // Environment variables needed by the Node.js server can be added here if not using .env properly
    }
  }
}

(记得使用双反睫毛 \\ 在JSON字符串中的Windows路径上)

保存配置文件。

完全重新启动克劳德桌面。重新打开之前,确保完全退出(检查系统托盘/菜单栏)。

验证: 寻找锤子图标 在克劳德桌面。单击它以确认您的 search_etabs_docs 工具已列出。

______________________________________________________________________

故障排除

索引失败:

  • 检查Python错误消息。
  • 验证 .chm 文件路径正确。
  • 确保CHM提取工具(7zchmextract)已正确安装并位于系统的PATH中。尝试在测试文件上从命令行手动运行该工具。
  • 确认ChromaDB容器(etabs_chroma_local)正在运行(docker ps).
  • 确保Python虚拟环境已激活 pip install -r requirements.txt 成功了。

服务器无法启动(npm start):

  • 做了 npm run build 完整无误?检查终端输出。
  • 加载嵌入模型时可能会出现问题(需要足够的RAM/CPU)。检查终端输出是否有错误。

Claude桌面连接失败(“设置”>“开发人员”中的“失败”状态):

  • 仔细检查绝对路径 build/server.js 在……里面 claude_desktop_config.json.确保路径分隔符正确(\\ 适用于Windows)。
  • Node.js是否安装在PATH中?尝试使用完整路径 node.exe/node 在配置的命令字段中。
  • 服务器脚本是否提前退出?尝试 npm start 在终端中手动查看它是否保持运行或打印错误。
  • ChromaDB容器是否正在运行?如果无法连接,Node.js服务器可能会崩溃。
  • 检查Claude日志:在Claude的开发人员设置中单击“打开日志文件夹”。看 mcp.logmcp-server-etabs-local-docs.log (或您的服务器名称)。 console.error Node.js脚本中的消息显示在此处。

______________________________________________________________________

许可证

该项目根据MIT许可证获得许可。有关详细信息,请参阅LICENSE文件。请记住,此许可证仅适用于此存储库中的代码,不适用于ETABS文档本身。

______________________________________________________________________

目录标签

目录标签

搜索TypeScriptClaude语义搜索本地部署本地嵌入模型ETABS文档MCP协议AI辅助工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP