solibri
MCP Solibri
MCP 服务器,将 Solibri 转化为可供 LLM 使用的工具。无需手动操作 Solibri,你只需用中文说:“在这两个模型上运行协调规则,并告诉我最严重的十处碰撞”。
LLM → MCP Client → MCP Solibri → REST API local / Autorun → SolibriLLM 永远不会直接与 Solibri 对话,也无法访问你的电脑:它只能调用此服务器的 25 个具名工具,且这些工具全部被限制在一个工作文件夹内。
安装
先决条件: Node.js 20.18.1+(推荐 22 LTS)并已安装 Solibri Office。
git clone https://github.com/Vanderjohnny/solibri-mcp.git
cd solibri-mcp
npm installnpm install 会编译项目。接下来,将服务器注册到你的应用程序中:
npm run register它会检测机器上的 Claude Code 和 Claude Desktop,并将服务器注册到这两者(修改前会备份现有配置)。如果你更愿意自行选择:
npm run register -- --code # somente Claude Code
npm run register -- --desktop # somente Claude Desktop
npm run register -- --print # não altera nada, só mostra a configuração在 Claude Desktop 中,注册后请重启应用程序。
要确认一切是否正常:
npm run doctor[OK ] Node.js 20 ou superior — versao 24.16.0
[OK ] Dependencias instaladas
[OK ] Build presente
[OK ] Solibri instalado — C:\Program Files\Solibri\SOLIBRI\Solibri.exe
[OK ] Workspace acessivel
[OK ] REST API do Solibri respondendo手动注册
如果你不想使用脚本:
Claude Code
claude mcp add solibri --scope user -- node "CAMINHO/DO/PROJETO/dist/index.js"Claude Desktop — 编辑 claude_desktop_config.json:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"solibri": {
"command": "node",
"args": ["CAMINHO/DO/PROJETO/dist/index.js"]
}
}
}仓库还包含一个 .mcp.json,当你在项目文件夹内打开 Claude Code 时,它会自动生效。
Related MCP server: revit-mcp
启动 Solibri 的 REST API
Solibri 不会自行启动 REST 服务器:它依赖命令行参数。在 Windows 上,请使用项目自带的快捷方式:
Iniciar Solibri com REST API.bat它会自行找到已安装的 Solibri。若要手动启动:
"C:\Program Files\Solibri\SOLIBRI\Solibri.exe" --rest-api-server-port=10876 --rest-api-server-http快速测试:
curl http://127.0.0.1:10876/solibri/v1/ping如果不带 --rest-api-server-http 参数,Solibri 会以 HTTPS 发布服务,并使用自签名证书。当主机为本地时,此服务器会接受该证书;但在本机使用 HTTP 模式更简单。
Solibri 打开后,交互式 API 文档位于 http://127.0.0.1:10876/solibri/v1/swagger-ui/index.html。
使用方法
用自然语言提出请求。以下是一些实际示例:
Solibri 打开了吗?当前加载的是哪个项目?
选择具有这些 GUID 的组件,并显示第一个组件的信息。
运行检查,并将问题导出为 BCF。
读取协调检查的 BCF,并按专业和严重程度列出碰撞。
两种检查模式
solibri_run_checking 使用已打开的 Solibri 以及你在界面中加载的规则集。它快速、交互,并立即返回结果。
solibri_autorun_start 会以 Autorun 模式从文件启动一个无界面的 Solibri 实例。它要求 Solibri 关闭,运行数分钟,并作为异步作业工作:
solibri_autorun_start({
models: ["models/estrutural.ifc", "models/hidraulico.ifc"],
rulesets: ["rulesets/coordenacao.cset"],
bcfOutput: "bcf/coordenacao.bcf"
})
↓ jobId
solibri_autorun_status({ jobId: "check-0001" })
↓ succeeded
solibri_read_bcf({ file: "bcf/coordenacao.bcf", sortBySeverity: true, limit: 10 })输入文件位于 workspace/models 和 workspace/rulesets;输出文件位于 workspace/bcf 和 workspace/reports。
工具
共 25 个工具,按效果类型分类。MCP 注解(readOnlyHint、destructiveHint)允许应用程序仅在必要时请求确认。
读取
工具 | 功能 |
| 确认 REST API 是否有响应。 |
| Solibri 的产品与版本。 |
| 是否忙碌、打开的文件、正在进行的操作。 |
| 下载当前运行实例的 OpenAPI 规范。 |
| Selection Basket 中的 IFC GUID。 |
| 3D 相机状态。 |
| 已打开的模型,包括内部 UUID 和元数据。 |
| 分页获取模型的组件 GUID。 |
| 按键获取模型元数据。 |
| 读取 BCF,并按状态、优先级、类型和负责人汇总问题。 |
| 授权文件夹中的可用文件。 |
| 批量检查作业的状态。 |
写入
工具 | 功能 |
| 用给定的 GUID 替换当前选择。 |
| 选择一个组件并打开其信息。 |
| 定位 3D 相机。 |
| 将工作区中的 IFC 发送到已打开的项目。 |
| 用新版本替换已打开的模型,可整体或部分替换。 |
| 使用已加载的规则集运行检查。 |
| 将问题导出到工作区内的 BCF。 |
| 创建结果演示文稿。 |
| 将一个问题添加到演示文稿,并高亮相关组件。 |
| 批量检查:打开 IFC、应用规则集、导出 BCF 和报告。 |
破坏性操作 — 请先确认
工具 | 功能 |
| 保存 |
| 关闭项目;使用 |
| 终止正在运行的作业的 Solibri 进程。 |
API 的 POST /shutdown 端点没有作为工具公开:关闭 Solibri 不应是 LLM 能够自行完成的事情。
配置
所有项都有合理的默认值,并且 Solibri 会被自动检测。仅在需要时才修改。将 .env.example 复制为 .env,或使用应用程序的 env 块。
变量 | 默认值 | 功能 |
|
| REST API 的基础地址。 |
|
| REST 调用的默认超时时间。 |
| 自动检测 | Autorun 使用的可执行文件。 |
|
| MCP 唯一可读写的文件夹。 |
|
|
|
检测会在 Program Files\Solibri、Solibri Anywhere、Solibri Office 和 Solibri Site 中查找 Solibri.exe,最多向下两级目录;在 macOS 上则查找 /Applications。如果你安装了多个版本,npm run doctor 会列出所有版本,并说明选择了哪一个。
安全
本项目遵循不将机器的无限制控制权交给 LLM 的原则。
无任意命令执行。 没有通用的 shell 工具。Autorun 以
shell: false和唯一参数(服务器自身生成的 XML)调用 Solibri 的可执行文件。封闭的工作区。 所有文件读写都经过
resolveInWorkspace,它会拒绝通过..离开授权文件夹的路径,并会解析符号链接,以阻止间接逃逸。扩展名校验。 IFC 仅接受
.ifc/.ifcxml/.ifczip,规则集仅接受.cset/.ids/.xml,BCF 仅接受.bcf/.bcfzip,报告仅接受.xlsx/.pdf/.rtf/.html。输入校验。 IFC GUID 必须包含 IFC 字符集中的 22 个字符;模型 UUID 遵循 Solibri 格式。无效值会在 HTTP 调用之前失败。
XML 转义。 文件名在写入 Autorun 的 XML 之前会先转义。
规则集受控。 设置
SOLIBRI_STRICT_RULESETS=1后,只能执行config/approved-rulesets.json中列出的规则集。TLS。 仅当主机为
127.0.0.1、localhost或::1时,才接受 Solibri 的自签名证书。任何其他主机仍执行正常验证。stdout 专属于协议。 所有日志都输出到 stderr;向 stdout 写入内容会损坏 MCP 会话。
不要将 Solibri REST API 暴露到机器外部,也不要在未经客户授权的情况下将项目 IFC 或 BCF 发送给外部 LLM。
开发
npm run typecheck # verificação de tipos
npm run build # compila para dist/
npm run dev # roda direto do TypeScript
npm run smoke # sobe o servidor, lista as 25 ferramentas, testa os bloqueios
npm run inspect # abre o MCP Inspector para uso manual
npm run doctor # diagnóstico da instalaçãoscripts/make-test-bcf.mjs 会在 workspace/bcf/teste.bcf 生成一个合成 BCF,便于在不运行真实检查的情况下练习使用 solibri_read_bcf。
目录结构
src/
index.ts registro das 25 ferramentas MCP
config.ts variáveis de ambiente e pastas
detect.ts descoberta automática do Solibri instalado
rest.ts cliente da REST API, com suporte ao TLS local do Solibri
autorun.ts geração do XML de tarefas e disparo do Solibri em lote
jobs.ts controle dos jobs assíncronos
bcf.ts leitura e resumo de arquivos BCF
security.ts validação de caminhos, GUIDs e extensões
workspace/ única pasta acessível: models, rulesets, reports, bcf, temp
config/ approved-rulesets.json
scripts/ registro, diagnóstico, testes
docs/ material de referência sobre a arquitetura关于 Solibri API
此处使用的端点契约提取自本地安装的 solibri.jar 中的 com.solibri.smc.api.rest.* 类,并与 Solibri Developer Platform 的公开文档一致。基础路径 /solibri/v1 来自 Solibri 自带的 application.properties。
已覆盖的端点:/ping、/about、/status、/selectionBasket、/info/{guid}、/threed/camera、/models 及其派生端点、/checking、/bcfxml/{version}、/presentations、/slides、/project 及其派生端点。
此版本未覆盖:/information 和 /parametricInformation,其参数名称未出现在字节码中。在 Solibri 打开时,solibri_openapi_spec 会返回完整规范,从而可以补齐这些端点。
可能的后续步骤
在通过 OpenAPI 确认参数后,为
/information和/parametricInformation提供工具。使用 SMC API 编写 Java 插件,以执行 REST 未公开的几何查询(例如,宽度小于最小限值的门)。
连接 BCF 服务器(BIMcollab、BIM Track)而非本地文件,以支持团队协作。
按项目缓存检查结果,并在执行之间保留历史记录。
参考
REST API: https://solibri.github.io/Developer-Platform/latest/RestApiUsage.html
Autorun: https://solibri.github.io/Developer-Platform/latest/autorun.html
Autorun 任务: https://solibri.github.io/Developer-Platform/26.4.1/autorun-tasks.html
Developer Platform: https://solibri.github.io/Developer-Platform/latest/getting-started.html
云端 Checking API: https://checking-api-docs.solibri.com/
Model Context Protocol: https://modelcontextprotocol.io/
许可证
MIT。Solibri 是 Solibri Inc. 的注册商标;本项目与该公司无关联。
Available Tools
25 toolssolibri_aboutProduto e versaoARead-only
Retorna o produto e a versao do Solibri em execucao.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe, read-only operation. The description adds that it returns product and version, which aligns with these hints and confirms no side effects. However, it provides no further behavioral context beyond what the annotations imply, such as the exact return format or whether it requires an open model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence in Portuguese that is succinct and to the point. It conveys the essential purpose with no unnecessary words, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with annotations covering safety, the description is fully sufficient. It tells the agent exactly what will be returned (product and version) and there are no missing inputs or outputs that would hinder correct invocation. Its simplicity does not warrant additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema covers all parameters (100% coverage). Per the rubric, a baseline of 4 is appropriate for a parameterless tool. The description does not need to explain parameters since none exist, and it does not add any parameter-related detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the product and version of Solibri ('Retorna o produto e a versao do Solibri em execucao'), providing a specific verb and resource. It is distinct from all sibling tools, which focus on operations like updating, checking, or exporting, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. While no sibling directly competes with it, the description does not mention any context or exclusions. Usage is implied by the tool's purpose, but the description lacks any additional direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_add_slideAdicionar slideA
Adiciona um slide, ou seja uma issue, a uma apresentacao existente, destacando componentes por GUID IFC.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Tipo da issue. | |
| stage | No | Fase do projeto. | |
| title | Yes | Titulo do slide. | |
| labels | No | Etiquetas da issue. | |
| status | No | Status da issue. | |
| duedate | No | Prazo, no formato ISO 8601. | |
| priority | No | Prioridade da issue. | |
| components | No | GUIDs IFC dos componentes destacados. | |
| description | No | Descricao da issue. | |
| presentationId | Yes | Id retornado por solibri_create_presentation. | |
| responsibilities | No | Responsaveis pela issue. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that it highlights components by IFC GUID and modifies an existing presentation, which is extra behavioral detail. However, it does not disclose side effects, error handling, or return values, which are important for a mutation tool. Since annotations cover the safety profile, the description provides minimal additional behavioral context, scoring a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence that is front-loaded with the primary action and includes a specific detail (highlighting components). There is no redundant or irrelevant content, making it appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full parameter documentation in the schema and annotations covering read/write and destructive safety, the description provides the essential purpose and the prerequisite of an existing presentation. However, it does not explain return values or error behavior, which is typical for a mutation tool. Given the absence of an output schema, the description is adequate but not fully complete, meriting a 3.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all 11 parameters, achieving 100% coverage. The description's mention of 'componentes por GUID IFC' relates to the 'components' parameter but adds no extra semantic detail beyond what the schema already contains. Per the rubric, the baseline 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a slide (issue) to an existing presentation and highlights components by IFC GUID. It specifies the action, resource, and distinct behavior, making it easy to differentiate from sibling tools like solibri_create_presentation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool operates on an existing presentation ('a uma apresentacao existente'), which is a clear prerequisite and usage context. It does not mention alternatives or exclusions, but the context is sufficiently clear for a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_autorun_cancelCancelar verificacaoADestructive
Encerra o processo do Solibri de um job do Autorun ainda em execucao.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Id do job a cancelar. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description does not need to restate destructive behavior. The description adds the context that this ends a running process, which aligns with the annotation. It does not go into detail about consequences (e.g., irreversibility, impact on other jobs), but given the annotation coverage, the additional context is sufficient. No contradiction exists between description and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence in Portuguese that efficiently conveys the tool's purpose without any redundant or extraneous words. It is appropriately front-loaded with the core action and resource, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, clear annotations), the description is largely complete. It specifies the action, the resource (Autorun job), and the condition (still running). It does not mention potential error scenarios or what happens post-cancel, but these are not critical for a straightforward cancel operation. The description covers the essential information an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, with jobId described as 'Id do job a cancelar.' The description does not add any additional information about the parameter beyond what the schema already provides. Since schema coverage is high, a baseline of 3 is appropriate; the description adds no extra semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Encerra' (ends) and the resource: the Solibri process of an Autorun job that is still running. It distinguishes this from sibling tools like solibri_autorun_start (starting) and solibri_autorun_status (checking status) by specifying 'ainda em execucao' (still running). The purpose is unambiguous and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'ainda em execucao' (still running) provides a clear condition for when to use this tool – only for Autorun jobs that are currently running. This implies it should not be used for completed or not-yet-started jobs. However, it does not explicitly name alternative tools (e.g., solibri_autorun_status for checking status or solibri_autorun_start for starting), so it lacks explicit exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_autorun_startIniciar verificacao em loteA
Abre o Solibri em modo Autorun para carregar IFCs, aplicar rulesets, rodar o checking e exportar BCF, relatorio e projeto. Retorna um jobId; acompanhe com solibri_autorun_status. Exige que o Solibri esteja fechado.
| Name | Required | Description | Default |
|---|---|---|---|
| models | Yes | IFCs a abrir, em caminhos relativos ao workspace. | |
| rulesets | No | Rulesets .cset ou regras .ids relativos ao workspace. | |
| bcfOutput | No | Saida do BCF relativa ao workspace. | |
| smcOutput | No | Saida do projeto .smc relativa ao workspace. | |
| bcfVersion | No | Versao do BCF. Padrao 2.1. | |
| autocomment | No | Gerar comentarios automaticos. Padrao true. | |
| reportOutput | No | Saida do relatorio .xlsx, .pdf, .rtf ou .html relativa ao workspace. | |
| createPresentation | No | Criar apresentacao de resultados. Padrao true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description adds the key constraint that Solibri must be closed before invocation, which is not inferable from annotations. It also discloses that it exports files and returns a jobId, aligning with the open-world side effects. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded paragraph that front-loads the primary action and essential outputs, then immediately gives the follow-up instruction and the key prerequisite. No wasted words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters and no output schema, the description covers the overall workflow, return value (jobId), and how to track progress. It lacks explicit error handling or timeout notes, but the schema fully documents parameter details, and the async nature is implied by the status tool reference. Adequate for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description mentions the main output types (BCF, report, project) which maps to several parameters, but it doesn't add details beyond what the schema already provides for individual parameters like bcfVersion, autocomment, or createPresentation. It offers minimal additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it opens Solibri in Autorun mode to load IFCs, apply rulesets, run checking, and export BCF, report, and project. It distinguishes itself from sibling tools by specifying it returns a jobId to follow with solibri_autorun_status, making its role as the batch-start entry point explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a critical usage precondition (Solibri must be closed) and instructs the agent to monitor progress with solibri_autorun_status, indicating this is the first step of a batch workflow. While it doesn't explicitly list alternatives, the context of being the autorun starter makes its usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_autorun_statusStatus da verificacaoARead-only
Consulta o estado de um job do Autorun. Sem jobId, lista todos os jobs desta sessao.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | Id do job retornado por solibri_autorun_start. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=true, so the read-only nature is covered. The description adds the key behavioral nuance: the 'no jobId' behavior of listing all jobs in the session, which is not inferable from the schema alone. It does not disclose response format or error conditions, but given the safety profile is already in annotations, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, information-dense sentences. The primary action is front-loaded, and the conditional behavior is stated in a parallel structure with no wasted words. It is concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and no output schema, the description covers the essential invocation logic (with and without jobId). It does not describe the response structure, but given the tool's simplicity and the openWorldHint, this is likely acceptable. The agent has enough information to decide when to call it and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the jobId description explains its origin (returned by solibri_autorun_start). The description adds meaning beyond the schema by specifying the conditional behavior when jobId is absent, which is not explicitly in the schema. Since the description bridges the gap between 'optional parameter' and its runtime implications, it earns a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'query' (Consulta) and the resource 'Autorun job status', and explicitly covers the no-jobId case (listing all jobs). This directly distinguishes it from the sibling tools solibri_autorun_start and solibri_autorun_cancel, which are mutations, so an agent can easily pick the right tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear conditional guidance: when jobId is provided, query that job; when absent, list all jobs. It does not explicitly contrast with alternative status tools like solibri_status, but the 'sem jobId' clause effectively frames when to use this tool versus relying on other status mechanisms. The guidance is functional but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_close_projectFechar projetoADestructive
Fecha o projeto aberto no Solibri. Com force=true descarta alteracoes nao salvas, entao confirme com o usuario antes de usar.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Descartar alteracoes nao salvas. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and openWorldHint=true, and the description adds a specific behavioral detail: 'Com force=true descarta alteracoes nao salvas' (with force=true discards unsaved changes). It also advises confirming with the user before using. This goes beyond the annotations by explaining the consequence of the force parameter and the safety step, which is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that leads with the primary action and immediately follows with the safety caveat. Every word earns its place; there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple close operation with one boolean parameter, the description covers the core behavior and the force condition. However, it does not clarify what happens when force=false and there are unsaved changes (does it still close? prompt?), nor does it state the result of calling the tool when no project is open. These gaps leave some ambiguity for an agent deciding how to handle edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the only parameter 'force' with 'Descartar alteracoes nao salvas' (discard unsaved changes). The description repeats this same effect when mentioning force=true, so it adds no new meaning beyond the schema. With 100% schema coverage, the baseline is 3 and the description does not significantly elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Fecha o projeto aberto no Solibri' (closes the open project in Solibri). This clearly distinguishes it from sibling tools like solibri_save_project or solibri_open_model, and it is unambiguous about the operation performed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a caution about force=true but does not give any guidance on when to use the tool versus alternatives, nor does it mention prerequisites (e.g., whether a project must be open). There is no explicit when-to-use or when-not-to-use context, leaving the agent to infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_create_presentationCriar apresentacaoA
Cria uma apresentacao de resultados no Solibri e retorna o id dela, usado por solibri_add_slide.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nome da apresentacao. | |
| prefix | No | Prefixo aplicado aos slides. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutating behavior (readOnlyHint=false). The description adds that it returns an id, but does not disclose any side effects, prerequisites (e.g., requiring an open model), or persistence behavior. For a mutating tool, this is a significant gap beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action ('Cria uma apresentacao'), then states the return value and its consumer. There is no extraneous information; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description adequately covers the return value (id) and workflow linkage. However, it omits potential prerequisites like an open model and error conditions, which would be useful for a mutating tool, though not critical for this simple creation task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (name and prefix), and they are adequately described in the schema. The description adds no parameter-specific details, so it meets the baseline of 3 without compensating for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('cria' - creates) and resource ('apresentacao de resultados' - results presentation), and explicitly states the return value (id) and its linkage to solibri_add_slide. This differentiates it from sibling tools like solibri_export_bcf or solibri_read_bcf by framing it as the creation step for a presentation workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a usage workflow by stating the returned id is 'usado por solibri_add_slide', which suggests this tool is a prerequisite for adding slides. However, it does not explicitly mention when to use this tool vs alternatives or when not to use it, lacking clear exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_export_bcfExportar BCFA
Exporta as issues do Solibri aberto para um arquivo BCF dentro do workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Quais issues exportar. Padrao all. | |
| output | Yes | Caminho de saida relativo ao workspace, por exemplo bcf/coordenacao.bcf. | |
| version | No | Versao do BCF. Padrao two_one, que corresponde ao BCF 2.1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds the specific side effect of creating a BCF file in the workspace, which is useful context. However, it does not disclose potential failure modes (e.g., no model open, file overwriting), though these are partially implied by the schema. Given the annotations cover the safety profile, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and output. There is no filler or redundant detail; every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple export tool with well-documented parameters, the description is fairly complete. It mentions the prerequisite of an open Solibri model ('aberto') and specifies the output path via the output parameter. However, it lacks information about return values or error conditions, which would be helpful since no output schema is provided. Overall, it covers the essential calling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (scope, output, version) having meaningful descriptions. The tool description adds no extra parameter information beyond the schema. Per the rubric, a baseline of 3 applies when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Exporta'), the resource ('as issues do Solibri aberto'), and the output ('arquivo BCF dentro do workspace'). This clearly distinguishes it from siblings like solibri_read_bcf and solibri_update_model, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an agent needs to export issues to a BCF file, but it provides no explicit guidance on when to use this tool versus alternatives (e.g., solibri_read_bcf) or any conditions/exclusions. The sibling list exists but is not referenced in the description, so the agent must infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_get_cameraLer camera 3DARead-only
Retorna o estado da camera 3D: projecao, posicao, direcao, direcao para cima, campo de visao e escala.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=true, so the description's job is to add detail beyond that. It does by listing all returned camera attributes. It does not mention potential errors or edge cases, but for a simple getter with no side effects, the field list is sufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence. It states the purpose and lists the returned fields without any filler. Every word earns its place, and it is highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description is the sole source of return information. It comprehensively lists every field the camera state includes (projection, position, direction, up, FOV, scale), which is exactly what an agent needs to interpret the result. Nothing essential is missing for this getter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters, and the schema is empty with 100% coverage. The baseline for 0 params is 4. The description adds no parameter semantics because none exist, and it correctly omits any parameter references.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Retorna' = returns) and resource ('estado da camera 3D'), and enumerates the exact fields (projection, position, direction, up, FOV, scale). This clearly differentiates it from the sibling solibri_set_camera, which is the setter counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is unambiguous: it reads the camera state. While it doesn't explicitly state 'use this when you need the camera state' or exclude other tools, the pairing with solibri_set_camera provides clear context. The description itself gives no exclusion guidance, but the scope is so specific that the intended usage is obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_get_model_componentsListar componentes do modeloARead-only
Retorna os GUIDs IFC dos componentes de um modelo. Use limit e offset para paginar modelos grandes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Tamanho da pagina. | |
| offset | No | Elemento inicial da pagina. | |
| modelUuid | Yes | UUID interno do modelo, obtido em solibri_list_models. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
As anotações já declaram readOnlyHint=true e openWorldHint=true, cobrindo a natureza de leitura e a possibilidade de mudanças externas. A descrição acrescenta o comportamento de paginação ('Use limit e offset para paginar modelos grandes'), que é informação adicional. Não contradiz as anotações e fornece contexto útil sobre como a ferramenta lida com grandes conjuntos de dados.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A descrição tem duas frases, sem excesso de palavras. A primeira frase estabelece a finalidade principal (retornar GUIDs IFC) e a segunda dá uma dica concisa sobre paginação. Não há ruído ou redundância.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Para uma ferramenta de listagem com três parâmetros (um obrigatório), a descrição é suficiente: informa o que retorna e como paginar. Não há schema de saída, então não é necessário explicar o formato de retorno. A anotação openWorldHint já cobre a possibilidade de mudanças externas. Poderia mencionar se a lista é ordenada ou se há limites padrão, mas isso não é essencial para uso correto.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
A cobertura do esquema é 100%: todos os parâmetros têm descrições no próprio schema, incluindo o cruzamento 'modelUuid obtido em solibri_list_models'. A descrição apenas repete a ideia de paginação ('Use limit e offset para paginar modelos grandes'), que já está implícita nas descrições do schema. Não adiciona significado considerável além do que o schema já fornece, portanto a pontuação base de 3 é apropriada.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A descrição declara claramente o verbo e o recurso: 'Retorna os GUIDs IFC dos componentes de um modelo'. Isso distingue a ferramenta de irmãos como solibri_list_models (que lista modelos) e solibri_get_model_metadata (que obtém metadados). O propósito é específico e inequívoco.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A descrição não fornece orientação sobre quando usar esta ferramenta em vez de alternativas. A única instrução sobre uso é 'Use limit e offset para paginar modelos grandes', que é orientação de parâmetros, não de seleção de ferramenta. Não há menção a contextos como 'quando precisar dos GUIDs dos componentes' ou 'use esta em vez de solibri_get_model_metadata'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_get_model_metadataLer metadado do modeloARead-only
Le um metadado do modelo pela chave, por exemplo timestamp ou version.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Chave do metadado. | |
| modelUuid | Yes | UUID interno do modelo. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe read operation without destructive side effects. The description confirms this by saying 'Le um metadado'. It adds no extra behavioral context, such as behavior on missing keys, return structure, or whether the result could be null. With annotations covering the safety profile, a 3 is appropriate—there is no contradiction, but little added transparency beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the core action (read metadata by key) and includes examples. There is no wasted text; it is appropriately concise and directly useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with two parameters, full annotation coverage (read-only, open world), and unambiguous schema, the description provides enough context: verb, resource, and parameter examples. It does not explain the return format or error handling, but given the simplicity and annotations, it is sufficiently complete for an agent to invoke correctly. The lack of output schema means the description could have included return expectations, but the low complexity keeps this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; both modelUuid and key are described in the schema. The description adds value by providing concrete examples of valid keys ('timestamp ou version'), which helps clarify the semantics of the key parameter beyond the generic schema description. This enriches the parameter understanding, so a 4 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Le um metadado' (reads a metadata) with a resource 'model' and a key parameter, plus examples ('timestamp ou version'). It is clear what the tool does, though it does not explicitly differentiate from sibling read tools like solibri_get_model_components or solibri_get_selection_basket, which read other model aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this when you need a metadata value for a specific key on a model. However, it offers no explicit when-to-use or when-not-to-use guidance, nor references any alternatives among the 24 sibling tools. It is adequate but relies on the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_get_selection_basketLer Selection BasketBRead-only
Retorna os GUIDs IFC dos componentes atualmente na Selection Basket do Solibri.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the description adds no additional behavioral context. It does not disclose what happens when the basket is empty, whether the returned list is sorted, or any other execution characteristics. Since it carries the full burden of behavioral disclosure beyond annotations, and it adds essentially nothing, a score of 2 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action and resource. It contains no fluff and conveys the essential purpose efficiently. This is an ideal example of appropriate brevity for a simple getter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, read-only, no output schema), the description is mostly adequate—it states what is returned. However, it leaves minor gaps such as whether an empty basket returns an empty list, and it doesn't specify the format of GUIDs (e.g., as strings). With no output schema to fall back on, a bit more clarity would be helpful, but it is not severely incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and schema description coverage is 100% (trivially, as there are no properties). According to the rubric, 0 params earns a baseline of 4. The description adds no parameter information because none exist, so this baseline is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns the IFC GUIDs of components in the current Selection Basket, using a specific verb ('returns') and a resource ('components in the Selection Basket'). It is unambiguous and not a tautology. However, it does not explicitly distinguish itself from sibling tools like solibri_set_selection_basket or solibri_get_model_components, though the resource is unique enough that an agent could infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It merely states what it does without explaining the context (e.g., when you need the current selection vs. setting it, or vs. querying all model components). There is no mention of exclusions or alternatives, so an agent receives almost no direction on choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_list_modelsListar modelosARead-only
Lista os modelos abertos no projeto, com nome, UUID interno do Solibri e metadados.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, covering safety and non-mutating behavior. The description adds that it returns name, UUID, and metadata, which is useful but minimal. It does not disclose ordering, pagination, or potential failures, though for a read-only listing that is acceptable given annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single concise sentence, front-loaded with the action verb 'Lista'. Every word adds value, and it fully conveys the tool's purpose without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (no parameters, no output schema), the description provides enough information for an agent to understand the operation and its expected result. It lacks details like whether the list is sorted or what 'metadata' includes, but these are minor for a simple listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 per the rubric. The description does not need to explain any parameters, and the schema is empty with 100% coverage. No additional semantics required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists open models ('modelos abertos') with name, internal Solibri UUID, and metadata. It is a specific verb+resource and distinguishes itself from siblings like solibri_get_model_metadata (which deals with a single model's metadata) and solibri_list_workspace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention scenarios such as needing to enumerate models before opening one, nor does it contrast with solibri_get_model_metadata or solibri_get_model_components. Usage context is entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_list_workspaceListar workspaceARead-only
Lista os arquivos disponiveis na pasta autorizada do MCP, com modelos, rulesets, relatorios e BCFs.
| Name | Required | Description | Default |
|---|---|---|---|
| subfolder | No | Subpasta a listar, por exemplo models. Vazio lista tudo. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds context about the authorized folder and file types, which is useful but not deeply behavioral. No contradictions exist between description and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence with zero fluff. The purpose is front-loaded and the file types are listed concisely. No unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with annotations covering safety and a fully documented single parameter, the description is adequate. It does not specify return format or pagination, but no output schema exists and the tool's simplicity makes this acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'subfolder' parameter, so the schema already documents its meaning. The description does not add parameter-specific detail beyond what is in the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lista' - lists) and resource ('arquivos disponiveis na pasta autorizada do MCP' - available files in the authorized MCP folder), and enumerates file types (models, rulesets, reports, BCFs). This clearly distinguishes it from the sibling solibri_list_models, which presumably lists only models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but does not provide explicit guidance on when to use it versus alternatives like solibri_list_models. The presence of a sibling with a more specific scope implies usage could be generalized, but no when/when-not conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_openapi_specEspecificacao OpenAPIARead-only
Baixa a especificacao OpenAPI da REST API do Solibri em execucao. Util para descobrir parametros exatos de endpoints menos usados.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is established. The description confirms a non-mutating download operation ('Baixa... em execucao') and adds the context that it reflects the currently running API. It does not disclose output format or size, but for a read-only metadata tool, annotations plus description cover the key behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences in Portuguese, front-loaded with the core purpose and immediately followed by the use-case trigger. Zero filler, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameter-free, read-only tool with no output schema, the description is complete. The agent knows what it does, when to use it, and that it is safe (via annotations). Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters and schema description coverage is 100%, so there is nothing for the description to document. The description correctly omits param detail. Baseline 4 is warranted because with no parameters, the description needs no compensating semantic information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (downloads/downloads) and resource (the OpenAPI spec of the running Solibri REST API). It is immediately clear what the tool returns and it is easily distinguishable from the sibling tools, none of which retrieve API specifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: to discover exact parameters of less-used endpoints. This gives the agent a clear trigger condition. It does not reference alternatives explicitly, but with 24 siblings and 0 overlapping purpose, the intended context is sufficiently directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_open_modelAbrir modelo IFCB
Envia um arquivo IFC do workspace para o Solibri aberto e o adiciona ao projeto atual.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Caminho do IFC relativo ao workspace, por exemplo models/estrutural.ifc. | |
| name | No | Nome do modelo dentro do Solibri. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the mutation (readOnlyHint=false) and open world interaction (openWorldHint=true). The description adds context that the file comes from the workspace and goes to the current project, but it does not disclose any further side effects (e.g., handling of existing models, file validation, or error scenarios). This is consistent with annotations but adds limited extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and omits any unnecessary words. It is appropriately sized for the simplicity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the annotations and schema cover mutation, open world, and both parameters, the description is mostly adequate. However, it does not explicitly mention potential conflicts (e.g., if a model with the same name already exists) or prerequisite conditions beyond the implicit 'Solibri aberto'. It could be more explicit about expected behavior when the file cannot be found or when Solibri is not open.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: both 'file' and 'name' have descriptions in the schema. The tool description does not add any additional information about parameters, so the baseline of 3 applies. It neither enriches nor contradicts the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action clearly: 'Envia um arquivo IFC do workspace para o Solibri aberto e o adiciona ao projeto atual' (sends an IFC file from workspace to open Solibri and adds it to the current project). It specifies the resource (IFC file) and the action (add to project), but it does not differentiate from sibling tools like solibri_update_model or solibri_run_checking, so it loses a point for not explicitly distinguishing itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description only states what it does without mentioning when it is appropriate (e.g., for adding a new model) or when not to use it. No exclusions, prerequisites, or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_pingVerificar conexaoARead-only
Verifica se a REST API local do Solibri esta respondendo. Use antes das demais ferramentas quando nao souber se o Solibri esta aberto.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that it checks API responsiveness, which is useful context, but it does not disclose the return format (e.g., boolean, status code) or any potential side effects beyond that. Given the annotations, the description provides adequate but minimal additional behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words. It is front-loaded with the purpose and immediately follows with usage guidance. Every sentence earns its place, and there is no redundancy or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple health-check tool with no parameters, the description covers purpose and usage. However, since there is no output schema, the description should ideally mention what the tool returns (e.g., a boolean or status indicator). That information is missing, leaving a minor gap for an agent that needs to interpret the result. Overall, the description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is trivially complete (coverage 100%). Per the baseline rule for zero parameters, the score is 4. The description does not need to explain any parameters since there are none, and it does not introduce any conflicting parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Verifica' (verifies) and a specific resource 'a REST API local do Solibri esta respondendo' (the local Solibri REST API is responding). It clearly differentiates this health-check tool from the other Solibri tools by focusing on connectivity, which is distinct from status, model, or export operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool: 'Use antes das demais ferramentas quando nao souber se o Solibri esta aberto' (Use before the other tools when you don't know if Solibri is open). This provides a clear condition and ordering, leaving no ambiguity about when it should be invoked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_read_bcfLer BCFARead-only
Le um arquivo BCF do workspace e devolve as issues estruturadas, com contagens por status, prioridade, tipo e responsavel.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Caminho do BCF relativo ao workspace. | |
| limit | No | Numero maximo de issues detalhadas a retornar. Padrao 50. | |
| sortBySeverity | No | Ordenar as issues das mais graves para as menos graves. | |
| includeComments | No | Incluir os comentarios de cada issue. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description correctly aligns with a read-only operation. It adds context about the return format (structured issues with counts) but does not disclose potential edge cases like file-not-found behavior or performance implications. The added output detail is useful, but with annotations covering safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence states the purpose and key output. There is zero wasted wording, and the essential information is immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward read operation with well-documented parameters and annotations, the description adequately conveys what the tool does and returns. It lacks detailed output schema (no output schema exists) but the high-level summary of issues with counts is sufficient for an agent to understand the tool's deliverable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – all four parameters have descriptions already. The tool description does not add further parameter-level detail beyond what the schema provides. Baseline of 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Le' – read), a specific resource (BCF file from workspace), and the expected output (structured issues with counts by status, priority, type, and responsible). It clearly distinguishes from siblings like solibri_export_bcf, which is for exporting rather than reading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for reading existing BCF files, but it does not explicitly mention when to use it over alternatives or any exclusions. It is not misleading, but it lacks explicit guidance on sibling tool selection (e.g., solibri_export_bcf vs this).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_run_checkingRodar checkingA
Executa o checking com os rulesets ja carregados no Solibri aberto e retorna os resultados. Para rodar um ruleset a partir de arquivos, use solibri_autorun_start.
| Name | Required | Description | Default |
|---|---|---|---|
| checkSelected | No | Verificar somente os componentes selecionados. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so no contradiction. The description adds minimal behavioral context: it mentions 'executa' (executes) and 'retorna os resultados' (returns results), but does not disclose any side effects (e.g., whether it modifies project state, requires a model to be open, or has rate limits). Given the annotations cover the basic safety profile, the description offers only modest extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler. The purpose and the differentiating guidance are front-loaded, and every sentence earns its place. Ideal length for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description conditions usage on pre-loaded rulesets and an open Solibri, which covers prerequisites. However, with no output schema, 'retorna os resultados' is vague—it doesn't specify the format (list, report, status), error handling, or what happens if no rulesets are loaded. For a tool that returns substantial data, this is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single optional boolean parameter 'checkSelected' with its own Portuguese description. The tool description does not add any additional meaning about the parameter, but the schema already fully documents it, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Executa o checking') on a clearly identified resource ('rulesets ja carregados no Solibri aberto') and explicitly says it returns results. It also distinguishes itself from the alternative tool (solibri_autorun_start) by the loading condition, making it easy for an agent to pick the right one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit condition for use ('com os rulesets ja carregados') and a direct alternative for a different scenario ('Para rodar um ruleset a partir de arquivos, use solibri_autorun_start'). This is a clear when-to-use vs when-not-to-use guidance that fully disambiguates from the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_save_projectSalvar projetoADestructive
Salva o projeto atual como arquivo .smc no workspace. Sobrescreve o destino caso ele ja exista, entao confirme com o usuario antes de usar.
| Name | Required | Description | Default |
|---|---|---|---|
| destination | Yes | Caminho .smc de destino relativo ao workspace. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds specific behavior beyond that: it overwrites the destination file if it exists. This is valuable context that the agent would not know from annotations alone, and it does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences with no filler. The primary action is front-loaded in the first sentence, and the critical overwrite warning is concisely presented in the second. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple save operation with one required parameter, the description fully covers the action, the destination, and the destructive overwrite behavior. No output schema is present, but none is needed for this tool. The description is sufficient for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the 'destination' parameter with a clear description ('Caminho .smc de destino relativo ao workspace'). The tool description adds no further meaning to the parameter beyond what is already in the schema; the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: saves the current project as a .smc file in the workspace. The specific verb 'salva' and resource 'projeto atual' distinguish it from sibling tools like solibri_open_model or solibri_close_project. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description warns that the destination is overwritten if it exists, instructing the agent to confirm with the user before use. This is a clear usage condition, though it does not explicitly mention alternatives (none exist). It provides actionable guidance for when to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_set_cameraPosicionar camera 3DA
Define a camera 3D do Solibri. Chame antes solibri_get_camera para conhecer o estado atual e alterar somente o necessario.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | Posicao da camera. | |
| direction | Yes | Direcao para onde a camera olha. | |
| projection | Yes | Tipo de projecao. | |
| fieldOfView | No | Campo de visao, em graus. | |
| upDirection | Yes | Vetor que aponta para cima. | |
| viewToWorldScale | No | Escala de vista, usada na projecao ortografica. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare mutability (readOnlyHint=false, openWorldHint=true) and non-destructive (destructiveHint=false). The description adds a caution to call get_camera first and only change necessary fields, which hints at potential side effects of omitting parameters, but does not detail what happens to optional params or coordinate conventions. No contradiction with annotations, but minimal extra behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, purpose first, then usage advice. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has six parameters, three nested objects, and no output schema. The description covers the basic workflow (get then set) but does not explain behavior for omitted optional parameters (fieldOfView, viewToWorldScale), nor coordinate system conventions or constraints between direction/upDirection. Given the getter exists for reference, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All six parameters have descriptions in the schema (100% coverage), so the schema does the heavy lifting. The description only advises to change what is necessary, which is generic and not parameter-specific. It adds no additional semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Define') and resource ('camera 3D do Solibri'), and explicitly names the complementary getter tool (solibri_get_camera), distinguishing it from the sibling getter. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description instructs the agent to call solibri_get_camera first and only change what is necessary, providing a clear usage protocol for setting the camera without unintentionally altering unknown state. It does not list other alternatives, but for a setter the getter is the main counterpart, so this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_set_selection_basketDefinir Selection BasketA
Substitui o conteudo da Selection Basket pelos GUIDs IFC informados. A selecao anterior e perdida.
| Name | Required | Description | Default |
|---|---|---|---|
| guids | Yes | GUIDs IFC de 22 caracteres dos componentes a selecionar. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a behavioral detail not captured by the annotations: the previous selection is lost. This is useful context because destructiveHint=false might suggest no destructive effect, but the description clarifies that the old selection is replaced. It does not cover other behaviors like permissions or rate limits, but given the annotations already declare readOnlyHint=false, the added note is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The primary purpose is front-loaded, and the key behavioral effect (previous selection lost) is stated immediately. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with one well-defined parameter and no output schema, the description plus schema cover the operation completely. The agent knows what it does, what input it expects, and the consequence of overwriting. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the 'guids' parameter (22-character IFC GUIDs, min 1, max 5000). The description only reiterates 'GUIDs IFC informados' without adding new semantic meaning. With 100% schema coverage, the baseline score of 3 applies; the description does not compensate further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (substitui/replaces), the resource (Selection Basket), and the input (IFC GUIDs). It also distinguishes from the sibling solibri_get_selection_basket by naming the opposite operation. The effect (previous selection lost) is included, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to set the selection basket) but does not explicitly mention alternatives, conditions, or exclusions. While the sibling get_selection_basket provides an obvious contrast, the description itself offers no usage guidance beyond the basic operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_show_component_infoMostrar componenteA
Seleciona um componente pelo GUID IFC e abre a janela de informacoes dele no Solibri.
| Name | Required | Description | Default |
|---|---|---|---|
| guid | Yes | GUID IFC do componente, com 22 caracteres. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and openWorldHint=true, so the description doesn't need to restate those. It adds that it selects a component and opens an info window, which gives some behavioral context beyond annotations. However, it doesn't mention side effects like changing selection state or error behavior. With annotations covering the basic traits, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. It immediately states the action and target. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description adequately covers what the tool does. It doesn't elaborate on prerequisites (like having a model open) or error handling, but these are not essential for a straightforward UI action. The description is complete enough for an agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – the schema already documents that 'guid' is an IFC GUID with 22 characters. The description only reiterates that the component is selected by GUID, adding no new semantic detail. Baseline for full schema coverage is 3, and this does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('seleciona' and 'abre') and a specific resource ('componente pelo GUID IFC' and 'janela de informacoes'). It clearly distinguishes itself from siblings like get_model_components (which retrieves data) or set_selection_basket (which changes selection) by focusing on opening an info window.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description merely describes the action without mentioning conditions, prerequisites (e.g., model must be loaded), or when another tool would be more appropriate. This is a bare description with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_statusEstado atualARead-only
Retorna o estado do Solibri: se esta ocupado, qual arquivo esta aberto e o status da operacao em curso.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral detail beyond the annotations (readOnlyHint=true, openWorldHint=true) by specifying exactly what state information is exposed: busy flag, open file, and ongoing operation status. It does not contradict the read-only annotation and provides useful context about the tool's observable behavior, though it does not cover potential error states or availability guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that packs the essential information (what it returns and the three specific aspects) with no wasted words. It is concise and immediately usable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only status tool with no parameters and no output schema, the description covers the key dimensions an agent needs: it tells what state is inspected (busy, file, operation) and implies it is a safe, non-mutating query. It does not describe return format or error behavior, but given the tool's simplicity and the annotations covering read-only/open-world semantics, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool takes no parameters, so the baseline of 4 applies. The description does not need to explain parameter semantics, and the schema is trivially complete. The description correctly focuses on what the tool returns rather than inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retorna' and the resource 'estado do Solibri', and enumerates the specific items returned (busy status, open file, ongoing operation status). This distinguishes it from siblings like solibri_ping (connectivity) and solibri_autorun_status (autorun-specific state), giving an agent a precise idea of what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by listing the kind of information returned (busy, open file, operation status), but it does not explicitly state when to use this tool versus alternatives like solibri_autorun_status or solibri_ping. No exclusions or alternative routing is provided, so an agent must infer when this is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solibri_update_modelAtualizar modelo IFCA
Substitui um modelo ja aberto por uma nova versao do IFC. Use partial=true para atualizar somente os componentes presentes no arquivo.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Caminho do IFC relativo ao workspace. | |
| partial | No | Atualizacao parcial em vez de completa. | |
| modelUuid | Yes | UUID interno do modelo a atualizar. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (mutation) and openWorldHint=true (side effects). The description adds the partial-update behavior, which is useful. However, it does not clarify what happens to the previous version of the model, whether the operation is reversible, or any permission requirements. Given the annotations cover the safety profile, the description adds modest contextual value but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, zero waste. The primary action is front-loaded, and the second sentence adds the key parameter guidance. Every word earns its place; the description is exceptionally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description leaves gaps: it does not state prerequisites (e.g., the model must exist and be open), what the return value is, or potential side effects beyond the model being replaced. The sibling solibri_list_models could be inferred for getting modelUuid, but this is not explicit. The description is adequate but not fully complete for an agent to call it confidently without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by clarifying that the model must already be open ('ja aberto') and provides a more specific meaning for 'partial' (updating only components present in the file). This adds actionable nuance to the parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Substitui' - replaces) and a specific resource ('um modelo ja aberto' - an already open model) with a new IFC version. This clearly distinguishes it from siblings like solibri_open_model (which opens a new model) and solibri_list_models (which lists models). The scope is precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly identifies the use case: replacing an already open model with a new IFC version. It also provides a clear guideline for the 'partial' parameter ('Use partial=true para atualizar somente os componentes presentes no arquivo'). While it does not name alternative tools or state when not to use it, the context is sufficiently clear for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action/resource: model manipulation, checking, BCF handling, camera control, selection basket, presentations, and autorun. Even related tools like run_checking and autorun_start are clearly differentiated by their descriptions (interactive vs batch). No two tools appear to do the same thing.
All tools share the uniform prefix 'solibri_' and use lowercase snake_case with a verb_noun pattern (update_model, get_camera, list_workspace). Minor exceptions like 'about', 'ping', and 'status' are short, conventional verbs but deviate from the strict verb_noun format, causing a slight inconsistency.
With 25 tools, this sits at the upper boundary of what's reasonable, but the scope is broad (model I/O, checking, BCF, 3D navigation, presentations, autorun, workspace). Each tool addresses a specific need, and the density is justified for a comprehensive Solibri MCP server.
The tool surface covers the main lifecycle: open/update/save/close models, run checks, export/read BCF, manage selection baskets and camera, create presentations, and list workspace files. Minor gaps exist (e.g., no direct tool for managing rulesets or deleting models), but core workflows are well supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
The OpenZeppelin Solidity Contracts MCP server integrates OpenZeppelin's security and style rules into AI-driven development workflows, enabling AI assistants to generate safe, correct, and production-ready smart contracts. It automatically validates generated code against OpenZeppelin standards (including imports, modifiers, naming conventions, and security checks) and supports various contract types including ERC-20, ERC-721, ERC-1155, Stablecoins, RWA, Governor, and Account contracts through prompt-driven workflows.
Related MCP Servers
- AlicenseAqualityFmaintenanceAllows AI to interact with Autodesk Revit via the MCP protocol, enabling retrieval of project data and automation of tasks like creating, modifying, and deleting elements.1391454MIT
- AlicenseAqualityFmaintenanceEnables AI to interact with Revit via MCP, allowing data retrieval and element creation, modification, and deletion.1391MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI clients to interact with Autodesk Revit for building design, editing, analysis, clash detection, MEP, interop, documentation, and model persistence via 48 tools.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to read and modify Mendix application models through MCP tools for creating modules, entities, pages, microflows, deploying, and querying runtime data.1
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vanderjohnny/solibri-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server