Codync
무료 오픈소스 1:1 대안, Grok Bot과 Muse 대신
Tapir 명령을 AI 모델에 자동 생성 도구로 열어 주는 MCP 서버
MCP server that exposes all Tapir commands to AI models through autogenerated tools
개발 도구PythonGitHub @SzamosiMate직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗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.
archicad_list_commands and archicad_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.faiss-cpu, or sentence-transformers, dramatically reducing the package size and eliminating server startup delays.sse (Server-Sent Events) and streamable-http transports in addition to standard input/output (stdio), allowing the server to be run on remote host configurations.--token flag or TAPIR_MCP_TOKEN environment variable).Follow these steps to get the server running and connected to an MCP client like Claude for Desktop.
uv: Ensure you have a modern version of Python and the uv package manager installed.Open your client's config.json file and add the following configuration. This command works across operating systems:
~/Library/Application Support/Claude/claude_desktop_config.json%APDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"ArchicadTapir": {
"command": "uvx",
"args": [
"--from",
"tapir-archicad-mcp",
"archicad-server"
]
}
}
}
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.
%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.
You can customize the server via CLI flags or environment variables:
| CLI Flag | Environment Variable | Default | Description |
|---|---|---|---|
--transport | - | stdio | Transport protocol to use (stdio, sse, or streamable-http) |
--host | TAPIR_MCP_HOST | 127.0.0.1 | Bind address for HTTP-based transports |
--port | TAPIR_MCP_PORT | 8000 | Bind port for HTTP-based transports |
--token | TAPIR_MCP_TOKEN | None | Optional Bearer token to secure HTTP endpoints |
--async-threshold-seconds | TAPIR_MCP_ASYNC_THRESHOLD_SECONDS | 45 | Seconds to wait before returning a running job handle |
--job-ttl-seconds | TAPIR_MCP_JOB_TTL_SECONDS | 86400 | Seconds to keep finished jobs; 0 disables time-based expiry |
--max-completed-jobs | TAPIR_MCP_MAX_COMPLETED_JOBS | 128 | Maximum number of finished jobs to keep |
CLI flags override environment variables.
Commands normally return their result directly. If a command takes longer than 45 seconds, archicad_call_tool returns a job handle while execution continues:
{"status": "running", "jobHandle": "job:83af21..."}
Call archicad_get_job(job_handle="job:83af21...") to check progress and retrieve the result. Repeat while the status is running; the final status is completed or failed. If your client times out sooner, lower --async-threshold-seconds.
If a response is lost, call archicad_get_job() to list recent jobs before repeating a command that changes the project. Cancelling a request does not stop a command already started, and retrying it may duplicate changes.
Jobs remain available across HTTP client reconnects while the server is running, but are lost on server restart. Retention defaults to 24 hours and a maximum of 128 finished jobs.
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_archicads and report the active instances and their port numbers.
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:
archicad_list_commands to look up the correct command name for the requested action (identifying elements_get_elements_by_type).archicad_get_command_schema with the target command name to retrieve the exact required JSON parameter structure.archicad_call_tool with the command name, the targeted port, and the required parameter payload.The server operates through a layered architecture:
list/schema/call interface.multiconn_archicad Library: Resolves active socket connections and handles low-level command dispatch to Archicad instances.Contributions are welcome! Please feel free to submit an issue or open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.