Skip to main content
Glama
rweisssieker-xp

PTC-MCP Integration Server

PTC-MCP Integration Server

Model Context Protocol (MCP) server for integrating PTC Windchill and Creo Parametric with LLM-based clients.

Overview

The PTC-MCP Integration Server provides a standardized gateway between MCP clients (ChatGPT Desktop, Claude Desktop, Agents SDK) and PTC's enterprise PLM and CAD systems. It enables natural language interaction with Windchill and Creo through structured, auditable workflows.

Related MCP server: Fusion MCP

Features

  • MCP Protocol Support: Full implementation of Model Context Protocol

  • Windchill Integration: Read operations for parts, BOMs, and documents

  • Creo Automation: Model operations, exports, and parameter extraction

  • Security: Enterprise-grade authentication, authorization, and audit logging

  • Configuration: Centralized configuration management

Requirements

  • Node.js >= 18.0.0

  • TypeScript >= 5.3.0

  • Access to PTC Windchill (REST/OData API)

  • Creo Parametric with J-Link/OTK (for Creo automation)

Installation

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

# Run production build
npm start

Configuration

Copy .env.example to .env and configure:

# Windchill Configuration
WINDCHILL_BASE_URL=https://your-windchill-server.com
WINDCHILL_USERNAME=service-account
WINDCHILL_PASSWORD=password

# Creo Configuration
CREO_JLINK_PATH=C:/Program Files/PTC/Creo X.X/Common Files/x86e_win64/obj/jlink
CREO_EXPORT_PATH=./exports

# MCP Server Configuration
MCP_SERVER_NAME=ptc-mcp-server
MCP_SERVER_VERSION=1.0.0
LOG_LEVEL=info

Usage

As MCP Server (stdio)

The server runs as an MCP server accessible via stdio:

node dist/index.js

MCP Client Configuration

Configure in your MCP client (e.g., Claude Desktop):

{
  "mcpServers": {
    "ptc-mcp": {
      "command": "node",
      "args": ["/path/to/ptc-mcp-integration-server/dist/index.js"]
    }
  }
}

Available Tools

Windchill Tools

  • windchill_search_part - Search for parts

  • windchill_get_part - Get part details

  • windchill_get_bom - Get bill of materials

  • windchill_get_docs - Get associated documents

Creo Tools

  • creo_open_model - Open Creo model

  • creo_export_step - Export as STEP

  • creo_export_pdf - Export drawing as PDF

  • creo_get_parameters - Extract parameters

Development

# Type checking
npm run type-check

# Linting
npm run lint

# Testing
npm test

# Watch mode
npm run dev

Project Structure

ptc-mcp-server/
├── src/
│   ├── mcp/           # MCP protocol implementation
│   ├── windchill/      # Windchill connector
│   ├── creo/          # Creo automation service
│   ├── security/      # Security layer
│   └── config/        # Configuration management
├── tests/             # Test files
├── config/            # Configuration files
└── docs/              # Documentation

Documentation

License

MIT

Support

For issues and questions, please refer to the project documentation or create an issue.

Available Tools

11 tools
analyze_dependenciesA

Analyze dependencies (parameters, family tables, references) for a part

ParametersJSON Schema
NameRequiredDescriptionDefault
partNumberYesPart number to analyze

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must fully disclose behavior. It only states the action without mentioning side effects, permissions, or error handling (e.g., what happens if partNumber is invalid).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no excess words. It directly conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 1 parameter and no output schema, the description is minimally adequate but does not explain the return format, pagination, or how results are presented. More details on output would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds value beyond the schema by clarifying that the analysis covers parameters, family tables, and references. The single parameter 'partNumber' is adequately described in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'Analyze' and the resource 'dependencies', listing specific types (parameters, family tables, references). It clearly distinguishes from sibling tools like creo_get_parameters or creo_export_* as it focuses on dependency analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like windchill_get_part or creo_get_parameters. The description lacks context for preferred scenarios or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

creo_export_pdfB

Export Creo drawing as PDF

ParametersJSON Schema
NameRequiredDescriptionDefault
drawingNameYesDrawing name

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden for behavioral clues but only states the action. It omits details like file output location, overwrite behavior, permissions, or naming conventions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core action, though it could be slightly expanded with useful context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is minimally complete but lacks context about output management, error conditions, or side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (single parameter 'drawingName' described in schema), so baseline is 3. The description adds no extra semantic value beyond the schema's 'Drawing name'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (export), the resource (Creo drawing), and the output format (PDF), effectively distinguishing it from sibling tools like creo_export_step which exports to STEP.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or conditions for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

creo_export_stepB

