Skip to main content
Glama
Erryb95

aras-plm-mcp

by Erryb95

aras-plm-mcp

Aras Innovator PLM용 MCP 서버로, 스키마를 추측하는 대신 실제로 알고 있습니다.

OData AML을 통한 69개의 도구. 실제 Aras Innovator 2025(14.35.0) 인스턴스에서 테스트 완료: 10개 스위트에 걸친 244개의 어서션, 그리고 39단계 데모 스크립트를 처음부터 끝까지 실행.


문제

Aras Innovator의 OData API는 동적입니다. 서비스 문서는 501 Not Implemented로 응답하며, 기본 인스턴스는 관리자가 데이터 모델을 어떻게 구성했는지에 따라 이름과 속성이 달라지는 484개의 ItemType을 노출합니다. 읽을 수 있는 정적 카탈로그가 없습니다.

얇은 HTTP 래퍼 — get_items(itemtype, filter) — 는 그 문제를 모델에 떠넘깁니다. 타입이 Parts가 아니라 Part인지, BOM(자재 명세서)이 BOM이 아니라 Part BOM인지, 수량 필드가 qty가 아니라 quantity인지 추측해야 합니다. 잘못된 추측 하나하나가 왕복 요청과 불투명한 오류가 됩니다.

이 서버는 스키마를 내부적으로 조사하여 그대로 돌려줍니다.

aras_describe_item_type  itemType: "Part"
  → 41 typed properties, real mandatory flags, outgoing relationships

Related MCP server: kicad-mcp

OData만으로는 볼 수 없는 것

Aras에는 OData로는 보이지 않는 세 가지가 있으며, 각각은 사람들이 실제로 묻는 질문입니다. 이 서버는 AML을 통해 이에 답합니다:

질문

OData가 실패하는 이유

답변 방식

"이전 리비전을 보여주세요."

OData는 현재 세대만 반환합니다 — is_current eq '0'은 0행을 반환합니다

getItemAllVersions

"이 파트를 릴리스하세요."

라이프사이클 전환은 데이터로 노출되지 않습니다

promoteItem, 필요한 역할이 먼저 확인된 후 실행됩니다

"이 변경 오더를 진행하세요."

EvaluateActivity, 문서화되지 않은 <Complete>1</Complete> 포함

마지막 항목은 서버 로그를 봐야 찾을 수 있었습니다. Aras는 An internal error has occured라고 응답합니다. 로그에는 Workflow: EvaluateActivity: Complete value not found라고 표시됩니다.


도구

도구

기능

aras_ping

연결, 데이터베이스, 사용자, ItemType 수

aras_list_item_types

ItemType 목록/검색, 오타에 관대함

aras_describe_item_type

타입이 지정된 속성, 필수 플래그, 나가는 관계

aras_search

여러 ItemType에 걸친 교차 타입 검색

aras_get_list_values

목록 기반 속성에 허용된 값

aras_query_items, aras_get_item, aras_get_relationships, aras_get_bom, aras_where_used, aras_get_documents, aras_get_aml, aras_get_files, aras_get_history, aras_get_revisions, aras_get_my_identities, aras_get_identity_members, aras_export_aml

aras_get_bom (누적 수량과 분기별 사이클 감지를 포함한 재귀적 전개), aras_manage_bom_line, aras_replace_component, aras_copy_part, aras_add_manufacturer_part, aras_check_release_readiness, aras_check_effectivity

aras_create_change, aras_add_affected_item, aras_get_change_impact, aras_get_workflow, aras_advance_change, aras_vote_activity, aras_delegate_activity

각 전환에 필요한 역할과 함께 라이프사이클 맵 및 상태; 사용자, 그룹, 멤버십 및 권한; 작동하는 인스턴스를 가진 ItemType 생성; 대시보드, 메트릭, 보고서, 저장된 쿼리, 시퀀스, 메서드; Serilog 파일과 SystemEventLog ItemType 양쪽의 서버 로그.

먼저 aras_ping을 실행하세요 — 연결된 대상이 무엇인지 알려줍니다.


알아 둘 만한 설계 결정

기본적으로 읽기 전용. PLM에 대한 쓰기는 버전 관리되고 감사되므로, 의도적으로 활성화됩니다: ARAS_READONLY=false. 21개의 쓰기 도구 모두 true인 동안에는 정중하게 거부합니다.

dryRun은 일괄 작업에서 기본적으로 켜져 있습니다. aras_replace_componentaras_bulk_update는 영향을 받는 행을 보여주고 요청하기 전까지는 아무것도 변경하지 않습니다.

삭제는 실행 전에 계획됩니다. aras_plan_delete는 항목을 참조하는 대상을 보고하고, 참조하는 것이 있으면 거부합니다. 관계를 확인할 수 없는 경우 관계가 비어 있다고 가장하는 대신 -1을 반환합니다 — 공짜로 안심시키는 검사보다 정직한 검사가 낫습니다.

권한 거부는 해독됩니다. Aras는 권한 거부에 대해 403이 아닌 일반적인 HTTP 500을 반환합니다. aras_get_type_permissions는 어떤 ID에 권한이 없는지 알려주고, aras_lookup_errorUserMessage 카탈로그에서 메시지를 조회합니다.

