revit-tunnel-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@revit-tunnel-mcppreview 10 rings of 9A1K tunnel segments"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
revit-tunnel MCP (Independent Segments V2)
This is a dedicated MCP independent of the existing general-purpose Revit MCP. It lets an Agent preview, create, and verify shield tunnels through a Node.js stdio MCP, a local-only pyRevit Routes interface, and the Revit 2025 API. The legacy "one family per ring" approach is fully preserved; V2 adds "one independent family instance per segment."
Independent Segment Capabilities
Default layout is
9A1K: 9 A segments (37.5° each) and 1 K segment (22.5°) per ring.The default 10 rings create 100
Generic Modelsfamily instances that can be individually selected, scheduled, filtered, and tabulated.Supports 1–50 rings, but any single creation is capped at 500 independent segments.
Supports outer diameter, thickness, ring width, 3D start point, straight-line longitudinal slope, and alternating positive/negative staggered joints between adjacent rings.
Each ring creates only one named work plane,
RTM_SEG_HOST_*, shared by all segments in that ring.Every segment has a stable marker, e.g.
batch-R0001-A01,batch-R0001-K01.Batch creation is wrapped in a single Revit transaction group; if any family or element fails, the instances, work planes, and newly loaded families in this batch are rolled back together.
Related MCP server: Revit MCP Server
Upgradable Family Content
The family name is determined by the segment role, dimensions, angles, content profile, and content version:
RTM_Segment_{role}_OD{outer}_T{thickness}_W{width}_S{spanMilliDeg}_{profile}_V{version}The current content provider is basic version 1, which generates one simple annular sector family per geometry. The family type's Type Comments stores RTM_CONTENT:<hash>. Families with the same name are reused only when the content hash matches exactly; a missing or mismatched hash reports a conflict and is never silently overwritten.
Therefore, when adding grout holes, bolt holes, hand holes, grooves, or rebar representation to segments in the future, a new content version can be published. Old batches remain frozen on their original family version; the layout, element numbering, and Agent invocation flow do not need to change.
Element Identity Parameters
All independent segment families use 12 instance shared parameters with fixed GUIDs:
RTM_BatchId,RTM_UniqueIdRTM_RingIndex,RTM_SegmentIndexRTM_SegmentSlot,RTM_SegmentRoleRTM_LayoutIdRTM_ContentProfile,RTM_ContentVersionRTM_StartAngle,RTM_EndAngle,RTM_CenterAngle
The fixed GUIDs mean future A, B, and K families, as well as different precision versions, can still use the same schedules, filters, and tags.
Eight MCP Tools
Independent segments V2:
list_tunnel_segment_catalog: lists layouts and content versions.preview_tunnel_segments: read-only validation that returns the full per-segment plan and a preview token.create_tunnel_segments: requires the same parameters,preview_token, andconfirm=truebefore creating.inspect_tunnel_segment_batch: read-only reverse lookup of each element's identity, family version, position, orientation, volume, and hosting work plane.
Preserved whole-ring V1:
preview_tunnel_ringscreate_tunnel_ringsinspect_tunnel_batchget_tunnel_backend_status(shared by V1/V2)
The recommended call order is: check backend → list catalog → preview → user confirmation → create → inspect batch.
Future Switch to 6A+2B+1K
The layout and family content are already layered. When 6A2B1K is added later, only 9 slots and the A/B/K angle rules need to be added to the versioned catalog; the placer, identity parameters, MCP tools, and inspection interface remain unchanged. If B's geometry differs from A's, the system automatically resolves the new family spec by role and angle.
Safety Boundaries
Routes listens only on
127.0.0.1:48884and is not exposed to the LAN.The Node preview and the pyRevit backend each validate the full plan independently; V2 also recomputes the layout summary, per-ring positions, per-segment angles, markers, family names, and content hashes.
Whole rings and independent segments share the global
batch_idnamespace; duplicate creation is rejected if either side already exists.There are currently no tools to delete, overwrite, or upgrade existing batches.
The existing general-purpose Revit MCP and
ShieldTunnel.extensionare both unmodified.
Installation
Source: the project directory after cloning this repository
pyRevit extension:
%USERPROFILE%\Documents\pyRevit Extensions\RevitTunnelMcp.extensionCodex config:
[mcp_servers.revit_tunnel]in%USERPROFILE%\.codex\config.toml
First install Node.js 22 and the project dependencies:
npm installReinstall the extension:
& '.\scripts\install.ps1' -RoutesPort 48884After installing or modifying, reload pyRevit (or restart Revit).
Verification and Smoke Calls
npm test
python -m pytest -q '.\pyrevit\tests'
node '.\scripts\smoke-test.mjs' --segments --inspect --batch-id=<批次>Create a two-ring independent segment test batch:
node '.\scripts\smoke-test.mjs' --segments --create --ring-count=2 --batch-id=segment-e2e-01The legacy whole-ring calls do not use --segments. --create actually modifies the current Revit project and should only be used on a test copy or a confirmed project.
Available Tools
8 toolscreate_tunnel_rings创建盾构隧道整体管片环AIdempotent
使用预览令牌在当前 Revit 项目中创建整体族管片环;不删除或覆盖已有元素。
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | 确认创建时必须为 true | |
| batch_id | No | 批次标识;不填时由几何参数确定性生成 | |
| ring_count | No | 整体管片环数量,默认 10,MVP 最多 50 环 | |
| start_x_mm | No | 第一环起始端面 X 坐标,单位 mm | |
| start_y_mm | No | 第一环起始端面 Y 坐标,单位 mm | |
| start_z_mm | No | 第一环起始端面中心标高,单位 mm,默认 12000 | |
| thickness_mm | No | 管片厚度,单位 mm,默认 900,必须小于外半径 | |
| preview_token | Yes | preview_tunnel_rings 返回的预览令牌 | |
| ring_width_mm | No | 单环宽度,单位 mm,默认 2000 | |
| grade_permille | No | 直线纵坡,单位 ‰,正值表示沿 +X 下坡,默认 0 | |
| outer_diameter_mm | No | 管片外径,单位 mm,默认 18000 | |
| stagger_angle_deg | No | 相邻环交替正负旋转的错缝角,单位度,默认 18.75 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds that it does not delete or overwrite existing elements, which reinforces the destructiveHint=false annotation but does not go beyond it. It does not mention idempotency or other behavioral details, though the annotations already cover idempotentHint=true. Thus it provides minimal additional context beyond what annotations already disclose.
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, compact sentence that leads with the action and includes the key non-destructive guarantee. It is front-loaded, has no filler, and every word earns its place. Ideal conciseness for a tool with a well-covered schema.
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 complexity (12 params, no output schema, annotations present), the description is adequate but minimal. It covers the core purpose and non-destructive behavior but does not describe return values, error conditions, or when to use it relative to siblings. However, the schema and annotations fill many gaps, making it sufficient but not 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 12 parameters are fully described in the schema (100% coverage), and the description adds no extra meaning about parameter usage beyond what the schema provides. The description mentions the preview token but that is already detailed in the schema. Therefore, the baseline of 3 is appropriate since the description does not need to compensate for 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 clearly states the action (create) and the resource (monolithic family segment rings) using a preview token. It distinguishes itself from preview tools by explicitly indicating this is the creation step. However, it does not directly name sibling tools or contrast with create_tunnel_segments, so it's not a perfect 5.
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 context by requiring a preview token, which suggests a prior preview step, but it does not explicitly state when to use this over alternatives or when not to use it. It lacks exclusions or explicit routing to sibling tools like preview_tunnel_rings or create_tunnel_segments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tunnel_segments创建盾构隧道独立管片AIdempotent
使用预览令牌在当前 Revit 项目中为每块管片创建独立族构件;不删除或覆盖已有元素。
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | 确认创建时必须为 true | |
| batch_id | No | 批次标识;不填时由几何参数确定性生成 | |
| layout_id | No | 管片布局标识,默认 9A1K;以后可由目录增加 6A2B1K | |
| ring_count | No | 整体管片环数量,默认 10,MVP 最多 50 环 | |
| start_x_mm | No | 第一环起始端面 X 坐标,单位 mm | |
| start_y_mm | No | 第一环起始端面 Y 坐标,单位 mm | |
| start_z_mm | No | 第一环起始端面中心标高,单位 mm,默认 12000 | |
| thickness_mm | No | 管片厚度,单位 mm,默认 900,必须小于外半径 | |
| preview_token | Yes | preview_tunnel_segments 返回的预览令牌 | |
| ring_width_mm | No | 单环宽度,单位 mm,默认 2000 | |
| grade_permille | No | 直线纵坡,单位 ‰,正值表示沿 +X 下坡,默认 0 | |
| content_profile | No | 族内容配置,默认 basic | |
| content_version | No | 族内容版本,默认 1 | |
| outer_diameter_mm | No | 管片外径,单位 mm,默认 18000 | |
| stagger_angle_deg | No | 相邻环交替正负旋转的错缝角,单位度,默认 18.75 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring idempotentHint=true and destructiveHint=false, the description adds the important behavioral detail that it uses a preview token and does not delete or overwrite existing elements. It also implies the requirement of a prior preview step, which is meaningful context beyond the hints. The description aligns with and complements the annotations without contradiction.
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 core action and follows with a safety qualifier. Every word earns its place, and there is no redundancy or fluff. It is appropriately sized for a tool with this scope.
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 covers the essential workflow (preview token required) and safety property, but for a complex tool with 15 parameters and no output schema, it lacks a high-level explanation of how the tool fits into the segment creation process or how it contrasts with ring creation. It is minimally sufficient but leaves an agent to rely on parameter schemas for full understanding.
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 all 15 parameters are individually documented in the input schema. The description itself adds no parameter-specific meaning beyond reiterating the preview token's role. This meets the baseline of 3 since the schema carries the parameter documentation burden.
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 (create), the target resource (individual family components per segment), and the context (current Revit project using a preview token). It distinguishes this from sibling tools like create_tunnel_rings by focusing on segments rather than rings, and the title reinforces this distinction. The verb and resource are specific and 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 the workflow by requiring a preview token, suggesting it should be called after preview_tunnel_segments, and states it operates in the current Revit project. However, it does not explicitly mention when not to use this tool or name alternatives like create_tunnel_rings. Usage guidance is implicit rather than explicit, leaving the agent to infer the decision logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tunnel_backend_status检查 Revit 隧道后端ARead-onlyIdempotent
检查 pyRevit 隧道接口、Revit 版本和当前活动项目。
| 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 idempotentHint=true, and the description's 'check' action aligns with these. The description adds specific details about what is inspected (pyRevit interface, Revit version, active project), but it does not go beyond what the annotations imply. With annotations present, the bar is lower; still, there is no additional behavioral context like output format or side effects, so 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?
The description is a single concise sentence that directly states the tool's function without any wasted words. It is front-loaded with the 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?
For a zero-parameter, read-only status-checking tool with clear annotations, the description is complete. There is no output schema, but the nature of the tool (checking status) makes return values predictable. The agent has all necessary information 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 tool has zero parameters, and the input schema is empty. The description provides context about what the tool examines but does not need to explain parameter details since there are none. Given the situation, a baseline of 4 is appropriate; the description is clear and does not need to compensate 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 specific verb ('检查') and identifies exactly what is checked (pyRevit tunnel interfaces, Revit versions, active project). It clearly distinguishes from sibling tools that operate on segments and rings, making the tool's 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 states what the tool does but provides no explicit guidance on when to use it versus alternatives. While the sibling tools are clearly about segments/rings, the description does not mention exclusions or alternative scenarios, leaving usage inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_tunnel_batch核验 Revit 隧道批次BRead-onlyIdempotent
按批次标识反查整体环、族、标记、包围盒、体积和定向基准;不会修改 Revit。
| Name | Required | Description | Default |
|---|---|---|---|
| batch_id | Yes | 创建时使用的批次标识 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds only '不会修改 Revit' (will not modify Revit), which is redundant with the annotations. No new behavioral context—such as output format, pagination, or side effects—is disclosed beyond what annotations provide. With annotations present, the baseline for added value is low, but the description provides none.
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, compact sentence that front-loads the action ('按批次标识反查') and lists the returned fields. No filler or repetition. Every clause contributes information, making it efficient and well-structured 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?
For a read-only inspection tool with a single parameter, the description covers the core purpose, the safety guarantee (reinforced by annotations), and the output scope (overall ring, family, tag, bbox, volume, orientation). It does not detail return formatting or error handling, but for a simple inspection tool these are minor gaps given the low complexity and presence of an output list.
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 batch_id parameter already has a description ('创建时使用的批次标识'). The tool description reiterates '按批次标识' without adding extra semantic detail like format specifics or usage nuance. Given high schema coverage, the baseline of 3 applies; the description does not compensate with additional parameter semantics.
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 (inspect / reverse-lookup), the resource (tunnel batch by batch_id), and the specific data returned (overall ring, family, tag, bbox, volume, orientation). It is specific enough to distinguish from the sibling inspect_tunnel_segment_batch, which presumably focuses on individual segments, though it does not explicitly name it. Thus it is clear but relies on name comparison rather than an explicit differentiator.
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 about when to use this tool versus its siblings. The description explains what it does but does not mention alternatives (e.g., inspect_tunnel_segment_batch for segment-level details, or preview tools for non-authoritative checks). An agent would have to infer the use case from the name and description alone, with no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_tunnel_segment_batch核验 Revit 独立管片批次ARead-onlyIdempotent
按批次标识反查每块独立管片的身份、族版本、位置、定向、包围盒和体积;不会修改 Revit。
| Name | Required | Description | Default |
|---|---|---|---|
| batch_id | Yes | 创建独立管片时使用的批次标识 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
注释已声明readOnlyHint=true和destructiveHint=false,描述中“不会修改Revit”与注释一致,但未添加额外行为细节(如性能、权限要求或错误条件)。描述列出了返回字段,这超过注释,但主要披露已经由注释承担,故评为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?
描述为单句,直接列出功能、返回内容和副作用(无修改),信息密度高,无冗余词。结构紧凑,重点前置。
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?
对于只有一个参数且具有丰富注释的只读工具,描述足够完整:提供了返回字段列表,注释覆盖了副作用和幂等性。虽然未说明输出格式,因为没有输出模式,但列出的字段已满足调用前了解所需。轻微扣分是因为未提及任何潜在限制(如批处理大小或时间影响),但整体不影响调用。
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?
参数batch_id在模式中已有完整描述(“创建独立管片时使用的批次标识”)和正则约束,schema描述覆盖率为100%。描述未添加超出模式的语义信息,因此基线为3。
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?
描述以具体动词“反查”开头,明确目标是“每块独立管片的身份、族版本、位置、定向、包围盒和体积”,并说明不会修改Revit。这清晰区分了与兄弟工具如inspect_tunnel_batch(针对隧道批次而非管片批次)和preview_tunnel_segments(可能为预览而非反查身份)。
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?
描述隐含了用途(按批次标识检查管片信息),但未明确说明何时应使用此工具而非兄弟工具,也未提供排除条件或使用场景。与其他工具的区别仅通过名称和“独立管片”一词暗示,没有显式指引。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tunnel_segment_catalog列出盾构隧道管片目录ARead-onlyIdempotent
列出可用管片布局、角色、角度以及族内容配置和版本;不会修改 Revit。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states 'will not modify Revit', which reinforces the annotations readOnlyHint=true and destructiveHint=false, but it does not contradict them. It adds specificity about what is listed (layouts, roles, angles, etc.), which is helpful. However, it does not disclose any additional behaviors such as pagination, sorting, or performance characteristics. Given annotations already cover the safety profile, this description adds modest 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, compact sentence that front-loads the verb and resource, then lists the categories, and closes with the read-only guarantee. There is no redundant or extraneous wording; every part 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, parameter-less listing tool, the description is largely complete. It names the categories of data returned, which is sufficient for an agent to know what to expect. It does not describe the output format (e.g., flat list vs. nested structure), but given there is no output schema and the tool is straightforward, this is 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?
The tool has zero parameters, so the schema description coverage is trivially 100%. The description does not need to explain parameters, and it appropriately refrains from doing so. Per the guidelines, the baseline for 0 parameters is 4, which is appropriate here.
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 'list' and the resource 'shield tunnel segment catalog', and enumerates the specific categories it covers (layouts, roles, angles, family content configurations and versions). It even notes it will not modify Revit, which reinforces its read-only nature. However, it does not explicitly distinguish itself from sibling tools like preview_tunnel_segments or inspect_tunnel_segment_batch, so the differentiation is implicit rather than 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?
No guidance is provided on when to use this tool versus the sibling tools. It does not mention alternatives, nor does it state conditions under which this tool should be preferred (e.g., 'Use this before creating segments to list available configurations'). The only usage hint is the read-only note, which is behavioral, not directional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_tunnel_rings预览盾构隧道整体管片环ARead-onlyIdempotent
校验整体环参数并返回每环位置和预览令牌;此工具不会修改 Revit。
| Name | Required | Description | Default |
|---|---|---|---|
| batch_id | No | 批次标识;不填时由几何参数确定性生成 | |
| ring_count | No | 整体管片环数量,默认 10,MVP 最多 50 环 | |
| start_x_mm | No | 第一环起始端面 X 坐标,单位 mm | |
| start_y_mm | No | 第一环起始端面 Y 坐标,单位 mm | |
| start_z_mm | No | 第一环起始端面中心标高,单位 mm,默认 12000 | |
| thickness_mm | No | 管片厚度,单位 mm,默认 900,必须小于外半径 | |
| ring_width_mm | No | 单环宽度,单位 mm,默认 2000 | |
| grade_permille | No | 直线纵坡,单位 ‰,正值表示沿 +X 下坡,默认 0 | |
| outer_diameter_mm | No | 管片外径,单位 mm,默认 18000 | |
| stagger_angle_deg | No | 相邻环交替正负旋转的错缝角,单位度,默认 18.75 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds behavioral context by stating the tool validates parameters (implying potential error returns) and returns per-ring positions plus a preview token. It reinforces the read-only nature with '不会修改 Revit' which aligns with annotations. No contradictions; the description adds useful context beyond structured fields.
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 efficiently states the primary function and the key non-modification trait. It is front-loaded with the action, and there is no filler. A slightly clearer separation of validation and return behavior could improve structure, but it is concise and purposeful.
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 10 parameters and no output schema, the description provides only a high-level summary of returns (positions and token) without detailing the output structure or how the token is used. It also does not mention any backend prerequisites (despite a sibling get_tunnel_backend_status) or error-handling specifics. While annotations cover safety, the missing output format and usage context leave an agent requiring further inference.
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 10 parameters having detailed descriptions in the schema. The tool description does not elaborate on any parameters beyond the generic '校验整体环参数' (validate overall ring parameters), so it adds no additional semantics. Baseline 3 applies because the schema fully documents each parameter.
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: validate overall ring parameters and return each ring's position and a preview token. It uses a specific verb ('校验' validate, '返回' return) and resource ('整体管片环' overall segment rings), and implicitly distinguishes from siblings like '预览盾构隧道管片' (preview segments) and '创建盾构隧道管片环' (create rings) by emphasizing it does not modify Revit and is for preview/validation only.
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 for validation/preview rather than creation, reinforced by '此工具不会修改 Revit' (does not modify Revit). However, it neither explicitly names alternatives (e.g., preview_tunnel_segments vs. preview_tunnel_rings) nor provides conditions for when to use this tool over siblings like create_tunnel_rings. The context is present but not explicit, so guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_tunnel_segments预览盾构隧道独立管片ARead-onlyIdempotent
校验布局、族版本、线形与尺寸,返回每块独立管片的完整计划和预览令牌;不会修改 Revit。
| Name | Required | Description | Default |
|---|---|---|---|
| batch_id | No | 批次标识;不填时由几何参数确定性生成 | |
| layout_id | No | 管片布局标识,默认 9A1K;以后可由目录增加 6A2B1K | |
| ring_count | No | 整体管片环数量,默认 10,MVP 最多 50 环 | |
| start_x_mm | No | 第一环起始端面 X 坐标,单位 mm | |
| start_y_mm | No | 第一环起始端面 Y 坐标,单位 mm | |
| start_z_mm | No | 第一环起始端面中心标高,单位 mm,默认 12000 | |
| thickness_mm | No | 管片厚度,单位 mm,默认 900,必须小于外半径 | |
| ring_width_mm | No | 单环宽度,单位 mm,默认 2000 | |
| grade_permille | No | 直线纵坡,单位 ‰,正值表示沿 +X 下坡,默认 0 | |
| content_profile | No | 族内容配置,默认 basic | |
| content_version | No | 族内容版本,默认 1 | |
| outer_diameter_mm | No | 管片外径,单位 mm,默认 18000 | |
| stagger_angle_deg | No | 相邻环交替正负旋转的错缝角,单位度,默认 18.75 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by specifying the concrete behavior: it validates inputs and returns a plan plus preview token, and reaffirms the non-modifying nature ('不会修改 Revit'). This goes beyond the annotations by detailing the validation scope and output nature, without contradicting 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 a single concise sentence that front-loads the core action (validate), then the return, then the safety guarantee. Zero wasted words. It is appropriately sized for the tool's purpose and reads well in the original Chinese.
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 has 13 parameters (all documented), no output schema, and the annotations already cover safety, the description provides enough context: it explains what is validated, what is returned (plan and preview token), and that it is non-destructive. It doesn't detail the return format or failure conditions, but for a preview tool with full schema coverage this is reasonably complete. A bit more on the meaning of 'complete plan' would push it higher.
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 description coverage is 100%, so all 13 parameters already have descriptions. The tool description references general categories (layout, family version, alignment, dimensions) that map onto parameters but adds no per-parameter detail beyond the schema. Since the schema carries the full burden, the baseline score of 3 applies; the description offers only marginal contextual gloss.
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 validates layout, family version, alignment, and dimensions, and returns a complete plan and preview token for each segment. It also declares '不会修改 Revit' (will not modify Revit), which distinguishes it from sibling creation tools like create_tunnel_segments and from preview_tunnel_rings by specifying segment-level granularity. This is a specific verb+resource with behavioral scope.
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 for previewing/validating before creating segments, and explicitly notes it doesn't modify Revit, which suggests safe use. However, it does not name alternative tools (e.g., preview_tunnel_rings) or provide explicit conditions for when to use this tool instead of others. Guidance is present but implicit, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.2.0- First observed
create_tunnel_rings - First observed
create_tunnel_segments - First observed
get_tunnel_backend_status - First observed
inspect_tunnel_batch - First observed
inspect_tunnel_segment_batch - First observed
list_tunnel_segment_catalog - First observed
preview_tunnel_rings - First observed
preview_tunnel_segments
TDQS
Scored across 8 tools
Each tool targets a distinct resource (catalog, backend status, segments, rings) and action (list, get, preview, inspect, create). Preview vs. inspect are clearly differentiated: preview validates and returns tokens, while inspect returns detailed properties by batch ID.
All tool names follow a consistent verb-noun snake_case pattern, using verbs like list, get, preview, inspect, and create paired with clear nouns (tunnel_segment_catalog, tunnel_segments, tunnel_rings). Minor variations like segment_batch vs batch still follow the same style.
8 tools is well within the ideal range and each tool earns its place, covering catalog, status, preview, inspect, and create for two related domain objects (segments and rings). No redundant or missing tools at the surface level.
The server covers the full preview->create->inspect lifecycle for both tunnel segments and rings, plus backend status and catalog listing. Missing update/delete operations are not critical for a creation-focused server, but could be a minor gap if modifications are needed.
Maintenance
Related MCP Connectors
Unified AEC tools: ACC, Revit, Navisworks, Twinmotion, and APS from one endpoint.
Revit model integration via APS — elements, parameters, schedules, clashes, IFC export.
Convert Revit files to XKT, IFC, or DWG and query BIM data via natural language.
AI Hub for AEC — 50+ 3D formats, clash detection, ACC integration via Autodesk Platform Services.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Autodesk Revit to query project data, manage elements, and execute generated code via the Model Context Protocol. It provides full compatibility with GitHub Copilot and Claude to automate BIM modeling workflows.13123 npmMIT
- 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
- AlicenseNot gradedqualityAmaintenanceAn MCP server that bridges AI agents to Autodesk Revit, enabling local tool-based interaction with Revit models, including query, create, and modify operations, with an optional personal tool baking system.46Apache 2.0
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to connect to Revit 2024 via MCP, inspect documents and selections, query and modify elements, and validate, preview, or commit plans with audit logging and rollback.-