Skip to main content

MCP server for Archicad automation via the Tapir JSON API

Project description

archicad-mcp

CI Python License: MIT Code style: ruff

MCP server for Archicad automation. Connects AI assistants to running Archicad instances via the Tapir JSON API, enabling everything from simple queries to complex multi-step workflows through Python scripting.

Built on a script-first architecture: instead of wrapping every Archicad command as a separate tool, the server exposes 4 tools and lets the AI write Python for complex operations.

Design

Minimal tool surface. Every Archicad command is accessible through execute_script, which provides full async Python with loops, filtering, and file I/O. Complex logic lives in Python scripts, not in per-command tool wrappers.

Dynamic documentation. The execute_script tool description is generated at startup from live Archicad schemas. The AI always sees accurate command signatures, parameter types, and examples - no stale docs.

Multi-instance. Parallel port scanning across 19723-19744 discovers all running Archicad instances. Target any instance by port number - work with multiple projects simultaneously.

Full-text search. Inverted index over all command schemas with weighted field scoring and fuzzy matching via rapidfuzz. Typo-tolerant: "proprty" still finds property commands.

Tools

Tool Purpose
list_instances Discover running Archicad instances (port, project name, version, Tapir status)
execute_script Execute Python with full async Archicad API access and file I/O
get_docs Search and retrieve command documentation (schemas, examples, parameters)
get_properties Discover element properties (area, volume, length) with cached GUID lookup

Quick Start

Add to your MCP client configuration (e.g. Claude Desktop, VS Code, etc.):

{
  "mcpServers": {
    "archicad": {
      "type": "stdio",
      "command": "uvx",
      "args": ["archicad-mcp"]
    }
  }
}

uvx fetches the latest release from PyPI on first run. Pin a specific version with ["archicad-mcp@0.1.0"]. To run from a local checkout instead, see Development.

Use

With Archicad running and the Tapir add-on installed, the server auto-discovers instances on startup. Ask your AI assistant to interact with Archicad - it has full access to the command reference and can write scripts for complex operations.

Configuration

The script executor supports two security modes, controlled via environment variables:

Variable Values Default
ARCHICAD_MCP_SECURITY unrestricted, sandboxed unrestricted
ARCHICAD_MCP_BLOCKED_PATHS Comma-separated glob patterns OS system directories
ARCHICAD_MCP_ALLOWED_WRITE_PATHS Comma-separated glob patterns Desktop, Documents, temp

Unrestricted (default): Read/write access to most paths. System directories (e.g. C:/Windows, /usr) are always blocked.

Sandboxed: Read access everywhere, write access restricted to the allowed paths list.

Requirements

  • Python 3.11+
  • Archicad 25+ with the Tapir add-on installed
  • An MCP-compatible client

Development

git clone https://github.com/Boti-Ormandi/archicad-mcp.git
cd archicad-mcp
uv sync --all-extras   # runtime + dev tooling (ruff, mypy, pytest)

To point your MCP client at the local checkout instead of the published package:

{
  "mcpServers": {
    "archicad": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/archicad-mcp", "archicad-mcp"]
    }
  }
}

Dev tooling:

# Lint and format
ruff check src/
ruff format src/

# Type check
mypy src/

# Tests (unit + mock, no Archicad needed)
pytest -m "not integration"

# Integration tests (requires running Archicad)
pytest

Schema sync

The repo uses git submodules in deps/ for upstream schema tracking (CI-only, not needed for local development). To regenerate the embedded schemas locally:

git submodule update --init
archicad-mcp-sync deps/tapir       # regenerates src/archicad_mcp/schemas/tapir.json
archicad-mcp-sync deps/multiconn   # regenerates src/archicad_mcp/schemas/builtin.json

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

archicad_mcp-0.1.0.tar.gz (209.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

archicad_mcp-0.1.0-py3-none-any.whl (77.3 kB view details)

Uploaded Python 3

File details

Details for the file archicad_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: archicad_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 209.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for archicad_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ed0b8f59cbdbff5f9b368606e18c8c5a89483b1add3e519e7617a3691719914c
MD5 dc4d30b76a1fdeda77720ae02978316f
BLAKE2b-256 2d3d07baa41e5a157479655dc9f3f9be078bb3e53aaa49443c08d8fb21b8a709

See more details on using hashes here.

Provenance

The following attestation bundles were made for archicad_mcp-0.1.0.tar.gz:

Publisher: release.yml on Boti-Ormandi/archicad-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archicad_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: archicad_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 77.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for archicad_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5c204ae543cb16c0b6526d98409166b862f43b2cc914a8067c210e478999a073
MD5 9e2d9b62d51d7cd60cdb6a4014480290
BLAKE2b-256 30676998126dc476c8fb59c386b76e9c6920475ea77c5a489a7c13d901f9037f

See more details on using hashes here.

Provenance

The following attestation bundles were made for archicad_mcp-0.1.0-py3-none-any.whl:

Publisher: release.yml on Boti-Ormandi/archicad-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page