tapir-archicad-mcp
The tapir-archicad-mcp server bridges AI agents (like Claude) with running Archicad instances, providing a unified toolset of 191+ commands from the Tapir and official Archicad JSON APIs. Key capabilities:
Instance Discovery: Scan for all active Archicad instances, retrieving port numbers, project names, types, and versions.
Progressive Command Execution: List available commands with descriptions, fetch their exact JSON schemas, then execute any command with validated parameters, targeting a specific instance by port.
Multi-Instance Control: Manage and interact with multiple Archicad instances simultaneously.
Architectural Manipulation: Query and modify elements (walls, slabs, doors, etc.) and model data.
Flexible & Secure Transports: Supports stdio, SSE, and streamable HTTP, with optional Bearer token authentication for remote access.
Cross-Platform: Works on Windows and macOS.
Runtime Validation: All tool arguments are strictly validated using Pydantic-generated schemas.
Provides tools for interacting with Archicad projects, including discovering and calling commands to manage elements, layers, views, and more via the Tapir and official Archicad JSON APIs.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tapir-archicad-mcpcheck what Archicad projects I have running"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Archicad Tapir MCP Server
This project provides a Model Context Protocol (MCP) server for Archicad. It acts as a bridge, allowing AI agents and applications (like Claude for Desktop) to interact with running Archicad instances by wrapping both the community-driven Tapir API and the official Archicad JSON API.
The server dynamically generates a comprehensive set of 191+ MCP tools from the combined API schemas, enabling fine-grained control over Archicad projects.
Key Features
Pydantic-Powered Runtime Validation & Schema Generation: Every tool's input and output shapes are backed by rigorous Pydantic models. The server dynamically compiles these into detailed JSON Schemas for the AI agent to inspect, and strictly validates all incoming tool arguments at runtime before forwarding them to Archicad. It handles complex models, Union types, and TypeAliases seamlessly.
Progressive Tool Discovery (CLI-style): The server uses a deterministic workflow (
archicad_list_commandsandarchicad_get_command_schema) that allows AI agents to list available commands and fetch exact parameter schemas on demand. This avoids flooding the model's context window with large schemas.No Heavy Machine-Learning Dependencies: Vector-based search has been removed. The server no longer requires heavy packages like PyTorch,
faiss-cpu, orsentence-transformers, dramatically reducing the package size and eliminating server startup delays.Massive Toolset, Minimal Footprint: Provides access to a unified toolset of 191+ commands by merging the community Tapir API and the official Archicad JSON API.
Flexible Network Transports: Supports
sse(Server-Sent Events) andstreamable-httptransports in addition to standard input/output (stdio), allowing the server to be run on remote host configurations.Bearer Token Authentication: Secures HTTP endpoints when using SSE or Streamable-HTTP via an opt-in token validation middleware (
--tokenflag orTAPIR_MCP_TOKENenvironment variable).Multi-Instance Control: Connect to and manage multiple running Archicad instances simultaneously, targeting commands to specific instances via port numbers.
Cross-Platform Support: Compatible with both Windows and macOS systems.
Related MCP server: archicad-mcp
Installation & Setup
Follow these steps to get the server running and connected to an MCP client like Claude for Desktop.
1. Prerequisites
Python 3.12+ and
uv: Ensure you have a modern version of Python and theuvpackage manager installed.Archicad & Tapir Add-On: You must have Archicad running (which includes the official JSON API). To access the full set of community-developed tools, the Tapir Archicad Add-On must also be installed.
MCP Client: An application that can host MCP servers, such as Claude for Desktop or Gemini CLI.
2. Configure Your AI Client
Open your client's config.json file and add the following configuration. This command works across operating systems:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"ArchicadTapir": {
"command": "uvx",
"args": [
"--from",
"tapir-archicad-mcp",
"archicad-server"
]
}
}
}3. One-click install (optional)
If your client supports MCP Bundles you can skip the config file above. Claude Desktop, Claude Code and MCP for Windows all install .mcpb files.
Download tapir-archicad.mcpb from the latest release and open it in your client. On the Microsoft Store build of Claude Desktop this is the easier route, because the app does not read the %APPDATA%\Claude\claude_desktop_config.json that everyone documents.
uv still has to be on the PATH your client sees, but it provisions Python and the locked dependencies itself, so there is nothing else to install. The first launch takes 15 to 30 seconds while it builds that environment. The bundle can modify the open project, export files, and send or receive Teamwork, so treat installing it like handing your client your Archicad seat.
"Server disconnected", or the install itself fails. Uninstall the bundle, restart the client, then install it again. Installing over an existing bundle can leave stale state behind that a straight reinstall does not clear.
Nothing happens for the first half minute. That is uv building the environment, and antivirus scanning or a slow connection stretches it out. Restart the client once before assuming the bundle is broken.
Claude Desktop logs are at
%APPDATA%\Claude\logs\mcp-server-Archicad (Tapir).log. On the Microsoft Store build that path is redirected and the real file is%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\logs\mcp-server-Archicad (Tapir).log.
Icon artwork is the official Tapir mark from ENZYME-APD/tapir-archicad-automation (branding/logo/png/tapir_logo_black_512.png), MIT, Copyright 2024 Enzyme APD.
Configuration Options
You can customize the server via CLI flags or environment variables:
CLI Flag | Environment Variable | Default | Description |
| - |
| Transport protocol to use ( |
|
|
| Bind address for HTTP-based transports |
|
|
| Bind port for HTTP-based transports |
|
|
| Optional Bearer token to secure HTTP endpoints |
Usage
Restart Claude for Desktop to apply configuration changes.
Ensure at least one instance of Archicad is running.
The client will initially have access to a small set of core tools. Start by asking the AI to find running Archicad instances:
"Can you check what Archicad projects I have running?"
The AI will call
discovery_list_active_archicadsand report the active instances and theirportnumbers.State your main goal:
"Using port 19723, get all the Wall elements from the project."
The AI will execute a progressive discovery and calling loop:
Step 1: It queries
archicad_list_commandsto look up the correct command name for the requested action (identifyingelements_get_elements_by_type).Step 2: It calls
archicad_get_command_schemawith the target command name to retrieve the exact required JSON parameter structure.Step 3: It calls
archicad_call_toolwith the command name, the targetedport, and the required parameter payload.
How It Works
The server operates through a layered architecture:
AI Agent (e.g., Claude): Interprets user prompts and orchestrates tool discovery.
MCP Client (e.g., Claude for Desktop): Manages the server process and handles communication.
MCP Server (This Project): Standardizes tool descriptions, parameters, and results, presenting a clean
list/schema/callinterface.multiconn_archicadLibrary: Resolves active socket connections and handles low-level command dispatch to Archicad instances.Archicad & Tapir Add-On: Built-in APIs and Tapir Add-on execute commands and return structured data.
Contributing
Contributions are welcome! Please feel free to submit an issue or open a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Available Tools
4 toolsarchicad_call_toolExecute Archicad API CommandADestructive
Executes a specific Archicad API command by its 'name'. CRITICAL WORKFLOW: You MUST use 'archicad_get_command_schema' first to understand the exact JSON structure required for the 'arguments' parameter. The 'arguments' dictionary MUST contain a 'port' number (obtained from 'discovery_list_active_archicads'). If a tool's response includes a 'next_page_token', call this same tool again with the same parameters and add a 'page_token' key to the 'arguments' dictionary.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| arguments | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (destructiveHint=true, readOnlyHint=false, idempotentHint=false), and the description is consistent with them. The description adds genuine behavioral value beyond annotations: the port prerequisite, the mandatory schema-lookup workflow, and the pagination contract where a 'next_page_token' in the response requires re-invocation with a 'page_token' argument. These are non-obvious runtime behaviors the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The four sentences are dense but each earns its place: purpose, mandatory prerequisite, port requirement, and pagination handling. The 'CRITICAL WORKFLOW' label adds mild verbosity, but for a destructive generic executor with a prerequisite, emphasizing the workflow is justified. It is front-loaded with the core purpose before the workflow details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex generic executor with an open-world arguments object and no output schema or parameter descriptions, this description covers the critical workflow: prerequisite schema lookup, port sourcing, and page-token pagination. The main gap is that the response format beyond the 'next_page_token' signal is not described, though the absence of an output schema makes that a moderate rather than severe omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% — the schema only provides 'name' as a string and 'arguments' as an unconstrained object with additionalProperties:true. The description compensates substantially: it explains that 'name' identifies the command and that 'arguments' must contain a 'port' key and optionally a 'page_token'. It deliberately defers the full arguments structure to archicad_get_command_schema, which is appropriate for a generic executor, but it does not document all possible argument shapes itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Executes a specific Archicad API command by its name.' This clearly differentiates the tool from siblings (discovery_list_active_archicads discovers, archicad_list_commands lists, archicad_get_command_schema retrieves schemas) because this one is the actual executor. An agent can immediately tell what this tool does and how it differs from the others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow instructions: it mandates calling archicad_get_command_schema first, requires a 'port' obtained from discovery_list_active_archicads within the arguments, and specifies the pagination loop (call again with a 'page_token' when a 'next_page_token' is returned). This tells the agent exactly when and how to invoke the tool, including prerequisites and the recursive pagination case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archicad_get_command_schemaGet Archicad Command SchemaARead-onlyIdempotent
Retrieves the exact JSON schema (required arguments) for a specific Archicad command. Provide the exact 'command_name' obtained from 'archicad_list_commands'. CRITICAL: You MUST call this tool before executing 'archicad_call_tool' to ensure you provide the correct parameters. Do NOT guess or hallucinate parameters based on the command name.
| Name | Required | Description | Default |
|---|---|---|---|
| command_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | The name of the command. |
| input_schema | Yes | The JSON schema outlining the required arguments for archicad_call_tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds useful behavioral context by stating the mandatory precondition that this must be called before archicad_call_tool, which clarifies the tool's role in the workflow beyond what the annotations express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core purpose front-loaded. Every sentence earns its place: what it does, where the input comes from, and the critical workflow constraint. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with a full output schema and clear sibling context, the description is complete. It covers input provenance, the required call order relative to archicad_call_tool, and the anti-hallucination warning. Return value details are appropriately left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself has 0% description coverage, so the description carries the burden for parameter meaning. It compensates well by specifying that command_name must be the exact value obtained from 'archicad_list_commands' and explicitly warns against guessing, which adds real semantic value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Retrieves the exact JSON schema (required arguments) for a specific Archicad command.' It clearly differentiates from sibling tools by naming archicad_list_commands and archicad_call_tool and placing itself between them in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: call after obtaining command_name from 'archicad_list_commands' and before executing 'archicad_call_tool'. It also tells the agent not to guess or hallucinate parameters, which is direct and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archicad_list_commandsList Available Archicad CommandsARead-onlyIdempotent
Returns a comprehensive list of all available Archicad API commands and brief descriptions. STEP 1: Use this tool FIRST to search for the right command name for your task. Do NOT guess or hallucinate command names. STEP 2: Once you find the relevant command name, you MUST use the 'archicad_get_command_schema' tool to learn its exact required arguments.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds some output scope detail ('comprehensive list', 'brief descriptions') but does not disclose additional behavioral traits such as payload size, pagination, or response structure. It provides useful workflow context but not deeper behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and uses a clear STEP 1/STEP 2 structure. Every sentence earns its place, and the most important instruction—use this first—is prominent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter discovery tool with an output schema and rich annotations, the description is complete. It tells the agent exactly what the tool returns, when to use it first, and which sibling tool to proceed with. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 and the description need not explain argument semantics. The empty input schema already makes clear that no arguments are required, and the description focuses on the tool's role rather than introducing unnecessary parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a comprehensive list of all available Archicad API commands and brief descriptions, using a specific verb and resource. It also differentiates itself from sibling tools by explicitly positioning itself as the discovery step before calling archicad_get_command_schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit step-by-step guidance: use this tool FIRST to find the correct command name, do not guess or hallucinate names, and then use archicad_get_command_schema to learn exact arguments. This clearly states when to use this tool and what to do next.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discovery_list_active_archicadsList Active Archicad InstancesARead-onlyIdempotent
Scans for and lists running Archicad instances. Returns 'active' (ready to receive commands with their target 'port') and 'unavailable' (instances that are unresponsive or missing the Tapir Add-On).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| activeInstances | No | List of ready Archicad instances that can be targeted by commands. |
| unavailableInstances | No | List of detected instances that cannot be targeted, along with diagnostic reasons. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, open-world, idempotent, and non-destructive behavior, so the description does not need to repeat those. It adds valuable behavioral context by explaining what 'active' means, that ports are provided, and that 'unavailable' instances may be unresponsive or missing the Tapir Add-On. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The core action is front-loaded, and the second sentence adds meaningful output clarification without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless discovery tool with safety annotations and an output schema, the description is complete. It explains what the tool returns, what the categories mean, and why an instance might be unavailable, which is all an agent needs to select and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter details to supplement. The description correctly focuses on behavior and return categories instead, which is appropriate for a parameterless discovery tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Scans for and lists') and resource ('running Archicad instances'), making the tool's function immediately clear. It also goes beyond a simple label by explaining the two output categories, 'active' and 'unavailable', which distinguishes it from sibling tools that deal with commands and schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: it identifies which instances are ready to receive commands and provides their target ports, implying it should be used before calling command-execution tools. It does not explicitly name alternatives or state when not to use it, but the intended role is evident from the active/unavailable distinction.
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.
2 tool updates
v0.6.0- Changed
archicad_list_commands1 field changed- changed
Output schema / $defs / CommandOverview / properties / name / descriptionPrevious value: -"The unique, snake-cased name of the tool (e.g., 'elements_get_all_elements'). Use this in archicad_get_command_schema."New value: +"The unique, snake-cased name of the tool (e.g., 'elements_get_all_elements')."
- Changed
discovery_list_active_archicads9 fields changed- removed
Output schema / $defs / ArchicadInstanceInfoRemoved value: -{ - "description": "A curated model to hold key information about a running Archicad instance.", - "properties": { - "archicadVersion": { - "description": "The major version of the Archicad application (e.g., '27').", - "title": "Archicadversion", - "type": "string" - }, - "port": { - "description": "The communication port of the Archicad instance. Use this to target commands.", - "title": "Port", - "type": "integer" - }, - "projectName": { - "description": "The name of the project file currently open in the instance.", - "title": "Projectname", - "type": "string" - }, - "projectPath": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "The full file path of the project, if it is a saved solo or teamwork project.", - "title": "Projectpath" - }, - "projectType": { - "description": "The type of the project: 'teamwork', 'solo', or 'untitled'.", - "enum": [ - "teamwork", - "solo", - "untitled" - ], - "title": "Projecttype", - "type": "string" - } - }, - "required": [ - "port", - "projectName", - "projectType", - "archicadVersion" - ], - "title": "ArchicadInstanceInfo", - "type": "object" -} - added
Output schema / $defs / ReadyInstanceAdded value: +{ + "description": "Information about an active Archicad instance ready to execute commands.", + "properties": { + "archicadVersion": { + "description": "The major version of Archicad (e.g. '27', '28').", + "title": "Archicadversion", + "type": "string" + }, + "port": { + "description": "The communication port of the Archicad instance. Pass this to archicad_call_tool.", + "title": "Port", + "type": "integer" + }, + "projectName": { + "description": "The name of the currently open project.", + "title": "Projectname", + "type": "string" + }, + "projectPath": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The full file path or teamwork server location of the project.", + "title": "Projectpath" + }, + "projectType": { + "description": "The type of the project: 'teamwork', 'solo', or 'untitled'.", + "enum": [ + "teamwork", + "solo", + "untitled" + ], + "title": "Projecttype", + "type": "string" + }, + "tapirVersion": { + "description": "The version of the Tapir Add-On installed on this instance.", + "title": "Tapirversion", + "type": "string" + }, + "warning": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Warning regarding Tapir version differences (e.g., outdated or newer version).", + "title": "Warning" + } + }, + "required": [ + "port", + "projectName", + "projectType", + "archicadVersion", + "tapirVersion" + ], + "title": "ReadyInstance", + "type": "object" +} - added
Output schema / $defs / UnavailableInstanceAdded value: +{ + "description": "Diagnostic information about an Archicad instance that cannot be automated.", + "properties": { + "message": { + "description": "Explanation and actionable troubleshooting advice.", + "title": "Message", + "type": "string" + }, + "reason": { + "description": "Why the instance is unavailable: 'missing_tapir' or 'unresponsive'.", + "enum": [ + "missing_tapir", + "unresponsive" + ], + "title": "Reason", + "type": "string" + } + }, + "required": [ + "reason", + "message" + ], + "title": "UnavailableInstance", + "type": "object" +} - added
Output schema / descriptionAdded value: +"The result of scanning for Archicad instances." - added
Output schema / properties / activeInstancesAdded value: +{ + "description": "List of ready Archicad instances that can be targeted by commands.", + "items": { + "$ref": "#/$defs/ReadyInstance" + }, + "title": "Activeinstances", + "type": "array" +} - removed
Output schema / properties / resultRemoved value: -{ - "items": { - "$ref": "#/$defs/ArchicadInstanceInfo" - }, - "title": "Result", - "type": "array" -} - added
Output schema / properties / unavailableInstancesAdded value: +{ + "description": "List of detected instances that cannot be targeted, along with diagnostic reasons.", + "items": { + "$ref": "#/$defs/UnavailableInstance" + }, + "title": "Unavailableinstances", + "type": "array" +} - removed
Output schema / requiredRemoved value: -[ - "result" -] - changed
Output schema / titlePrevious value: -"list_active_archicadsOutput"New value: +"DiscoveryResult"
3 tool updates
v0.5.1- Removed
archicad_discover_tools - Added
archicad_get_command_schema - Added
archicad_list_commands
3 tool updates
v0.4.3- First observed
archicad_call_tool - First observed
archicad_discover_tools - First observed
discovery_list_active_archicads
TDQS
Scored across 4 tools
Each tool has a distinct, non-overlapping role: discovery, listing commands, fetching schemas, and executing commands. No two tools could be confused for the same purpose.
Most tools follow an archicad_verb_noun pattern, but discovery_list_active_archicads breaks convention by using discovery_ instead of archicad_ and lacks the archicad_ prefix. Minor inconsistency overall.
Four tools is exactly right for a gateway server that exposes a large external API. Each tool earns its place in the workflow.
The set covers the full lifecycle needed to interact with Archicad: discover instances, enumerate commands, inspect schemas, and call commands. No essential step is missing.
Maintenance
Related MCP Connectors
Human-input bridge for AI agents with voice-first answer links, MCP tools, and HTTP APIs.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Connect AI clients to biomedical data and tools.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables MCP clients like Claude to interact with Graphisoft Archicad through the Tapir add-on's JSON commands. Supports automated Archicad operations and custom tool integration for architectural design workflows.28MIT
- AlicenseAqualityAmaintenanceMCP server for Archicad automation, enabling AI assistants to run Python scripts against running Archicad instances via the Tapir JSON API for complex workflows.480 PyPI5MIT
- FlicenseNot gradedqualityBmaintenanceEnterprise-grade MCP bridge exposing Open Design's REST API as 15 MCP tools, enabling AI agents to create, iterate, and manage design projects via the Model Context Protocol.-
- FlicenseAqualityBmaintenanceRead-only MCP bridge for Archicad using the Tapir Add-On, enabling discovery, context binding, and safe read operations on Archicad projects.8-