Codync
免費、開源的 1:1 替代方案,取代 Grok Bot 與 Muse。從 iPhone、Mac 或 Linux 桌面將 Claude Code、Codex、Cursor 與 40+ 程式碼代理人作為持續機器人傳訊。群組聊天、主題串…
AI 翻譯
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.