Skip to main content
Glama

🏗️ Revit MCP 서버

Claude AI와 Autodesk Revit 간의 원활한 통신을 가능하게 하는 Revit 통합을 위한 모델 컨텍스트 프로토콜 서버입니다.

영어 | 중국어

🎯 개요

이 TypeScript 기반 MCP 서버는 Claude AI와 Revit을 연결하는 브리지 역할을 하며, WebSocket 연결을 통해 Revit 모델과 직접 상호 작용할 수 있도록 합니다. Model Context Protocol을 구현하여 다음을 지원합니다.

  • ⚡ Revit 모델 정보에 실시간으로 액세스

  • 🔍 요소 쿼리 및 필터링

  • 👀 뷰 및 레벨 관리

  • 🛡️ 대체 모의 데이터를 통한 강력한 오류 처리

Related MCP server: QGISMCP

✨ 특징

🔌 Revit 통합

  • 📡 Revit 플러그인을 사용한 WebSocket 기반 통신

  • 🔄 실시간 모델 데이터 접근

  • 🔁 연결 실패 시 모의 데이터로의 우아한 폴백

  • ⚙️ 환경 변수를 통해 구성 가능한 연결 설정

🚀 핵심 기능

  • 📊 모델 정보

    • 기본 모델 메타데이터(이름, 경로, 버전)에 액세스합니다.

    • 요소 수와 마지막 수정 날짜를 가져옵니다.

    • 실시간 모델 상태 동기화

  • 🏗️ 요소 관리

    • 유연한 필터링이 가능한 쿼리 요소

    • 요소 속성 및 기하학에 액세스

    • 배치 요소 작업

  • 🎪 뷰 및 레벨 제어

    • 사용 가능한 모든 뷰 나열

    • 접근 수준 정보

    • 모델 계층 구조 탐색

💻 개발

📋 필수 조건

  • Node.js(v14 이상)

  • 엔피엠

  • Autodesk Revit(2023 이상)

  • Revit WebSocket 플러그인(보조 플러그인)

🔧 설치

종속성 설치:

지엑스피1

서버를 빌드하세요:

npm run build

자동 재빌드를 사용한 개발의 경우:

npm run watch

⚙️ 구성

서버는 환경 변수를 사용하여 구성할 수 있습니다.

REVIT_HOST=127.0.0.1    # Revit plugin WebSocket host
REVIT_PORT=8080         # Revit plugin WebSocket port

🔗 Claude Desktop과 통합

Claude Desktop에 서버 구성을 추가합니다.

윈도우:

%APPDATA%/Claude/claude_desktop_config.json

구성 형식:

{
  "mcpServers": {
    "revit-mcp-server": {
      "command": "D:/path/to/revit-mcp-server/build/index.js"
    }
  }
}

🐛 디버깅

MCP 통신 디버깅을 위해:

  1. 내장된 MCP 검사기를 사용하세요:

npm run inspector
  1. Revit 플러그인을 사용하여 WebSocket 통신 모니터링

  2. 연결 및 작업 상태를 확인하려면 서버 로그를 확인하세요.

⚠️ 오류 처리

서버는 강력한 오류 처리를 구현합니다.

  • Revit 연결이 실패하면 모의 데이터로 자동 폴백

  • 자세한 오류 로깅

  • 우아한 연결 복구

📄 라이센스

MIT 라이센스

🤝 기여하기

기여를 환영합니다! 풀 리퀘스트도 자유롭게 제출해 주세요.

📬 문의하기

질문이나 제안 사항이 있으시면 언제든지 문의해 주세요.

Available Tools

6 tools
get_categoriesB

获取 Revit 模型中的所有类别

NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action but does not reveal any behavioral traits, such as whether this is a read-only operation, if it requires specific permissions, or what the return format might be. This is a significant gap for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any waste. It is appropriately sized and front-loaded, making it easy to understand at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of interacting with a Revit model, the description is incomplete. It lacks details on behavioral traits, output format, and how the model context is provided, especially with no annotations and no output schema. This makes it inadequate for an agent to fully understand the tool's operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description does not add parameter details, which is appropriate, but it implies the tool operates on a Revit model context without specifying how that context is established. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb '获取' (get) and resource 'Revit 模型中的所有类别' (all categories in a Revit model), making the purpose specific and understandable. However, it does not explicitly distinguish this tool from sibling tools like 'get_families' or 'get_elements', which might also retrieve related model data, so it misses full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 does not mention context, prerequisites, or exclusions, such as whether it requires an open model or how it differs from sibling tools like 'get_families'. This leaves the agent with minimal usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_element_infoC

