# Alibre PDM MCP Server (nuget · AlibrePDMObjectModel.Mcp)

MCP server exposing the Alibre PDM vault API: safes, projects, files, properties, versions.

- Trust score: 66/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-20

## Components

- nuget · `AlibrePDMObjectModel.Mcp`: 66/100 (this document), [markdown](https://verifymcp.io/servers/stephensmitchell-alibrepdmobjectmodel-mcp/alibrepdmobjectmodel-mcp.md), [page](https://verifymcp.io/servers/stephensmitchell-alibrepdmobjectmodel-mcp/alibrepdmobjectmodel-mcp)

## Channel facts

- Registry: `nuget`
- Package: `AlibrePDMObjectModel.Mcp`
- Version: `1.0.6`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-20.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 19/100
  - Repository check failed: no source repository is declared.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 9 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 76/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1404 tokens (~56/item across 25 items; 25 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 79/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 36% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add stephensmitchell-alibrepdmobjectmodel-mcp -- dnx AlibrePDMObjectModel.Mcp@1.0.6 --yes
```

### Codex

```bash
codex mcp add stephensmitchell-alibrepdmobjectmodel-mcp -- dnx AlibrePDMObjectModel.Mcp@1.0.6 --yes
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "stephensmitchell-alibrepdmobjectmodel-mcp": {
      "type": "local",
      "command": [
        "dnx",
        "AlibrePDMObjectModel.Mcp@1.0.6",
        "--yes"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  stephensmitchell-alibrepdmobjectmodel-mcp:
    command: "dnx"
    args: ["AlibrePDMObjectModel.Mcp@1.0.6", "--yes"]
```

### Other

```json
{
  "mcpServers": {
    "stephensmitchell-alibrepdmobjectmodel-mcp": {
      "command": "dnx",
      "args": [
        "AlibrePDMObjectModel.Mcp@1.0.6",
        "--yes"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-19 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-18 (score 65, +3)

- [functional improvement] Stability: unverified → 0.23

### 2026-08-11 (score 62)

First indexed and scored.

## MCP tools (25)

### `pdm_list_safes` (~24 tokens)

List all Safes available on the connected PDM server.

### `pdm_list_versions` (~50 tokens)

List the version history of a file.

Input parameters:

- `file_name` (string, required)
- `folder_path` (string, required)
- `max_results` (integer)
- `safe_name` (string, required)

### `pdm_attach` (~40 tokens)

Reuse the Alibre Design UI's existing PDM connection (if a user is logged in via the PDM Browser). Returns the resulting connection status.

### `pdm_list_projects` (~29 tokens)

List the top-level Projects in a Safe.

Input parameters:

- `safe_name` (string, required): Safe name

### `pdm_disconnect` (~21 tokens)

Log out of the PDM server and release the connection.

### `pdm_list_libraries` (~30 tokens)

List the top-level Libraries in a Safe.

Input parameters:

- `safe_name` (string, required): Safe name

### `pdm_get_file_info` (~91 tokens)

Return detailed info for a single file: properties, recent versions, lock state, etc.

Input parameters:

- `file_name` (string, required): File name (without extension, as shown in the PDM Browser)
- `folder_path` (string, required): Folder path containing the file
- `max_versions` (integer): Maximum versions of history to return (default 10)
- `safe_name` (string, required): Safe name

### `pdm_status` (~20 tokens)

Report the current PDM connection status without changing it.

### `pdm_checkin_file` (~78 tokens)

Push a locally-modified file to the PDM server as a new version. Blocks until check-in completes (or times out after 10 minutes).

Input parameters:

- `file_name` (string, required)
- `folder_path` (string, required)
- `safe_name` (string, required)
- `version_comment` (string): Version comment shown in history

### `pdm_add_revision` (~104 tokens)

Mark a specific historical version of a file as a Revision (e.g. 'A', 'B', 'Rev-2').

Input parameters:

- `file_name` (string, required)
- `folder_path` (string, required)
- `include_constituents` (boolean)
- `revision` (string, required): Revision text to apply (e.g. 'A')
- `safe_name` (string, required)
- `version_index` (integer, required): 1-based version index in the History collection

### `pdm_remove_file_property` (~55 tokens)

Remove a property (by definition name) from a file.

Input parameters:

- `definition_name` (string, required)
- `file_name` (string, required)
- `folder_path` (string, required)
- `safe_name` (string, required)

### `pdm_upload_files` (~78 tokens)

Upload non-native files (e.g. STEP/IGES) from disk into a folder, optionally checking them in. Blocks until check-in completes.

Input parameters:

- `check_in` (boolean)
- `file_paths` (array, required): Absolute Windows file paths to upload
- `folder_path` (string, required)
- `safe_name` (string, required)

### `pdm_revert_file` (~62 tokens)

Discard local changes to a file and restore it to its last checked-in version.

Input parameters:

- `file_name` (string, required)
- `folder_path` (string, required)
- `include_constituents` (boolean)
- `safe_name` (string, required)

### `pdm_list_folders` (~65 tokens)

List sub-folders directly under the given folder path (e.g. 'Projects/MyProj').

Input parameters:

- `folder_path` (string, required): Folder path, e.g. 'Projects/MyProj' or 'Libraries/MyLib/Sub'
- `safe_name` (string, required): Safe name

### `pdm_unlock_file` (~50 tokens)

Unlock a previously locked file.

Input parameters:

- `file_name` (string, required)
- `folder_path` (string, required)
- `include_constituents` (boolean)
- `safe_name` (string, required)

### `pdm_lock_file` (~65 tokens)

Lock a file so others cannot modify it.

Input parameters:

- `file_name` (string, required)
- `folder_path` (string, required)
- `include_constituents` (boolean): Also lock constituents (referenced sub-parts) when applicable
- `safe_name` (string, required)

### `pdm_list_property_definitions` (~33 tokens)

List all property definitions in a Safe (built-in and custom).

Input parameters:

- `safe_name` (string, required)

### `pdm_set_file_property` (~118 tokens)

Set or overwrite a property on a file. The value is parsed against the property's data type (Integer, Real, Text, MultilineText, DateTime, SingleSelect; MultiSelect not supported by this tool).

Input parameters:

- `definition_name` (string, required): Property definition name (use pdm_list_property_definitions to discover)
- `file_name` (string, required)
- `folder_path` (string, required)
- `safe_name` (string, required)
- `value` (string, required): Value as a string — coerced to the definition's type

### `pdm_connect` (~87 tokens)

Open a fresh PDM connection with explicit credentials (use when no UI session exists or pdm_attach fails).

Input parameters:

- `domain` (string, required): Domain, e.g. the machine name or AD domain
- `password` (string, required): Password
- `url` (string, required): PDM server URL, e.g. http://localhost:8099/
- `user` (string, required): User name

### `pdm_list_classes` (~32 tokens)

List all PDM Classes (core + custom) in a Safe.

Input parameters:

- `safe_name` (string, required)

### `pdm_list_class_data_items` (~44 tokens)

List data items inside a Class (e.g. all Vendors, all Persons).

Input parameters:

- `class_name` (string, required)
- `safe_name` (string, required)

### `pdm_list_files` (~54 tokens)

List the file items directly inside a folder.

Input parameters:

- `folder_path` (string, required): Folder path, e.g. 'Projects/MyProj' or 'Libraries/MyLib/Sub'
- `safe_name` (string, required): Safe name

### `pdm_get_file_properties` (~44 tokens)

Return the properties currently set on a file.

Input parameters:

- `file_name` (string, required)
- `folder_path` (string, required)
- `safe_name` (string, required)

### `pdm_rename_file` (~50 tokens)

Rename a file in PDM.

Input parameters:

- `file_name` (string, required)
- `folder_path` (string, required)
- `new_name` (string, required)
- `safe_name` (string, required)

### `pdm_search_files` (~80 tokens)

Recursively walk Projects and Libraries in a Safe, returning files whose name contains the given substring (case-insensitive).

Input parameters:

- `max_results` (integer): Maximum number of matches to return (default 50)
- `name_substring` (string, required): Substring to match against file Name (without extension)
- `safe_name` (string, required): Safe name

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/stephensmitchell-alibrepdmobjectmodel-mcp/alibrepdmobjectmodel-mcp#diagnostics

## Score history

- 2026-08-20: 66
- 2026-08-19: 66
- 2026-08-18: 65
- 2026-08-17: 62
- 2026-08-16: 62
- 2026-08-15: 62
- 2026-08-14: 62
- 2026-08-13: 62
- 2026-08-12: 62
- 2026-08-11: 62

## Links

- NuGet package: https://www.nuget.org/packages/AlibrePDMObjectModel.Mcp
- Socket report: https://socket.dev/nuget/package/AlibrePDMObjectModel.Mcp
- Changelog RSS feed: https://verifymcp.io/servers/stephensmitchell-alibrepdmobjectmodel-mcp/alibrepdmobjectmodel-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/stephensmitchell-alibrepdmobjectmodel-mcp/alibrepdmobjectmodel-mcp.json
- HTML version of this page: https://verifymcp.io/servers/stephensmitchell-alibrepdmobjectmodel-mcp/alibrepdmobjectmodel-mcp