Export Creo model as STEP file

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesModel name
versionNoSTEP version (AP203, AP214, AP242)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description does not disclose behavioral traits such as output location, file handling, or side effects. Minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence with no wasted words. Front-loads the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple export tool but lacks context on output destination or scope. With no annotations or output schema, more detail would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters with descriptions; description adds no extra meaning. Baseline score of 3 due to full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Export' and resource 'Creo model as STEP file', distinguishing it from siblings like creo_export_pdf.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings like export_part_as_step. Lacks context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

creo_get_parametersC

Extract parameters from a Creo model

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesModel name

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It only says 'extract parameters' without disclosing read-only nature, required model state, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with no wasted words. It could be slightly expanded for clarity but is concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one required parameter, no output schema, and no annotations, the description lacks details on return format, potential errors, or dependencies, making it incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes the single parameter 'name' as 'Model name', and the description reinforces 'from a Creo model'. Schema coverage is 100%, so baseline 3 is appropriate as no additional detail is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (extract parameters) and the target (Creo model). It distinguishes itself from sibling tools as none of them mention parameter extraction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context (e.g., model must be opened or accessible).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

creo_open_modelB

Open a Creo model (PRT, ASM, or DRW)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesModel name or file path

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose behavioral traits such as side effects (e.g., loading model into application state), error conditions, or whether it can open already-opened models. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence front-loaded with verb and resource, zero wasted words. Efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple single-parameter tool, but lacks details on return value (success/error), model state after opening, and missing annotations. Could be more complete for an unannotated tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter 'name' has schema description 'Model name or file path' (100% coverage). The tool description adds file type context (PRT, ASM, DRW) but no further semantics like format restrictions or path resolution behavior. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb (Open), resource (Creo model), and specifies supported file types (PRT, ASM, DRW). Distinguishes from sibling 'find_part_and_open_in_creo' which adds a search step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool versus alternatives like 'find_part_and_open_in_creo' or 'creo_export_step'. No prerequisites, context, or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_part_as_stepC

Find a part in Windchill and export it as STEP file

ParametersJSON Schema
NameRequiredDescriptionDefault
partNumberYesPart number to export
stepVersionNoSTEP version (AP203, AP214, AP242)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose all behavioral traits. It only says 'export it as STEP file' without specifying what happens (e.g., download, save to server, return link). No mention of prerequisites or effects on the part. Lacks transparency for a mutation-like action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (one sentence) but lacks structure. It is front-loaded with the purpose but omits critical details. It is not verbose, but could be expanded with key behavioral info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple export tool, the description fails to explain return values or output (no output schema). Given the sibling set includes multiple export and search tools, more context is needed for an agent to decide confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both parameters described). The description adds no extra meaning beyond the schema, but baseline 3 is appropriate since schema already provides names and enum for stepVersion. No additional constraints or format details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'export' and resource 'part as STEP file', naming the system 'Windchill'. However, it doesn't explicitly differentiate from sibling 'creo_export_step', which likely does a similar export from Creo. The distinction is implied by 'Windchill' but could be clearer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'creo_export_step' or 'find_part_and_open_in_creo'. The agent is left to infer from the description alone, which lacks any usage context or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_part_and_open_in_creoB

Find a part in Windchill and automatically open it in Creo

ParametersJSON Schema
NameRequiredDescriptionDefault
partNumberYesPart number to find and open

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description bears full responsibility. It only states 'automatically open it in Creo' without disclosing prerequisites (e.g., Creo must be installed and running), side effects, or error behaviors. This is insufficient for an action that launches an external application.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that directly states the tool's purpose. While brief, it contains no unnecessary words and is easy to parse. Could benefit from more detail, but not at the expense of conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and a tool that triggers an external application (Creo), the description lacks important context: what happens upon success (e.g., returns confirmation?), failure modes, and whether it blocks until Creo is opened. The simplicity of inputs does not fully compensate for missing behavioral details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter 'partNumber' described as 'Part number to find and open'. The description does not add additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'find' and 'open' with explicit resources: 'a part in Windchill' and 'automatically open it in Creo'. It distinguishes from siblings like 'windchill_search_part' (search only) and 'creo_open_model' (open already found model) by combining both actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't clarify when to use 'windchill_search_part' + 'creo_open_model' separately instead. No exclusions or context for appropriate usage are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

windchill_get_bomC