获取 Revit 元素的详细信息

NameRequiredDescriptionDefault
elementIdYes元素的 ID
getItemPropertyInfoNo是否获取元素属性信息
getItemParameterInfoNo是否获取元素参数信息

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' information, implying a read-only operation, but doesn't specify if it requires authentication, has rate limits, returns structured data, or handles errors. This leaves significant behavioral gaps for an agent to rely on.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence in Chinese that directly states the tool's purpose without any unnecessary words or fluff. It's appropriately sized and front-loaded, making it efficient and easy to understand.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what '详细信息' (detailed information) entails, such as the format or content of the returned data, nor does it cover behavioral aspects like error handling. For a tool with parameters and no structured output, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with all parameters clearly documented in the input schema. The description doesn't add any additional meaning or context beyond what the schema provides, such as explaining the relationship between the boolean parameters. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('获取' meaning 'get') and resource ('Revit 元素的详细信息' meaning 'detailed information of Revit elements'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_elements' or 'get_families' which might also retrieve element-related information, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like 'get_elements' and 'get_families' available, there's no indication of what makes this tool distinct or when it should be preferred over others, leaving usage unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_elementsC

获取 Revit 模型中的元素

NameRequiredDescriptionDefault
categoryIdsNo需要获取的元素所属类别的Id集合
viewIdsNo需要获取的元素所处的视图的Id集合
levelIdsNo需要获取的元素所处的标高的Id集合

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic action ('获取' - get) without detailing permissions, rate limits, pagination, or what 'elements' entail (e.g., geometric data, properties). For a tool with 3 parameters and no output schema, this is a significant gap in behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence: '获取 Revit 模型中的元素' (Get elements from Revit model). It's front-loaded with the core action and resource, with zero wasted words. This is appropriately concise for a tool with good schema coverage, though it could benefit from more detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what 'elements' are, how results are returned, or the tool's behavior (e.g., filtering logic). With no output schema and minimal description, the agent lacks sufficient context to use the tool effectively beyond basic parameter input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for each parameter (categoryIds, viewIds, levelIds). The description adds no additional meaning beyond the schema, such as explaining how parameters interact or providing examples. Baseline 3 is appropriate since the schema does the heavy lifting, but the description doesn't compensate or enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the purpose as '获取 Revit 模型中的元素' (Get elements from Revit model), which is clear but vague. It specifies the verb ('获取' - get) and resource ('元素' - elements) but lacks specificity about scope or type of elements, and doesn't differentiate from sibling tools like 'get_element_info' or 'get_families'. The description is functional but minimal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 doesn't mention sibling tools like 'get_element_info' (which might provide detailed info) or 'get_families' (which might filter by family type), nor does it specify prerequisites or contexts for usage. This leaves the agent without direction on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_familiesC

获取 Revit 模型中的所有族

