An MCP server that provides access to the Zoo API for various CAD operations and tools.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
An MCP server housing various Zoo built utilities
ZOO_API_TOKEN set to your API key
Install the package from GitHub
The server can be started by using uvx
The server can be started locally by using uv and the zoo_mcp module
The server can also be run with the mcp package
Each GitHub release also attaches standalone executables (built with PyInstaller) for Linux (x86_64, arm64), macOS (arm64, x86_64), and Windows (x86_64) β no Python toolchain required. Download the binary for your platform, set ZOO_API_TOKEN, and run it directly, e.g.:
The binaries are not code-signed, so macOS Gatekeeper and Windows SmartScreen may warn on first run.
The server can be used as is by running the server or importing directly into your python code.
Individual tools can be used in your own python code as well. At Zoo we use zoo-mcp like this with ZooKeeper to save on resources. Instead of spinning up one MCP server per agent, each agent in a sense "embeds" the server in their own runtime. It has the additional benefit of preventing shared state.
The server can be integrated with Claude desktop using the following command
The server can also be integrated with Claude Code using the following command
The server can also be tested using the MCP Inspector
For running with codex-cli
You can also use the helper script included in this repo:
The script prompts for a request, runs Codex with the Zoo MCP server, and saves a JSONL transcript (including token usage) to codex-run-<timestamp>.jsonl.
Tools are defined in src/zoo_mcp/*.py, where they are then imported into
src/zoo_mcp/server.py and tied to actual @mcp.tool() decorated functions.
src/zoo_mcp/zoo_tools.py acts as a large toolset to interact with Zoo's KCL and
engine facilities. This source file houses other utilities like parse_unit or
normalize_ext (normalizing file extensions).
For example, running KCL and taking a snapshot is defined in that source file.
Right now the MCP is structured such that one engine connection is used per tool call. MCP's stateless nature is what more or less influenced this.
Contributions are welcome! Please open an issue or submit a pull request on the GitHub repository
PRs will need to pass tests and linting before being merged.
The server includes tests located in tests. To run the tests, use the following command:
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/zoo-mcp)<a href="https://allmcps.com/mcp/zoo-mcp"><img src="https://allmcps.com/api/badge/zoo-mcp?style=directory" alt="Zoo Mcp on AllMCPs" /></a>