Get bill of materials for a part

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesPart number
depthNoBOM depth (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description must convey behavioral traits. It implies read-only but does not explicitly state non-destructiveness, auth requirements, or error handling (e.g., if part not found).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single sentence with no waste. It is appropriately concise for its purpose, though it could benefit from additional context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and moderate complexity, the description lacks details on return format, BOM structure (flat/nested), or pagination. It is minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters. The description adds no extra meaning beyond the schema (e.g., 'optional' for depth is redundant with schema). Baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Get' and resource 'bill of materials for a part', distinguishing it from siblings like windchill_get_part. However, it does not elaborate on scope or uniqueness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like analyze_dependencies or windchill_get_part. No prerequisites or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

windchill_get_docsB

Get documents associated with a part

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesPart number

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states 'get documents associated with a part' but does not mention if it is read-only, whether authentication is required, what types of documents are returned, or any error conditions. The agent cannot assess side effects or safety from this description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one sentence, four words). It is front-loaded with the action and resource. While it is efficient, it lacks depth that could be included without much added length, such as specifying the output or typical usage context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, no annotations), the description is minimally adequate but incomplete. It does not explain the return format, expected input formats, or what 'documents' encompass. Compared to sibling tools with more verbose descriptions, this lacks completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the single parameter 'number' (defined as 'Part number'). The description adds no additional meaning beyond what the schema already provides. Baseline is 3 for high coverage; the description does not enhance understanding of the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly indicates the action ('get'), the resource ('documents'), and the context ('associated with a part'). It effectively distinguishes from sibling tools like 'windchill_get_part' (which gets the part itself) and 'windchill_get_bom' (which gets bill of materials). The verb 'get' implies retrieval, and the resource is specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or conditions. The description lacks explicit usage context, exclusions, or comparisons to sibling tools, leaving the agent to infer appropriateness from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

windchill_get_partC

Get detailed part information from Windchill

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesPart number

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It states 'Get detailed part information' but does not disclose any behavioral traits (e.g., read-only, authentication needs, response format, or side effects). The description is too sparse to be transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and to the point. Every word is necessary, and it is efficiently front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input (one parameter) and lack of output schema, the description is minimal. It does not explain what 'detailed part information' includes, nor does it address how it differs from similar sibling tools. More context would be helpful for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (the 'number' parameter is described as 'Part number'). The description adds no additional meaning beyond what the schema already provides. Baseline 3 applies because the schema suffices.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' and resource 'detailed part information from Windchill', clearly indicating it retrieves part details. It distinguishes from siblings like 'windchill_search_part' (search) or 'windchill_get_bom' (BOM), but could be more explicit about what 'detailed' means.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. Sibling tools like 'windchill_get_bom', 'windchill_get_docs', and 'windchill_search_part' serve related purposes, but the description does not clarify when to choose this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

windchill_search_partB

Search for parts in Windchill by number, name, or free text

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (part number, name, or free text)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits. It lacks details on permissions, rate limits, query behavior (exact vs partial match), and result format, which are essential for an agent to use the tool safely.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It could include more detail without harming conciseness, but its structure is efficient for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is adequate but lacks information about return type, pagination, and result structure. It covers the basic purpose but leaves gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description covers the single parameter well, providing context for the search query. The tool description adds no extra meaning beyond what the schema already provides, making the baseline score of 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (search), the resource (parts in Windchill), and the search criteria (number, name, or free text), differentiating it from tools like windchill_get_part and find_part_and_open_in_creo.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of scenarios where it is preferred or when to use sibling tools like windchill_get_part for specific part retrieval.

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.

  1. 11 tool updatesv1.0.0
    • First observedanalyze_dependencies
    • First observedcreo_export_pdf
    • First observedcreo_export_step
    • First observedcreo_get_parameters
    • First observedcreo_open_model
    • First observedexport_part_as_step
    • First observedfind_part_and_open_in_creo
    • First observedwindchill_get_bom
    • First observedwindchill_get_docs
    • First observedwindchill_get_part
    • First observedwindchill_search_part

TDQS

B3.2/5.0

Scored across 11 tools

Disambiguation4/5

Most tools are clearly differentiated by prefix (creo_ vs windchill_), but 'export_part_as_step' and 'creo_export_step' could cause confusion for STEP export, and 'analyze_dependencies' lacks a clear domain indicator.

Naming Consistency3/5

Windchill and Creo tools follow consistent prefix_verb_noun patterns, but two tools ('analyze_dependencies', 'export_part_as_step') lack prefixes, and 'find_part_and_open_in_creo' is verbose and breaks the pattern.

Tool Count5/5

With 11 tools covering search, retrieval, export, and CAD interactions, the count is well-scoped for a Windchill-Creo integration server without being excessive or sparse.

Completeness3/5

The toolset covers basic retrieval and export workflows but lacks creation, update, or lifecycle operations (e.g., checkout/checkin), leaving notable gaps for full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables Cline to translate natural language prompts into Fusion 360 CAD operations by mapping commands to Fusion's API and generating executable Python scripts.
    82
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that exposes CAD geometry reasoning over STEP files to LLMs, allowing natural language queries about parts, assemblies, dimensions, holes, and mass properties.
    -