항목 참조는 주석으로만, 그리고 $select와 함께만 도착합니다. Part BOM$select 포함으로 쿼리하면 related_id@aras.idrelated_id@aras.keyed_name이 반환됩니다. 없이 쿼리하면 아무것도 반환되지 않고 행이 불투명한 메타데이터처럼 보입니다. 이것은 readItemRef()(src/aras/odata.ts)에 한 번만 인코딩되어 있어 호출자가 기억할 필요가 없습니다. 또한 조용히 빈 트리를 반환하는 BOM 탐색기를 만드는 가장 쉬운 방법이기도 합니다.


설치

npm install
npm run build

.env.example.env로 복사하고 작성하세요. Claude Code의 경우 .mcp.json에 추가하세요:

{
  "mcpServers": {
    "aras-plm": {
      "command": "node",
      "args": ["/path/to/aras-plm-mcp/dist/index.js"],
      "env": {
        "ARAS_URL": "http://localhost/InnovatorServer",
        "ARAS_DATABASE": "InnovatorSolutions",
        "ARAS_USER": "admin",
        "ARAS_PASSWORD": "…",
        "ARAS_CLIENT_ID": "IOMApp",
        "ARAS_READONLY": "true"
      }
    }
  }
}

인증은 IOMApp 클라이언트, 범위 Innovator에 대한 OAuth 2.0 리소스 소유자 비밀번호 자격 증명입니다.

Node 20+와 통신이 허용된 Aras Innovator 인스턴스가 필요합니다.


테스트

모든 스위트는 실제 인스턴스에 대해 실행되며, ZZ- 접두사가 붙은 항목에만 쓰고 이후에 제거합니다. 마지막 흐름은 프로덕션 데이터가 손상되지 않았음을 어서션합니다.

node test-flussi.mjs      # ten whole business flows, request to conclusion
node test-demo.mjs        # the 39 blocks of the demo script, one by one
node test-full.mjs        # connection, discovery, reading, navigation
node test-product.mjs     # BOM, where-used, AML, documents, revisions
node test-lifecycle.mjs   # lifecycle, transitions, roles
node test-schema.mjs      # custom ItemTypes and properties
node test-admin.mjs       # identities and permissions
node test-analytics.mjs   # dashboards, metrics, effectivity
node test-reports.mjs     # reports, saved queries, sequences, methods
node test-write.mjs       # read-only refusals
node test-writepath.mjs   # real writes, created and removed

test-flussi.mjs가 흥미로운 파일입니다. 도구를 테스트하지 않고 — 질문을 테스트합니다. 회사에서 누군가가 묻는 방식 그대로입니다:

"디자이너가 새로 합류했습니다: 계정을 만들고 올바른 부서에 배치하세요." "새 구성 요소를 코딩하고, 승인을 거쳐 릴리스하세요." "구성 요소를 모든 곳에서 교체하되, 먼저 어디에 적용될지 알려주세요." "BOM에서 사용되는 구성 요소를 삭제하려고 하면: 거부해야 합니다."


작동하지 않는 것과 그 이유

외부 클라이언트에서 접근할 수 없는 네 가지가 있습니다. 이것은 실수가 아닙니다, 영향을 받는 각 도구는 그렇게 말하고 불투명하게 실패하는 대신 대안을 안내합니다.

증거

볼트에 파일 업로드

여섯 번의 별도 시도, 모두 거부됨: File Item cannot be added, Can't bind model. 프로그래머 가이드에는 클라이언트 측 JavaScript(aras.vault.selectFile)와 서버 측 C#(setFileProperty, 서버 로컬 경로 사용)만 문서화되어 있습니다

BOM의 유효성(Effectivity) 표현식

definition은 문서화되지 않은 XML 방언입니다. Aras는 'named-constant' or 'constant' node must be presented라고 응답합니다

Query Builder 쿼리 실행

외부에서 저장된 qry_QueryDefinition을 실행하는 AML 액션이 없습니다

JavaScript 기반 보고서

Method type not supported: JavaScript — 클라이언트 코드입니다

볼트 파일 읽기 및 다운로드는 작동합니다. 업로드만 되지 않습니다.

docs/field-notes.md는 현장 기록입니다: 실제 테스트에서 발견된 모든 결함과 각 제한을 증명하는 정확한 오류입니다.


문서

시작하기

아무것도 없는 상태에서 Aras의 첫 답변까지

아키텍처

구성 방식과 그 모든 것을 결정짓는 함정

워크스루

질문 형태의 열 가지 완전한 비즈니스 흐름

테스트

스위트와 아무것도 손상시키지 않고 실행하는 방법

현장 기록

실제 테스트에서 발견된 것: 발견된 결함과 작동하지 않는 네 가지

docs/it/에는 원본 이탈리아어 자료가 있습니다: 39블록 데모 스크립트 및 원시 테스트 로그.

기여

우리의 것이 아닌 인스턴스가 가장 필요합니다 — 다른 버전, 다른 템플릿, 다른 데이터 모델. CONTRIBUTING.md를 참조하세요.

보안 문제: SECURITY.md, 비공개로.

라이선스

MIT — LICENSE 참조.

Install Server
A
license - permissive license
B
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Convert Revit files to XKT, IFC, or DWG and query BIM data via natural language.

  • Manage projects, tasks, time tracking, and team collaboration through natural language.

  • Create and manage AI agents that collaborate and solve problems through natural language interacti…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Erryb95/aras-plm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server