Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ARCHICAD_MCP_SECURITYNoSecurity mode: unrestricted or sandboxedunrestricted
ARCHICAD_MCP_BLOCKED_PATHSNoComma-separated glob patterns for blocked pathsOS system directories
ARCHICAD_MCP_ALLOWED_WRITE_PATHSNoComma-separated glob patterns for allowed write pathsDesktop, Documents, temp

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_instancesA

Find all running Archicad instances.

Scans ports 19723-19743 for Archicad's JSON API. Returns instance info including port, project name, version. Use the 'port' value in other tools to target a specific instance.

get_docsA

Get documentation for Archicad commands.

USAGE: get_docs() # Overview: categories with counts get_docs(category="Element Commands") # Browse: commands in a category get_docs(search="...") # Find commands by keyword get_docs(command="CommandName") # Full schema for one command get_docs(commands=["A", "B"]) # Full schemas for multiple

DISCOVERY WORKFLOW:

  1. get_docs() -> see categories

  2. get_docs(category="...") -> see command names

  3. get_docs(command="...") -> full schema

SEARCH FEATURES:

  • Searches across: names, descriptions, parameters, examples, notes

  • Element types: "wall" -> suggests GetElementsByType(elementType="Wall")

  • Partial match: "prop" finds property commands

  • Typo tolerant: "proprty" -> property commands

  • Multi-word: "create slab" finds CreateSlabs

Args: search: Search query (e.g., "wall", "create slab", "property") command: Exact command name for full schema commands: List of command names for full schemas category: Category name to list all commands in it

Examples: get_docs() # Overview get_docs(category="Element Commands") # Browse category get_docs(search="wall") # Commands for walls get_docs(search="create") # Creation commands get_docs(command="CreateSlabs") # Full schema for CreateSlabs

get_propertiesA

Search and discover Archicad element properties.

Properties are attributes like area, length, volume that you query on elements. Use this to find property GUIDs needed for GetPropertyValuesOfElements.

WHEN TO USE:

  • "Get wall areas" → get_properties(search="area", group="Wall")

  • "What properties can I query on zones?" → get_properties(group="Zone")

  • "Find custom/user-defined properties" → get_properties(property_type="Custom")

MODES: get_properties(port) # Overview of all groups get_properties(port, search="length") # Search by keyword get_properties(port, group="Wall") # All properties for element type get_properties(port, property="Length of Reference Line") # Exact lookup

Args: port: Archicad instance port (from list_instances) search: Search property names (e.g., "area", "length", "surface") group: Filter by group/element type (e.g., "Wall", "Zone", "Geometry") property_type: Filter by type: "StaticBuiltIn", "DynamicBuiltIn", "Custom" measure_type: Filter by unit: "Length", "Area", "Volume", "Angle" property: Exact property name lookup (returns single match with GUID) limit: Max results (default 50, max 200)

Returns: Properties with GUIDs ready for GetPropertyValuesOfElements.

NOTE: For command documentation (API schemas), use get_docs instead.

execute_scriptA

Execute Python in a disposable same-account local_user worker against the selected Archicad port. This is reliability isolation only, not hostile-code isolation: scripts have ordinary local-user Python builtins and imports and can read or write files, start processes, or make destructive Archicad/Tapir changes with the user's authority. The default timeout is 300 seconds; any positive finite timeout is accepted and null disables it. Timeout or transport cancellation terminates the owned worker. Use get_docs to discover Archicad and Tapir commands.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.6/5.0

Scored across 4 tools

Disambiguation4/5

list_instances, get_docs, get_properties, and execute_script each target a distinct concern: instance discovery, command documentation, property metadata, and script execution. The only plausible confusion is between get_docs and get_properties since both are searchable catalogs, but their descriptions explicitly separate command schemas from element property GUIDs.

Naming Consistency4/5

Tool names generally follow a verb_noun snake_case pattern (get_docs, get_properties, execute_script), but list_instances uses a different retrieval verb ('list' instead of 'get') and 'docs' is an abbreviation. These are minor deviations rather than a broken naming convention.

Tool Count5/5

With four tools, the set is lean but not thin: each tool has a distinct role, and execute_script intentionally consolidates arbitrary Archicad command execution so dozens of per-command tools aren't needed. This is a well-scoped alternative to exposing every API function as a separate MCP tool.

Completeness5/5

The set covers the full workflow: discover an instance, learn available commands, look up property GUIDs, and execute arbitrary Python against the selected instance. Because execute_script can invoke any Archicad/Tapir command, there are no obvious CRUD/lifecycle dead ends within the domain.

Maintenance

ActivityActive
ResponsivenessNo issues