Skip to main content
Glama
alesdev88

Archicad-MCP

by alesdev88

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ARCHICAD_MCP_MODENoMode of operation: 'full' or 'verdicts'. Default is 'full'.full
ARCHICAD_MCP_RULES_DIRNoDirectory containing YAML rule files for delivery-readiness QA. Defaults to bundled examples.bundled examples
ARCHICAD_MCP_MAX_PROPERTY_ELEMENTSNoMaximum number of elements a property fetch may span before being refused. Default is 5000.5000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_instancesA

List running Archicad instances: port, version, open project, Tapir add-on availability. Call this first.

get_model_summaryA

Aggregate element counts. by_type is always returned (cheap and safe). Set include_layer_story=true to also break down by layer and story, which reads a property across every element and is refused on very large models (can crash Archicad). Counts only, never element data. 'coverage' says what element_count spans: 'whole-plan' with the Tapir add-on, 'model-elements-only' without it (then it is NOT a project total).

list_rulesA

List loaded QA rules (id, type, severity, tags) and any rule-file load errors.

run_ruleA

Run one QA rule by id. Returns a verdict: pass/fail, failure count, failing element GUIDs.

audit_delivery_readinessA

Run all loaded QA rules (optionally only those tagged with 'ruleset') against the open model. Returns a scored verdict.

verify_ifc_export_readinessA

Run only the IFC-related QA rules to check IFC export readiness. Requires the Tapir add-on for IFC data.

highlight_failuresB

Highlight the elements failing a rule in the Archicad window (requires Tapir add-on).

create_issues_from_failuresA

Create an Archicad issue from a rule's failures and attach the failing elements (requires Tapir add-on).

find_elementsA

Find elements matching criteria groups. Groups combine with OR; inside a group the comparisons combine with logical_operator 'and' (default) or 'or'. Each group may restrict element types (is / is_not) and lists comparisons of {property, operator, value}; the schema enumerates the element types and the 22 operators, and each field documents its values and units. Call search_definitions to find a property's exact address. An element with no usable value matches no binary operator. Returns GUIDs, counts, how many elements had properties read, and 'coverage' ('whole-plan' with Tapir, 'model-elements-only' without: then 2D elements are invisible and 0 is not proof of absence). Property comparisons read values in the server (no API filters by property); a read spanning more than the element ceiling is refused, so narrow with element_types, story or classification first.

search_definitionsA

Fuzzy search over property and attribute definitions, so a caller does not need to know the exact 'Group/Name'. Matches names, groups and enum values; case- and accent-insensitive. kind: 'property', 'attribute' (layers, fills, surfaces, composites, profiles, pen tables, ...) or 'any'. alternatives: up to 6 synonyms or translations searched too (useful on non-English projects). editable_only: keep only properties whose value can be written on at least one element type; check it before set_element_data. Each property match carries 'property', the exact address find_elements, get_element_data, set_element_data and rules accept, plus value_type, measure_type (Length/Area/Volume/Angle values are in m, m2, m3, radian), collection, editable, expression_based and enum_values. Results are ranked: whole-word matches first, then word starts, then substrings; a query word under 4 letters must start a word. total_matches counts everything; pass next_offset as offset to page past limit. Reads definitions only, never property values.

get_element_dataA

Read type, layer, requested properties (address user properties as 'Group/Name') and optionally classifications for the given element GUIDs.

set_element_dataA

Write element property values. DRY-RUN BY DEFAULT: returns planned changes (current -> new) without touching the model. Pass dry_run=false to commit.

create_elementsA

Create elements (column/slab/zone/polyline/object/mesh) via Tapir. DRY-RUN BY DEFAULT: shows the exact command and payload. Pass dry_run=false to create. Other types: use execute_write_api_command.

move_elementsB

Move elements by a vector {x,y,z} in meters. Refuses without confirm=true.

delete_elementsA

Delete elements. IRREVERSIBLE. Refuses without confirm=true.

get_selectionA

Return the GUIDs of the elements currently selected in Archicad.

set_selectionA

Replace the current selection with the given element GUIDs. Whatever the user had selected by hand is deselected.

clear_selectionB

