mcpField
O
OpenSTAAD MCP Server

OpenSTAAD MCP Server

本地服务
github.com/BentleySystems科研与教育546 天前更新

关于 OpenSTAAD MCP Server

OpenSTAAD MCP Server 通过 OpenSTAAD API 将 AI Agent 连接到正在运行的 Bentley STAAD.Pro 模型。它支持模型操作、API 指引和多实例连接,所有处理均在本机进行且不含遥测。

主要功能

  1. 01通过 OpenSTAAD 操作 STAAD.Pro 模型
  2. 02提供 API 使用指引
  3. 03连接多个运行中的实例
  4. 04本地处理且不含遥测
  5. 05CSV 和 XLSX 数据读写

适用场景

  1. 01在 STAAD.Pro 模型中定义荷载工况
  2. 02提取模型数据或重复设置属性
  3. 03通过 CSV 或 XLSX 处理批量模型数据

MCP 相关

提供 API 指引发现、活动实例列表、对已连接模型执行经过验证的 Python 代码,以及查询连接和分析状态的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbopenstaad-mcp.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

OpenSTAAD MCP 服务

这是一个适用于 Bentley STAAD.Pro 的模型上下文协议(MCP)服务,可让 Claude Desktop、Gemini 或 VSCode Copilot 等 AI Agent 与您的 STAAD.Pro 模型交互,并执行荷载工况定义、数据提取、重复设置属性等各种耗时任务。

此 MCP 服务作为 Bentley 基础设施 AI 协同创新计划的一部分推出,旨在帮助用户和客户发掘机遇、加速创新,同时将 Bentley 独特的工程工具能力融入新兴的 Agent 工作流。

主要功能

  • 快速灵活:延迟极低,可通过 OpenSTAAD API 使用 STAAD.Pro 的全部功能。
  • 适用于 AI:通过专用工具提供文档、指导和反馈,帮助 AI Agent 快速熟悉 STAAD.Pro API。
  • 支持多实例:可同时连接多个正在运行的 STAAD.Pro 实例,以并行处理多个模型的任务。
  • 隐私优先:所有处理都在您的计算机本地进行。不会向云端发送任何数据,也不会收集遥测数据。

前置条件

  • 操作系统:Windows 11 或更新版本
  • 已安装并运行 STAAD.Pro 2025 或更新版本

使用 Claude Desktop 快速开始(<2 分钟)

  1. 从 GitHub Releases 页面下载最新的 openstaad-mcp.mcpb 文件。
  2. 打开 Claude Desktop。
  3. 点击 ☰ 菜单(左上角)→ File → Settings → Extensions。
  4. 点击 Advanced → Install Extensions。
  5. 选择下载的 .mcpb 文件。
  6. 点击 ☰ 菜单(左上角)→ File → Exit
  7. 重启 Claude Desktop。

Claude Desktop 会自动安装此服务。打开新对话并让 Claude 与您的 STAAD.Pro 模型交互。

提示:开始聊天前,请确保 STAAD.Pro 正在运行且已打开模型。


其他客户端和配置

简而言之:

如果尚未安装,请使用以下命令安装 uv:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

配置客户端,使用以下命令以 stdio 模式启动服务:

uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp
使用 GitHub Copilot 的 VS Code
  • 对于 stdio:打开命令面板 → MCP: Add Server... → Command (stdio),然后输入以下命令:

    uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp
    
  • 对于 http:首先在终端中启动服务:

    uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp --transport http
    

    在终端输出中查找生成的令牌和 URL。格式应如下所示:

    WARNING: No --token provided. Auto-generated token: abc123def456ghi789jkl012mno345pq
    INFO:  Starting MCP server 'OpenSTAAD MCP' with transport 'http' (stateless) on http://127.0.0.1:18120/mcp
    

    然后,在 VS Code 中打开命令面板 → MCP: Add Server... → HTTP URL,并输入终端中显示的 URL(例如 http://127.0.0.1:18120/mcp)。18120 是默认端口;如果您同时运行多个实例或修改了默认值,您的端口可能会不同。添加标头 Authorization: Bearer <token>,并填入 MCP 服务终端中显示的令牌。

GitHub Copilot CLI

在 Copilot CLI 会话中使用 /mcp add 命令添加服务。有关详情,请参阅 Copilot CLI 文档。

  • 对于 stdio 传输,使用以下命令:

    uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp
    
  • 对于 HTTP 传输,首先在终端中启动服务:

    uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp --transport http
    

    在终端输出中查找生成的令牌和 URL。格式应如下所示:

    WARNING: No --token provided. Auto-generated token: abc123def456ghi789jkl012mno345pq
    INFO:  Starting MCP server 'OpenSTAAD MCP' with transport 'http' (stateless) on http://127.0.0.1:18120/mcp
    

    然后,在 Copilot CLI 中使用终端显示的 URL 添加服务(例如 http://127.0.0.1:18120/mcp)。18120 是默认端口;如果您同时运行多个实例或修改了默认值,您的端口可能会不同。添加标头 Authorization: Bearer <token>,并填入 MCP 服务终端中显示的令牌。

Claude Desktop(手动配置)

如果你更倾向于手动配置,而不是使用 .mcpb 包,请直接编辑 Claude Desktop 配置文件:

  • Windows(MSIX):%LOCALAPPDATA%\Packages\Claude_<id>\LocalCache\Roaming\Claude\claude_desktop_config.json
  • Windows(经典版):%APPDATA%\Claude\claude_desktop_config.json
  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "openstaad": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/BentleySystems/openstaad-mcp", "openstaad-mcp"]
    }
  }
}
Claude Code(CLI)
  • 对于 stdio 传输模式,请使用以下命令:

    claude mcp add --transport stdio openstaad -- uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp
    
  • 对于 HTTP 传输模式,请先在终端中启动服务:

    uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp --transport http
    

    在终端输出中查找生成的令牌和 URL。输出内容应如下所示:

    WARNING: No --token provided. Auto-generated token: abc123def456ghi789jkl012mno345pq
    INFO:  Starting MCP server 'OpenSTAAD MCP' with transport 'http' (stateless) on http://127.0.0.1:18120/mcp
    

    然后使用以下命令在 Claude Code 中添加服务:

    claude mcp add --transport http openstaad http://127.0.0.1:18120/mcp --header "Authorization: Bearer <your-token>"
    

    18120 是默认端口;如果有多个实例正在运行,或者你更改了默认端口,你的端口可能会有所不同。

