Skip to main content

archicad-mcp

CI PyPI

archicad-mcp is a local stdio MCP server for Archicad automation through Archicad's built-in JSON API, with optional Tapir commands. Its four tool categories cover instance discovery, searchable command documentation, property discovery, and multi-step Python workflows. Validated Archicad and Tapir command documentation is packaged with the server and is available without a running Archicad instance.

Quick start

Requirements

  • Python 3.11 or newer
  • uv
  • An MCP client that can launch a local stdio server

Add the server to the client's MCP configuration:

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

Save the configuration and restart or reload the client. Then call:

get_docs(command="API.GetAllElements")

A successful response has the ID native:API.GetAllElements and includes the command schema. This first success requires neither Archicad nor Tapir.

Tools and workflow

Tool Purpose
list_instances Find running Archicad instances and their ports.
get_docs Browse, search, or retrieve built-in and Tapir command schemas.
get_properties Find element properties and property IDs.
execute_script Run a multi-step Python workflow against an instance.

Use get_docs to move from discovery to exact schemas:

get_docs()
get_docs(search="create slab")
get_docs(command="API.GetAllElements")
get_docs(commands=["API.GetAllElements", "CreateSlabs"])

For live work, call list_instances, inspect the needed command schemas with get_docs and property IDs with get_properties, then pass the selected port to execute_script. Live tools require Archicad, and the server and Archicad must run on the same host. Tapir is needed only for Tapir calls and get_properties; built-in Archicad capabilities remain available without it.

Script execution

execute_script accepts the body of an async Python function. It injects archicad and port, permits top-level await, and returns the value assigned to result.

Scripts run as your operating-system user and are not sandboxed; review the code before executing it.

result = await archicad.command("GetProductInfo")

See Script execution for the complete authoring, result, cancellation, and safety contract.

Diagnostics and installation alternatives

Use the public console command for setup and diagnostics:

  • uvx archicad-mcp setup prints the client-neutral configuration without editing files.
  • uvx archicad-mcp doctor --json reports package, schema, and local Archicad diagnostics.
  • uvx archicad-mcp config --json prints the effective runtime configuration.
  • uvx archicad-mcp --version and uvx archicad-mcp --help report the installed version and available commands.

For a persistent installation, run:

uv tool install archicad-mcp

The installed archicad-mcp command then replaces uvx archicad-mcp in terminal commands and the MCP configuration. If live discovery fails, check that Archicad is listening on its local JSON API port in the range 19723-19743.

For migration from 0.1.x, use the public console command; live schema generation, repository submodules, and a preliminary manual schema refresh are no longer part of command discovery.

Schema updates

get_docs uses the packaged command documentation or a newer validated Tapir snapshot from the user cache. When automatic updates are enabled and the shared 24-hour interval permits, startup schedules at most one bounded, nonblocking check. Startup does not wait for it, and there is no recurring timer or daemon.

Variable Behavior
ARCHICAD_MCP_AUTO_UPDATE=0 Disable automatic schema checks while retaining a valid cache.
ARCHICAD_MCP_OFFLINE=1 Disable schema-update network access while retaining a valid cache.

Offline schema mode does not stop uvx from acquiring the package. Use archicad-mcp schemas status, archicad-mcp schemas update, and archicad-mcp schemas reset to inspect, update, or reset the cache. An older installed Tapir add-on may not implement commands in a newer active schema; built-in Archicad documentation is unaffected.

See Schema snapshots and updates for the cache, validation, update, and maintainer contracts.

Contributing and releases

See CONTRIBUTING.md for development setup and checks, report bugs with the GitHub bug form, and find release notes and artifacts on GitHub Releases.

License

MIT

Metadata

Release files for archicad-mcp 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for archicad-mcp 0.2.2
File Size Uploaded
archicad_mcp-0.2.2.tar.gz 410.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for archicad-mcp 0.2.2
File Interpreter ABI Platform
archicad_mcp-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 579.4 kB

Release files / archicad_mcp-0.2.2.tar.gz

Download URL archicad_mcp-0.2.2.tar.gz
Size 410.1 kB
Tags Source
SHA-256 checksum
How to use checksums
488f3ef5a17bc17d6a2f586c1166a8d5a12d7798fb3fdd7ffe21fc2716bd80b2
BLAKE2b-256 checksum
How to use checksums
f7ed59d45bb6785eb1674bc44b028270782a02dbfeb75e9d5b7d45d611fe89a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release files / archicad_mcp-0.2.2-py3-none-any.whl

Download URL archicad_mcp-0.2.2-py3-none-any.whl
Size 169.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
85a766001fcc4ce9b32fb5e28004cb8d63417fdd4aa0a807b6b664226624922e
BLAKE2b-256 checksum
How to use checksums
c280f439fa8c914f44026d7da86b1b6afd1f0a216c8cd8395b9d698ec36546fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page