Deselect everything in the Archicad window.

reserve_elementsA

Reserve elements in a Teamwork project so you can edit them (Tapir). CONFIRM-GATED: without confirm=true it only reports what it can learn without touching the server: not_found, already_mine, and would_attempt. Whether another user holds an element is only learned by attempting, because Archicad exposes no read for it. With confirm=true returns reserved, reserved_by_others (with the user's name), already_mine, not_found, and indirectly_reserved: elements Archicad pulled into your workspace that you did not ask for, such as a door's wall. A reservation is visible to every teammate and blocks their edits until released.

release_elementsA

Release elements from your Teamwork workspace (Tapir). CONFIRM-GATED: without confirm=true it reports would_release (the ones actually in your workspace), not_mine and not_found. With confirm=true releases them and reports released and still_mine. Unsent changes on a released element are not lost by this call; TeamworkSend is the gateway's job.

get_project_infoB

Project info: Archicad version, project name, stories, hotlinks, geolocation presence (Tapir enriches).

list_attributesA

List attribute names by type: Layer, BuildingMaterial, Composite, Surface, Profile, ZoneCategory.

list_issuesA

List the issues in the open project, with their ids (requires the Tapir add-on).

create_issueA

Create a new issue in the open project and return its id (requires the Tapir add-on).

add_issue_commentA

Add a text comment to an existing issue, addressed by its id (requires the Tapir add-on).

attach_elements_to_issueA

Attach elements to an existing issue as highlights (requires the Tapir add-on).

export_issues_bcfA

Export every issue in the project to a BCF file at the given path, aligned to the survey point. Overwrites the file if it exists (requires the Tapir add-on).

import_issues_bcfA

Import issues into the project from a BCF file, aligned to the survey point (requires the Tapir add-on).

publishB

Fire an Archicad publisher set by name (Tapir).

read_schedule_schemeA

Describe an exported Archicad schedule scheme XML: its criteria and its ordered columns, with what each column binds to. Schedules have no API, so export the scheme first via Document > Schedules > Scheme Settings > Export and pass the file path. Reads the file only, never Archicad.

edit_schedule_schemeA

Apply a YAML scheme spec to an exported schedule scheme XML: set the columns and their order, retarget bindings, rename the scheme. DRY-RUN BY DEFAULT: returns the before and after column lists and writes nothing until dry_run=false. Never overwrites the input; writes to 'output' or to .edited.xml beside it. Import the result via Document > Schedules > Scheme Settings > Import. Criteria are preserved, not yet editable. A spec that binds every property by GUID needs no Archicad connection and runs fully offline; a spec that binds a property by a 'Group/Name' string needs Archicad open so the name can be resolved.

validate_schedule_schemeA

Check an exported schedule scheme against the open project: do its property bindings still exist, and does any column caption disagree with what it is bound to. Reads property definitions only, not values, so it does not risk the property-read crash.

list_api_commandsA

Catalog of ALL available Archicad API commands (official JSON API + Tapir). Filter by group, or by access='read' / 'write' to see which of the two execute tools runs a given command.

describe_api_commandA

Full description and input schema for one API command. Call before execute_read_api_command or execute_write_api_command.

execute_read_api_commandA

Run one read-only Archicad API command by name and return its result. Covers the official Archicad JSON API (https://archicadapi.graphisoft.com/JSONInterfaceDocumentation/) and the Tapir add-on (https://github.com/ENZYME-APD/tapir-archicad-automation). Reads only: a command that changes the project is refused here and belongs to execute_write_api_command. Params are validated against the bundled schema where available. Prefer the dedicated tools when one exists.

execute_write_api_commandA

Run one Archicad API command that changes the project. Covers the official Archicad JSON API (https://archicadapi.graphisoft.com/JSONInterfaceDocumentation/) and the Tapir add-on (https://github.com/ENZYME-APD/tapir-archicad-automation). IRREVERSIBLE for many commands, and reaches DeleteElements and QuitArchicad among others. Refuses without confirm=true; the refusal echoes the command and params it would have run. Params are validated against the bundled schema where available. Prefer the dedicated tools when one exists.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/alesdev88/Archicad-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server