Gemini CLI
  • 对于 stdio 传输模式,请使用以下命令:

    gemini mcp add openstaad uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp
    
  • 对于 HTTP 传输模式,请先在终端中启动服务:

    uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp --transport http
    

    在终端输出中查找生成的令牌和 URL。输出内容应如下所示:

    WARNING: No --token provided. Auto-generated token: abc123def456ghi789jkl012mno345pq
    INFO:  Starting MCP server 'OpenSTAAD MCP' with transport 'http' (stateless) on http://127.0.0.1:18120/mcp
    

    然后使用以下命令在 Gemini CLI 中添加服务:

    gemini mcp add --transport http --header "Authorization: Bearer <your-token>" openstaad http://127.0.0.1:18120/mcp
    

    18120 是默认端口;如果有多个实例正在运行,或者你更改了默认端口,你的端口可能会有所不同。

传输模式

该服务支持两种传输模式:

模式使用场景
stdio(默认)MCP 客户端直接启动服务进程。Claude Desktop、Claude Code、VS Code Copilot(stdio 配置)均使用此模式。
HTTP服务持续运行,客户端通过网络连接。
CLI 选项
标志默认值描述
--transport {stdio,http}stdio传输模式
--log-level LEVELINFODEBUG、INFO、WARNING 或 ERROR
--log-file PATHOS 默认值日志文件路径
--port PORT18120[http] 要监听的 TCP 端口
--token TOKEN-[http] 用于身份验证的 Bearer 令牌

可用的 MCP 工具

工具描述
discover_api列出可用的 API 技能和使用指南
read_skills返回所请求技能的详细指南
list_instances列出活动的 STAAD.Pro 实例及其模型路径和版本
execute_code对已连接的 STAAD.Pro 模型运行经过验证的 Python 代码
get_status返回连接状态、STAAD 版本、模型路径和分析状态
文件 I/O

execute_code 工具支持可选的服务端文件 I/O,用于批量数据工作流。 服务器可直接读取和写入 CSV 和 XLSX 文件,并将数据注入沙盒中的 input_data 变量, 无需通过 Agent 的上下文窗口传递大型数据集。

参数描述
input_data_path.csv 或 .xlsx 文件的路径。服务器读取并解析文件,然后将数据注入沙盒中的 input_data 变量。
output_data_path沙盒返回值的写入路径。返回值必须是列表的列表(CSV),或 {sheet_name: {columns, rows}} 字典(多工作表 XLSX)。
overwrite是否允许覆盖现有输出文件(默认值为 false)。

input_data 的结构稳定,并因文件扩展名而异:

  • CSV:由行列表组成的列表。如果检测到表头,表头位于 input_data[0],数据行从 input_data[1:] 开始。
  • XLSX:字典:{sheet_name: {"columns": list, "rows": list_of_rows}}。

路径限制: 在进行任何读写操作之前,文件路径必须解析到已配置的允许范围内。 服务器支持客户端配置的 MCP 根目录和服务端配置的允许目录(通过清单中的 --allowed-dirs 或 user_config.allowed_directories 配置)。 服务器会在访问任何文件之前,根据这些范围验证路径。

限制: 文件最大为 50 MB,最多 100K 行、500 列和 50 个输入工作表。

安全说明

  • Bearer 令牌身份验证。 在 HTTP 模式下运行时,请传入 --token MY_SECRET_TOKEN,并在客户端请求中加入 Authorization: Bearer <token>。
  • DNS 重绑定防护。 Starlette 中间件会验证 Host、Sec-Fetch-Site 和 Origin 标头。
  • 代码沙箱。 execute_code 工具会在执行前通过 AST 分析验证所有 Python 代码。导入、文件访问和危险的内置函数均会被禁止。

隐私政策

请在此处查看 Bentley Systems 的隐私政策。

参与贡献

请参阅 CONTRIBUTING.md,了解如何设置开发环境、命名分支、运行测试和提交拉取请求。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。