NameRequiredDescriptionDefault
categoryIdNo族类别 ID(可选)
nameNo族名称过滤(可选)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves families but doesn't describe any behavioral traits like whether it's read-only, if it requires specific permissions, how it handles large datasets (e.g., pagination), or what the return format looks like. For a retrieval tool with zero annotation coverage, this is inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in Chinese that directly states the tool's purpose without any unnecessary words. It's front-loaded and appropriately sized, making it easy for an agent to parse quickly. Every part of the sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (retrieving data with optional filters), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like safety, performance, or return values, which are crucial for an agent to use the tool effectively. The description should provide more context to compensate for these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with both parameters ('categoryId' and 'name') documented as optional filters. The description doesn't add any meaning beyond what the schema provides—it doesn't explain how these filters work or their impact. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '获取 Revit 模型中的所有族' translates to 'Get all families in the Revit model.' It specifies the verb ('get') and resource ('families in Revit model'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_categories' or 'get_elements,' which is why it doesn't reach a score of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 doesn't mention any prerequisites, exclusions, or comparisons to sibling tools such as 'get_categories' or 'get_elements,' leaving the agent without context for tool selection. This lack of usage instructions is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_levelsB

获取 Revit 模型中的所有楼层

NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('获取'), implying a read-only operation, but doesn't specify permissions, rate limits, output format, or potential side effects. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence: '获取 Revit 模型中的所有楼层'. It's front-loaded with the core purpose, has zero waste, and is appropriately sized for a simple tool. Every word earns its place, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally complete. It states what the tool does but lacks behavioral details like output format or usage context. For a basic retrieval tool, this is adequate but leaves clear gaps, especially with no annotations to compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately doesn't mention any. Baseline for 0 parameters is 4, as the description doesn't mislead or omit necessary param info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '获取 Revit 模型中的所有楼层' (Get all floors in the Revit model). It specifies the verb '获取' (get) and resource '楼层' (floors) with scope 'Revit 模型中的所有' (all in the Revit model). However, it doesn't explicitly differentiate from sibling tools like 'get_elements' or 'get_categories', which might also retrieve model data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 doesn't mention prerequisites, context, or exclusions, and doesn't reference sibling tools like 'get_elements' or 'get_categories' that might overlap in functionality. This leaves the agent with minimal usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_viewsB

获取 Revit 模型中的所有视图

NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe behavioral traits such as whether it requires authentication, has rate limits, returns a list or structured data, or handles errors. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in Chinese that directly states the tool's purpose with zero waste. It's appropriately sized and front-loaded, making it easy to understand at a glance without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no annotations, and no output schema, the description is minimally complete for a simple retrieval operation. However, it lacks details on output format (e.g., list of view names, structured data) and behavioral context, which could be important for an AI agent to use it correctly. It's adequate but has clear gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details beyond the schema, but since there are no parameters, a baseline score of 4 is appropriate as it doesn't need to compensate for any gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb '获取' (get/retrieve) and the resource 'Revit 模型中的所有视图' (all views in a Revit model), providing a specific purpose. However, it doesn't explicitly differentiate from sibling tools like 'get_elements' or 'get_levels', which might retrieve different types of Revit model components.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 doesn't mention prerequisites (e.g., needing an open Revit model), exclusions, or comparisons to sibling tools like 'get_elements' (which might include views as a subset). Usage is implied by the purpose but not explicitly stated.

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.

  1. 6 tool updates
    • First observedget_categories
    • First observedget_element_info
    • First observedget_elements
    • First observedget_families
    • First observedget_levels
    • First observedget_views

TDQS

B3.2/5.0

Scored across 6 tools

Disambiguation5/5

Every tool has a clearly distinct purpose targeting different Revit model components: categories, element info, elements, families, levels, and views. There is no overlap in functionality, and an agent can easily distinguish between them based on the specific resource each retrieves.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with 'get_' as the prefix and a plural or singular noun describing the resource. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming style.

Tool Count4/5

With 6 tools, the count is reasonable for a Revit model server, covering key retrieval operations. However, it might be slightly under-scoped as it lacks tools for creating, updating, or deleting elements, which could be expected in a full Revit integration.

Completeness2/5

The tool set is severely incomplete for a Revit domain, as it only provides read-only retrieval operations. There are significant gaps in CRUD coverage—no tools for creating, updating, or deleting elements, categories, families, etc., which will likely cause agent failures when trying to modify models.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Connects QGIS to Claude AI through the Model Context Protocol, enabling AI-assisted project creation, layer manipulation, processing algorithm execution, and Python code running within QGIS.
    7
    -
  • A
    license
    B
    quality
    D
    maintenance
    Connects Blender to Claude AI through the Model Context Protocol, enabling AI-assisted 3D modeling, scene creation, and manipulation through natural language commands.
    17
    2
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants like Claude to interact with Autodesk Construction Cloud Build platform for construction project management, including issues tracking, RFIs, submittals, and document management through natural language.
    -