An MCP server that provides access to the Zoo API for various CAD operations and tools.
MCPpedia last refreshed this data
Zoo MCP Server is an MCP server that an MCP server that provides access to the Zoo API for various CAD operations and tools. Its tool list has not been published yet over stdio and http, requires no API key, and scores 88/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"io-github-kittycad-zoo-mcp": {
"args": [
"git"
],
"command": "uvx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
An MCP server housing various Zoo built utilities
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
uvx 'git' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked git against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in design / developer-tools
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
Manage Supabase projects — databases, auth, storage, and edge functions
MCP server for using the GitLab API
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
MCP Security Weekly
Get CVE alerts and security updates for Zoo MCP Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP server housing various Zoo built utilities
A Zoo account. Run uvx zoo-mcp auth login once before starting the server.
The command opens your browser and prints a verification URL and code.
The server reuses your saved login; public tools also work without login.
You can also use an API key:
export ZOO_API_TOKEN="your_api_key_here"
uv venv
Install the package from GitHub
uv pip install git+ssh://git@github.com/KittyCAD/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
Manage device login explicitly:
uvx zoo-mcp auth login
uvx zoo-mcp auth login --no-browser
uvx zoo-mcp auth status
uvx zoo-mcp auth logout
Logins are saved per API origin in your system credential store using
keyring: macOS Keychain, Windows Credential
Locker, or a supported Linux keyring. On headless systems without an available
keyring, set ZOO_API_TOKEN instead. Status never displays tokens. Logout removes
only the saved login for the current origin; restart running servers afterward.
If your login expires or is revoked, run auth login again and restart the server.
If the login command fails because of a network error, run it again to retry.
Server startup never opens a browser. Device authorization and polling use
requests-oauth2client.
Device login requires the API's dedicated Zoo MCP device client registration.
The server can also be run with the mcp package
uv run mcp run src/zoo_mcp/server.py
The server uses stdio by default. To serve the same tools over Streamable HTTP:
uvx zoo-mcp --transport streamable-http --host 127.0.0.1 --port 8000
# From a local checkout:
uv run -m zoo_mcp --transport streamable-http
Connect an MCP client to http://127.0.0.1:8000/mcp. The SDK manages HTTP
sessions and streaming responses. --host and --port configure the HTTP
listener; their defaults are 127.0.0.1 and 8000.
Local entry points capture credentials when Zoo MCP is imported at startup.
Token precedence is KITTYCAD_API_TOKEN, ZOO_API_TOKEN, then the registry's
ZOO_TOKEN alias. Any explicit environment token bypasses saved/device login.
API origin precedence is ZOO_HOST, KITTYCAD_HOST, then https://api.zoo.dev.
Saved logins never cross API origins.
Applications can supply client configuration explicitly without changing the process environment or adding authentication arguments to MCP tools:
from zoo_mcp.client_config import ZooClientConfig, use_client_config
from zoo_mcp.server import mcp
with use_client_config(ZooClientConfig(token=api_token, base_url=api_origin)):
result = await mcp.call_tool("list_org_datasets", {})
The context supplies the same token, origin, and headers to the KittyCAD SDK and KCL session constructors and restores the previous configuration on exit. New calls can use refreshed configuration. Finish child tasks before leaving their configuration context. An explicit configuration context also prevents the server lifespan from loading a saved local login. Hosted workers and embeddings should