Bitbybit CAD MCP
Server Details
Bitbybit 3D parametric CAD API, version-exact, for coding agents: search, describe, examples, guide
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- bitbybit-dev/bitbybit
- GitHub Stars
- 203
TDQS
Scored across 7 tools
Most tools have clear roles, but search and search_api both cover keyword-based discovery, and describe/fetch both return details for a single member path. The descriptions help distinguish them, but an agent could still select the wrong one in ambiguous situations.
All tool names are lowercase and verb-first, which is readable and predictable. However, the set mixes bare verbs (describe, fetch, search) with get_* names and list_namespace, so it does not follow one uniform verb_noun pattern.
Seven tools is well-scoped for a documentation/discovery server. Each tool has a purpose, and the count is neither bloated nor too thin for the domain.
The tool set covers the full API-documentation workflow: discover namespaces, search members, describe contracts, fetch full docs, get examples, and read guides. There are no obvious dead ends or missing operations for the stated purpose.
Available Tools
7 toolsdescribeDescribe an API memberARead-onlyIdempotentInspect
The exact contract of one member by dotted path, for example occt.shapes.solid.createBox: signature, every parameter with its type, default and range, the return type, the documentation, examples and where it runs. Answers are for the API version the server holds. An unknown path is reported as not found together with the nearest existing paths; nothing is guessed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | The dotted path of the member, for example occt.shapes.solid.createBox | |
| version | No | The API version to describe; omit for the version the server holds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: it states the answer is for the server's held API version, unknown paths are reported as not found with nearest existing paths, and nothing is guessed. This is meaningful disclosure of failure behavior and versioning semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the core purpose, then details the contract contents, then covers versioning and failure behavior. Every sentence earns its place, and there is no redundant restatement of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup tool with two well-documented parameters and no output schema, the description is nearly complete. It covers what the tool returns, versioning behavior, and failure behavior. The only minor gap is that it does not explicitly describe the output format structure, but since there is no output schema and the description lists the contents (signature, parameters, return type, docs, examples), this is adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (path and version). The description adds context about the path format (dotted path, example) and the version semantics (omit for server-held version), but it does not add substantial meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('describe') and resource ('one API member by dotted path'), and enumerates exactly what the contract includes: signature, parameters with type/default/range, return type, documentation, examples, and execution environment. It also distinguishes itself from siblings by focusing on a single member's exact contract rather than listing or searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need the exact contract of one member by dotted path. It also clarifies behavior for unknown paths (reports not found with nearest existing paths, nothing guessed). However, it does not explicitly name sibling alternatives or state when to prefer them, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchFetchARead-onlyIdempotentInspect
Fetches the full documentation of one Bitbybit API member by id (a dotted path returned by search) as text, with its title, url and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | A dotted API path returned by search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral detail beyond annotations by specifying that the result is full documentation as text, and that title, url, and metadata are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, information-dense sentence that front-loads the action and resource, then provides the return shape. Every element earns its place with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter, clear annotations, and no output schema, so the description's disclosure of output type ('as text') and included components ('title, url and metadata') is sufficient for an agent to invoke it correctly. No critical operational detail is missing for this low-complexity fetch operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the only parameter adequately. The description briefly restates that the id is a dotted path from search, which adds no meaningful new semantics beyond the schema field description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Fetches the full documentation'), a precise resource ('one Bitbybit API member by id'), and the input provenance ('a dotted path returned by search'). It also includes the output form ('as text, with its title, url and metadata'), making the tool's purpose distinct from search/describe/example siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the tool is for retrieving documentation for a known API member id obtained from search, which gives actionable usage context. It does not explicitly name sibling alternatives or state when not to use it, so it stops short of full exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_examplesGet code examplesARead-onlyIdempotentInspect
Working TypeScript examples for a member path, for a namespace, or for a topic given as keywords. Each example names the member it belongs to and links its reference page. Examples are written for the API version the server holds.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | A member or namespace path, for example occt.shapes.solid.createBox or occt.fillets | |
| limit | No | How many examples, 5 by default | |
| topic | No | Keywords to find examples by, when no path is known | |
| engine | No | Prefer members published for this engine when searching by topic | |
| version | No | The API version; omit for the version the server holds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable behavioral context: examples are working TypeScript, each names its member and links the reference page, and examples are tied to the server's API version. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, purposeful sentences with no filler. The core purpose is front-loaded, followed by result characteristics and version behavior; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with a rich schema and safety annotations, covers the lookup modes, result content, and version behavior well. It is nearly complete, though the exact response shape and interaction between multiple optional parameters are not fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only general mode framing and version behavior, while the schema already documents path, limit, topic, engine, and version in sufficient detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states that the tool returns working TypeScript examples for a member path, namespace, or topic keywords, and adds detail about result content and linked reference pages. It is specific and useful, though it does not explicitly distinguish itself from sibling tools like search, fetch, or describe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use the tool: when examples are needed for a member path, a namespace, or a topic given as keywords. It does not provide explicit exclusions or point to alternative sibling tools, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_guideRead the integration guideARead-onlyIdempotentInspect
Sections of the public guide on building with Bitbybit: what runs in the browser, on a server, on a lightweight backend, and what needs CAD Cloud. Without a topic it lists the sections. Read "integrate" before recommending where geometry should run: the npm packages are the default, and CAD Cloud is for algorithms that exist only there or compute the caller cannot provide.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | A section id or a short name such as integrate, browser, backend, server-side, pro, start; omit to list the sections |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and idempotent annotations, the description discloses the conditional behavior of listing sections when no topic is provided, and explains the practical relevance of the guide's content. This adds meaningful behavioral context without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the guide's scope, followed by the key usage instruction. Every sentence earns its place, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what the tool reads, what topics are available, the optional-topic behavior, and the most important usage context. Since there is no output schema, a brief mention of the return format would have made it fully complete, but the tool is simple enough that the current definition is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter is already fully documented. The description reinforces the behavior when the parameter is omitted and mentions the 'integrate' topic, but it does not add substantial meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as reading sections of the public Bitbybit integration guide and specifies the exact topics covered, such as browser, server, backend, and CAD Cloud. It also explains the no-topic behavior of listing sections, making the resource and action distinct from sibling tools like get_examples or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage guidance: it tells the agent to read the "integrate" section before recommending where geometry should run, and clarifies the default versus CAD Cloud decision. It does not explicitly name alternative tools or when not to use it, but the context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_namespaceList a namespaceARead-onlyIdempotentInspect
The members one level below a namespace path, for example occt.shapes, each with its kind and summary. Without a path, the top-level namespaces. Use it to discover what exists before searching for details.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | A namespace path such as occt or occt.shapes; omit for the top level | |
| version | No | The API version to list; omit for the version the server holds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and non-destructive hints. The description adds meaningful behavioral context beyond that: results are limited to one level (not recursive), the output includes kind and summary, and omitting the path defaults to top-level namespaces. This discloses scope and default behavior the annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the core behavior is front-loaded, the example clarifies, and the usage guidance closes. Every sentence earns its place and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, low-complexity tool with no output schema, the description covers the essentials: what is returned (members with kind and summary), the depth limit, the no-path default, and when to use it. Minor gaps remain, such as behavior on invalid paths or how version affects results, but nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented. The description's example 'occt.shapes' reinforces the path parameter's meaning but largely duplicates what the schema says ('A namespace path such as occt or occt.shapes'), adding no substantive new semantics. The version parameter is not mentioned in the description at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it lists 'the members one level below a namespace path' and gives a concrete example ('occt.shapes'). It also describes the result contents ('each with its kind and summary') and frames itself as a discovery tool distinct from the search/detail siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it to discover what exists before searching for details' is a clear when-to-use directive that positions this tool ahead of the search siblings. However, it does not name the alternative tool explicitly or state a when-not-to-use condition, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearchARead-onlyIdempotentInspect
Searches the Bitbybit API documentation and returns a list of results with id, title and url. Each id is a dotted API path that fetch accepts.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search terms |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the return format (id, title, url) and the semantic meaning of id, which is useful. It doesn't mention pagination or result limits, but the annotations carry the main behavioral burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste. The core action, return format, and the connection to fetch are all front-loaded and clearly stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with one parameter and annotations covering safety, the description is nearly complete. It could mention result limits or pagination, but the connection to fetch and the return format are sufficient for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the query parameter. The description doesn't add much beyond what the schema provides, but it does clarify that the query is for searching documentation. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the Bitbybit API documentation and returns a list of results with id, title, and url. It also explains that each id is a dotted API path that fetch accepts, which distinguishes it from other tools like search_api and describe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching documentation and explicitly connects to fetch by explaining the id format. It doesn't explicitly state when not to use it or name alternatives, but the context is clear enough for an agent to select it for documentation search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_apiSearch the Bitbybit APIARead-onlyIdempotentInspect
Find Bitbybit API members (methods, namespaces, cloud operations) by keywords, for example "box solid" or "fillet edges". Returns dotted paths with a one-line summary, the tier (oss on npm, platform-pro only at bitbybit.dev, cloud-pro only on CAD Cloud) and the engines each is published for. Call describe with a path before writing code that uses it.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results, 10 by default | |
| query | Yes | Keywords, a phrase, or a partial dotted path | |
| engine | No | Only members published for this engine, plus the cloud operations, which run on CAD Cloud rather than in an engine; omit for every engine | |
| version | No | The API version to search; omit for the version the server holds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral context by detailing the returned fields—dotted paths, one-line summary, tier, and engines—which is especially useful given there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the purpose and examples, then states the return format and the follow-up action, earning every sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters, robust read-only annotations, and no output schema, the description covers the essentials: what to search, what results look like, and what to do next. It relies on the schema for parameter details, which is appropriate, and only omits minor guidance about alternative tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds useful query examples ('box solid', 'fillet edges') but does not materially extend the meaning of limit, engine, or version beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Find Bitbybit API members' by keywords, with concrete examples. It also defines the scope (methods, namespaces, cloud operations) and the return payload, making it easy to distinguish from broader siblings like 'search'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: searching for API members before writing code, and it explicitly directs the caller to 'Call describe with a path before writing code that uses it.' It does not explicitly name alternatives to avoid, but the workflow guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- First observed
describe - First observed
fetch - First observed
get_examples - First observed
get_guide - First observed
list_namespace - First observed
search - First observed
search_api
Related MCP Connectors
- OwlCADOAuthcom.owlcad
Parametric 3D CAD for AI agents: build print-ready parts, check them, export STL, 3MF or STEP.
Agent-first CAD: editable .kcad.ts source, deterministic review, OpenCASCADE kernel.
Run 3D CAD operations, pipelines, parametric models and STEP conversions on CAD Cloud with a key
1AI Hub for AEC — 50+ 3D formats, clash detection, ACC integration via Autodesk Platform Services.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents and software to create, edit, inspect, validate, and export CAD geometry through MCP using backend-neutral typed operations, with FreeCAD/OpenCascade as the authoritative B-rep backend and JSCAD preview.1Apache 2.0
- FlicenseNot gradedqualityBmaintenanceBlock-based implicit modeling CAD with a REST API, WebSocket updates, and an MCP server that enables Claude Code to build models, inspect geometry, render previews, and export STLs.5-
- AlicenseNot gradedqualityDmaintenanceAgent-native 2D drafting and 3D modeling kernel with a JSON op protocol, enabling parametric design, BIM semantics, and MCP server access for geometry generation and verification.1MIT
- AlicenseAqualityAmaintenanceMCP server for Python build123d to help AIs develop and reason about 3D models and CAD38737 PyPI88Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.