An MCP server housing various Zoo built utilities
- An API key for Zoo, get one here
- An environment variable
ZOO_API_TOKEN
set to your API keyexport ZOO_API_TOKEN="your_api_key_here"
-
uv venv
-
Install the package from GitHub
uv pip install git+ssh://[email protected]/KittyCAD/zoo-mcp.git
The server can be started by using uvx
uvx zoo-mcp
The server can be started locally by using uv and the zoo_mcp module
uv run -m zoo_mcp
The server can also be run with the mcp package
uv run mcp run src/zoo_mcp/server.py
The server can be used as is by running the server or importing directly into your python code.
from zoo_mcp.server import mcp
mcp.run()
Individual tools can be used in your own python code as well
from mcp.server.fastmcp import FastMCP
from zoo_mcp.ai_tools import text_to_cad
mcp = FastMCP(name="My Example Server")
@mcp.tool()
async def my_text_text_to_cad(prompt: str) -> str:
"""
Example tool that uses the text_to_cad function from zoo_mcp.tools
"""
return await text_to_cad(prompt=prompt)
The server can be integrated with Claude desktop using the following command
uv run mcp install src/zoo_mcp/server.py
The server can also be integrated with Claude Code using the following command
claude mcp add --scope project "Zoo-MCP" uv -- --directory "$PWD"/src/zoo_mcp run server.py
The server can also be tested using the MCP Inspector
uv run mcp dev src/zoo_mcp/server.py
For running with codex-cli
codex \
-c 'mcp_servers.zoo.command="uvx"' \
-c 'mcp_servers.zoo.args=["zoo-mcp"]' \
-c mcp_servers.zoo.env.ZOO_API_TOKEN="$ZOO_API_TOKEN"
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.
ruff is used for linting and formatting.
uvx ruff check
uvx ruff format
ty is used for type checking.
uvx ty check
The server includes tests located in tests
. To run the tests, use the following command:
uv run pytest