Skip to main content
Glama
masoniqbal777

MCP X++ Server

MCP X++ Server

Microsoft Dynamics 365 Finance & Operations 개발을 위한 Model Context Protocol(MCP) 서버입니다. 이 도구는 MCP 표준을 통해 D365 객체 생성, 수정, 분석을 가능하게 하여 다양한 개발 환경과의 통합을 지원합니다.

날짜: September 18, 2025
상태: VS2022 서비스 통합 및 향상된 폼 생성 기능을 지원하는 정상 동작 상태

최근 업데이트 ✨

2025년 9월 19일 - 안전한 객체 삭제 기능:

  • 🗑️ 새로운 delete_xpp_object 도구: 종속성 검증 및 캐스케이드 지원이 포함된 안전한 D365 객체 삭제

  • 🛡️ 종속성 보호: 다른 객체가 해당 객체에 의존하는 경우 삭제를 차단하여 치명적인 변경 방지

  • 🔄 캐시 일관성: 삭제 성공 후 검색 인덱스를 자동으로 업데이트

  • ⚡ 높은 성능: ISingleKeyedMetadataProvider.Delete를 활용한 직접 메타데이터 공급자 통합

  • 🌲 캐스케이드 삭제: 하위 객체 선택적 삭제 (폼 파트, 테이블 관계 등)

  • ✅ 포괄적인 테스트: 객체 유형 전반에 걸친 전체 생성/삭제 주기 검증

2025년 9월 18일 - 배열 기반 수정 및 폼 생성 개선:

  • 🚀 새로운 배열 전용 수정: execute_object_modification은 이제 일관된 작업을 위해 배치 형식만 사용 가능

  • 🔄 강제 일괄 처리: 단일 작업은 하나의 요소를 가진 배열로 처리되며, 더 이상 별도 연속 호출할 필요가 없음

  • 📊 향상된 응답 추적: 각 작업에 대한 세부 타이밍 및 오류 메시지가 포함된 성공/실패 보고

  • 📋 모범 사례 문서화: 동일 객체에 대한 모든 수정 사항을 단일 호출로 묶는 명확한 지침

  • 🎯 새로운 create_form 도구: 패턴 지원 및 데이터소스 연동이 포함된 특화된 폼 생성

  • 🔧 DetailsMaster 패턴 수정: 지능형 필드 제어 생성을 통한 검증 문제 해결

  • 🗄️ 데이터Source 강화: 배열, 문자열, 쉼표로 구분된 값 등 유연한 데이터스 지원

  • 📋 패턴 탐색: 설명 및 요구 사항이 포함된 36개의 필터링된 폼 패턴 제공

  • ✅ 패턴 검증: 패턴이 요구하는 필드의 자동 생성

Related MCP server: MCP X++ Server

개요

이 MCP 서버는 다음과 같은 D365 F&O 개발 기능을 제공합니다:

  • 객체 생성: D365 클래스, 테이블, 폼, 열거형 및 544개 이상의 기타 객체 유형 지원

  • 폼 생성: ✨ 개선됨 - 패턴 검증 및 데이터소스 통합을 갖춘 특수 목적의 폼 생성

  • 객체 삭제: ✨ 신규 - 종속성 검증 및 캐스케이드 삭제를 지원하는 안전한 객체 삭제

  • 객체 수정: 기존 객체에 메서드, 필드 및 기타 구성 요소 추가

  • 객체 검사: D365 객체 분석 및 X++ 소스 코드 추출

  • 코드 검색: 패턴 일치를 통해 D365 코드 검색

  • MCP 프로토콜: Claude Desktop, VS Code 및 기타다른 MCP 클라이언트와 호환

아키텍처

이 시스템은 Windows Named Pipes를 통해 통신하는 두 가지 주요 구성 요소로 이루어져 있습니다:

MCP X Server (Node.js/TypeScript)

  • Model Context Protocol(STDIO) 구현

  • 객체 생성, 수정, 검색 작업을 처리

  • 파일 탐색 및 코드베이스 인덱싱 제공

  • Claude Desktop 및 VS Code를 비롯한 MCP 클라이언트와 호환

D365 Metadata Service (C# .NET 4.8)

  • Microsoft의 D365 어셈블리와 통합

  • VS2022 API를 통한 객체 생성 및 수정 처리

  • 런타임 객체 검색을 위한 동적 리플렉션 제공

  • Named Pipe로 통신: mcp-xpp-d365-service

이 아키텍처는 기존 D365 개발 워크플로우와의 호환성을 유지하면서 다양한 MCP 호환 클라이언트에서 D365 개발을 가능하게 합니다.

도구 참고

서버는 D365 개발에 특화된 10개의 도구를 제공합니다:

  1. create_xpp_object - D365 객체 (클래스, 테이블, 열거형 등) 생성 - 참고: 폼을 작성할 때는 create_form을 사용하세요

  2. create_form - ✨ 새 기능 - 패턴 지원 및 데이터소스 통합이 포함된 특수 목적의 폼 생성

  3. delete_xpp_object - ✨ 새 기능 - 종속성 검증 및 캐시 일치를 보장하는 안전한 D365 객체 삭제

  4. execute_object_modification - ✨ 개선됨 - 배열 기반 일괄 처리로 객체 수정 - 모범 사례: 동일 객체의 모든 수정 작업을 그룹화

  5. discover_modification_capabilities - 가능한 수정 방법 탐색

  6. find_xpp_object - 이름/유형으로 특정 객체 찾기

  7. search_objects_pattern - 와일드카드 지원 패턴 검색

  8. inspect_xpp_object - X++ 소스 코드 추출을 포함한 객체 분석

  9. get_current_config - 현재 설정 및 상태 확인

  10. build_object_index - 검색 성능 최적화를 위한 색인 관리

사전 환경

  • Visual Studio 2022 (Community, Professional 또는 Enterprise)

  • Visual Studio 2022용 Dynamics 365 개발 도구

  • Node.js 최신 LTS 버전 권장

  • .NET Framework 4.8 (일반적으로 Windows에 포함)

설치

  1. 저장소를 복제합니다.

  2. Node.js 종속 패키지를 설치합니다: npm install

  3. VSCO2022 통합을 구성하려면 설치 스크립트를 실행합니다: .\tools\build-and-run.ps1 -Action setup

  4. 프로젝트를 빌드합니다: .\tools\build-and-run.ps1 -Action build

사용 방법

서버 시작

다음과 같이 MCP 서버를 실행합니다:

node build/index.js

서버는 VS2022 설치에서 D365 경로를 자동으로 감지합니다. 수동 설정이 필요한 경우, 다음을 사용합니다:

node build/index.js --xpp-path "C:\path\to\PackagesLocalDirectory"

MCP 클라이언트 설정

VS Code

.vscode/mcp.json에서 설정합니다:

{
  "servers": {
    "mcp-xpp-server": {
      "command": "node",
      "args": ["./build/index.js"],
      "cwd": "${workspaceFolder}",
      "type": "stdio"
    }
  }
}

Claude Desktop

Claude Desktop 구성 파일에 추가합니다:

{
  "mcpServers": {
    "mcp-xpp-server": {
      "command": "node",
      "args": ["path/to/mcp_xpp/build/index.js"]
    }
  }
}

도구 참조

객체 생성 (Object Creation)

create_xpp_object

VS2022 서비스와 협력하여 D365 F&O 객체를 생성합니다.

⚠️ 중요: 폼을 만들려면 전용 create_form을 사용하세요. 특수한 패턴 지원 및 데이터소스 통합이 제공됩니다.

매개변수:

    • objectName (string) - D365 객체의 이름

  • objectType (string) - 객체 유형(AxClass, AxTable, AxEnum 등) - AxForm 제외

  • layer (string, optional) - 애플리케이션 계층(usr, cus, var)

  • outputPath (string, optional) - 출력 폴더(기본값: "Models")

  • publisher (string, optional) - 회사 이름(기본: "YourCompany")

  • version (string, optional) - 버전 번호(기본: "1.0.0.0")

  • dependencies (array, optional) - 모델 엄성 정의

  • properties (object, optional) - 객체별 별도 설정

예:

create_xpp_object({
  "objectName": "MyCustomClass",
  "objectType": "AxClass",
  "layer": "usr"
})

create_form ✨ 새 기능

고급 패턴 지원과 데이터소스 통합이 포함된 D365 폼을 만드는 전문 도구로, 폼 생성과 패턴 탐색을 하나의 인터페이스로 제공합니다.

매개변수:

  • mode (string, required) - 작업 모드:

    • "create" - 패턴과 데이터소스로 새 폼 생성

    • "list_patterns"

  • formName (string, optional) - 폼 이름 (mode='create'일 경우 필수)

  • patternName (string, optional) - 적용할 D365 폼 패턴 (예: 'SimpleListDetails', 'DetailsMaster', 'Dialog')

  • patternVersion (string, optional) - 패턴 버전(기본값: 'UX7 1.0')

  • dataSources (array|string, optional) - 폼 데이터 소스로 사용할 테이블 목록

  • modelName (string, optional) - D365 모델/패키지 이름(기본값: "ApplicationSuite")

주요 특징:

  • 🎯 패턴 인식: 패턴이 필드를 요구하면 자동으로 필드 컨트롤을 추가합니다 (예: DetailsMaster)

  • 🗄️ 유연한 데이터소스: 배열, 단일 문자열, 쉼표로 구분된 문자열 지원

  • 🔍 패턴 탐색: 36개 이상의 사용 가능한 D365 폼 패턴을 설명과 함께 제공

  • ✅ 향상된 검증: 지능적인 필드 컨트롤 창을 통해 패턴 유효성 문제 해결

예:

// Discover available patterns
create_form({"mode": "list_patterns"})

// Create simple list form with datasource
create_form({
  "mode": "create",
  "formName": "MyCustomerListForm", 
  "patternName": "SimpleListDetails",
  "dataSources": ["CustTable"]
})

// Create DetailsMaster form with multiple datasources
create_form({
  "mode": "create",
  "formName": "MySalesOrderForm",
  "patternName": "DetailsMaster",
  "patternVersion": "UX7 1.0", 
  "dataSources": ["SalesTable", "SalesLine", "CustTable"],
  "modelName": "MyCustomModel"
})

// Create dialog form without datasources
create_form({
  "mode": "create",
  "formName": "MyConfirmationDialog",
  "patternName": "Dialog"
})

기술 노트:

  • DetailsMaster, SimpleListDetails, ListEdit와 같은 패턴에는 데이터데이터소스가 제공될 때 자동으로 필드 컨트롤(RecId, Name, Description, Code)이 추가됩니다.

  • 패턴 검증 문제가 해결되었습니다. 이제 패턴 요구 사항에 따라 데있고 없든 폼을 생성할 수 있습니다.

  • 보다 나은 D365 호환성을 위해 VS2022 서비스와 직접 통합됩니다.

`delete_xpp_object ✨ 신규

종속성 검증 및 캐시 일치성을 통해 D365-개체를 안전하게 삭제하는 도구입니다. 삭제 전에 종속성을 확인함으로써 중요한 변경을 방지합니다.

매개변수:

  • objectName (string, required) - 삭제할 D365 객체의 이름

  • objectType (string, required) - D365 객체 형식(AxClass, AxTable, AxForm, AxEnum, 등등)

  • cascadeDelete (boolean, optional) - 하위 개체도 삭제(기본값: false)

주요 기능:

  • 🛡️ 의존성 확인: 대상 객체에 다른 객체가 의존하면 삭제를 중단합니다.

  • 🗑️ 안전한 삭제*: D365 의 ISingleKeyedMetadataProvider.Delete를 이용하여 올바르게 삭제합니다.

  • 🔄 캐시 일치: 성공적인 삭제 후 검색 색인을 자동으로 업데이트합니다.

  • ⚡ 빠른 성능: 최적의 속도를 위해 메타 데이터 공급자 직접 통합

  • 🌲 고리 구조 삭제: 하위 요소(양식 부품/컨트롤 등) 선택적 삭제

예:

// Delete a custom class
delete_xpp_object({
  "objectName": "MyCustomClass",
  "objectType": "AxClass"
})

// Delete a table with cascade (removes dependent field groups, relations, etc.)
delete_xpp_object({
  "objectName": "MyTestTable", 
  "objectType": "AxTable",
  "cascadeDelete": true
})

// Delete a form (will fail if dependencies exist without cascade)
delete_xpp_object({
  "objectName": "MyCustomForm",
  "objectType": "AxForm"
})

응답 형식:

{
  "success": true,
  "message": "Successfully deleted object: MyCustomClass (AxClass)",
  "objectName": "MyCustomClass",
  "objectType": "AxClass",
  "cascadeDelete": false,
  "dependenciesRemoved": [],
  "cacheUpdate": "Success",
  "performance": "156ms"
}

⚠️ 안전 주의 사항:

  • 고위험 수행: 삭제는 영구적이며 되돌릴 수 없습니다.

  • 삭제 전에 항상 find_xpp_object로 종속성을 확인합니다.

  • 최대 안전을 위해 캐스케이드 삭제(cascadeDelete: false)를 기본으로 사용합니다.

  • 항상 개발 환경에서 먼저 삭제를 테스트합니다.

  • 종속성이 존재할 때 캐스케이드 플래그가 없으면, 도구는 안전 모드로 불량합니다.

  • 캐시 업데이트로 삭제 후 즉시 검색 일관성이 유지됩니다.

일반적인 객체 유형:

  • AxClass - X++ 클래스 및 비즈니스 로직

  • AxTable - 데이터 테이블과 스키마

  • AxForm - UI 폼

  • AxEnum - 열거 형 및 값 목록

  • AxEdt - 확장 데이터 형식

  • AxView - 데이터베이스 보기

  • AxQuery - 데이터 질의

  • AxReport - SSRS 보고서

객체 찾기

find_xpp_object

특정 이름으로 X++ 개체 위치를 찾습니다.

매개변수:

    • objectName (string, required) - XPP 개체의 이름

  • objectType (string, optional) - 객체 형식별 필터링

  • model (string, optional) - D365 모델/패키지 이름으로 필터링

search_objects_pattern

와일드카드이 포함된 패턴 개체를 검색합니다.

매개변수:

  • pattern (string, required) - 패턴 (예: * 및 ? 와일드카드)

  • objectType (string, optional) - 개체 형식 필터

  • model (string, optional) - D365 모델/패키지 이름 필터

  • limit (number, optional) - 최대 결과 수 (기본값: 50)

  • format (string, optional) - 출력 형식 자세한 형식: 'text' 또는 'json'

inspect_xpp_object

여러 검사 모드로 D365 개체를 분석합니다.

매개변수:

  • objectName (string, required) - X++ 개체의 이름

  • objectType (string, optional) - D365 개체 형식

  • inspectionMode (string, optional) - 검사 모드:

    • summary - 객체의 콘텐츠(항목 수를 포함한 빠른 개요)

    • properties - 모든 개체 속성을 속성 설명과 함께

    • collection - 선택한 컬렉션 항목 (collectionName 필요)

    • xppcode - X++ 소스 코드 추출 (codeTarget 필요)

  • collectionName (string, optional) - inspectionMode='collection'일 때 필수

  • codeTarget (string, optional) - inspectionMode='xppcode'일 때 필요:

    • methods - 모든 메서드의 소스 코드 추출

    • specific-method - 단일 메서드 추출 (methodName 필요)

    • event-handlers - 이벤트 처리기만 추출

  • methodName (string, optional) - codeTarget='specific-method' 시 필요

  • maxCodeLines (number, optional) - 각 메서드의 소스 줄 수 제한

  • filterPattern (string, optional) - 결과의 와일드카드 패턴 필터

예:

// Get object summary
inspect_xpp_object({"objectName": "CustTable", "inspectionMode": "summary"})

// Extract specific method source code
inspect_xpp_object({
  "objectName": "SalesLine", 
  "objectType": "AxTable", 
  "inspectionMode": "xppcode", 
  "codeTarget": "specific-method", 
  "methodName": "validateWrite"
})

객체 수정 (Object Modification)

execute_object_modification ✨ 일괄 처리 개선

기존 D365 개체에 배열 기반 일괄 처리를 사용하여 수정 메서드를 실행합니다. 항상 배열 형식으로 사용하세요. - 단일 작업도 하나의 요소를 가진 배열로 처리합니다.

📋 모범 사례: 동일 객체에 대한 모든 수정 작업을 여러 호출로 나누지 말고 하나의 호출로 묶어서 실행합니다. 이것은 더 나은 성능, 오류 처리 안정성 및 트랜잭션 일관성을 제공합니다.

Parameters:

  • objectType (string, required) - D365 객체 유형 (예: 'AxTable', 'AxClass', 'AxForm')

  • objectName (string, required) - 수정할 기존 객체의 이름

  • modifications (array, required) - 수정 작업 배열:

    • methodName (string, required) - 실행할 수정 메서드

    • parameters (object, required) - 메서드별 매개변수 포함:

      • concreteType (string, required) - discover_modification_capabilities에서 가져온 정확한 유형

      • Name (string) - 필드/객체 이름 ('fieldName'이 아닌 'Name' 사용)

      • 기타 D365 관련 매개변수

✅ 기능:

  • 작업별 추적: 각 작업은 개별 성공/실패 상태를 반환합니다

  • 상세 오류 보고: 실패한 작업에 대한 명확한 검증 메시지

  • 순차 처리: 작업은 타이밍 정보와 함께 순서대로 실행됩니다

  • 일괄 효율성: 단일 서비스 호출에서 여러 작업 처리

예시:

✅ 단일 필드 (요소가 하나인 배열):

execute_object_modification({
  "objectType": "AxTable",
  "objectName": "CustTable",
  "modifications": [
    {
      "methodName": "AddField",
      "parameters": {
        "concreteType": "AxTableFieldString",
        "Name": "MyCustomField",
        "Label": "My Custom Field",
        "HelpText": "Custom field description",
        "SaveContents": "Yes",
        "Mandatory": "No",
        "AllowEditOnCreate": "Yes",
        "AllowEdit": "Yes",
        "Visible": "Yes",
        "AosAuthorization": "None",
        "MinReadAccess": "Auto",
        "IgnoreEDTRelation": "No",
        "Null": "Yes",
        "IsSystemGenerated": "No",
        "IsManuallyUpdated": "No",
        "IsObsolete": "No",
        "GeneralDataProtectionRegulation": "None",
        "SysSharingType": "Duplicate"
      }
    }
  ]
})

⭐ 하나의 배치에서 여러 필드 (권장):

execute_object_modification({
  "objectType": "AxTable",
  "objectName": "CustTable",
  "modifications": [
    {
      "methodName": "AddField",
      "parameters": {
        "concreteType": "AxTableFieldString",
        "Name": "CustomerCategory",
        "Label": "Customer Category",
        "HelpText": "Customer classification category",
        "SaveContents": "Yes",
        "Mandatory": "No",
        "AllowEditOnCreate": "Yes",
        "AllowEdit": "Yes",
        "Visible": "Yes",
        "AosAuthorization": "None",
        "MinReadAccess": "Auto",
        "IgnoreEDTRelation": "No",
        "Null": "Yes",
        "IsSystemGenerated": "No",
        "IsManuallyUpdated": "No",
        "IsObsolete": "No",
        "GeneralDataProtectionRegulation": "None",
        "SysSharingType": "Duplicate"
      }
    },
    {
      "methodName": "AddField", 
      "parameters": {
        "concreteType": "AxTableFieldInt",
        "Name": "CustomerPriority",
        "Label": "Customer Priority",
        "HelpText": "Priority level for customer",
        "SaveContents": "Yes",
        "Mandatory": "No",
        "AllowEditOnCreate": "Yes",
        "AllowEdit": "Yes",
        "Visible": "Yes",
        "AosAuthorization": "None",
        "MinReadAccess": "Auto",
        "IgnoreEDTRelation": "No",
        "Null": "Yes",
        "IsSystemGenerated": "No",
        "IsManuallyUpdated": "No",
        "IsObsolete": "No",
        "GeneralDataProtectionRegulation": "None",
        "SysSharingType": "Duplicate"
      }
    }
  ]
})

📊 응답 형식: 이 도구는 작업별 상세 결과를 반환합니다:

{
  "summary": "2 succeeded, 1 failed (3 total)",
  "targetObject": "AxTable:CustTable",
  "operations": [
    {
      "methodName": "AddField",
      "success": true,
      "processingTime": "371ms",
      "message": "Successfully executed AddField on AxTable:CustTable"
    },
    {
      "methodName": "AddField",
      "success": false,
      "processingTime": "0ms",
      "error": "Parameter validation failed: Missing required parameters"
    }
  ]
}

💡 팁:

  • 정확한 매개변수 요구사항을 얻으려면 먼저 discover_modification_capabilities를 사용하세요

  • 모든 D365 테이블 필드에는 SaveContents, Mandatory 등의 매개변수가 필요합니다

  • 성능 향상을 위해 관련 수정 작업을 함께 그룹화하세요

  • 실패한 작업 디버깅을 위해 개별 작업 결과를 확인하세요

discover_modification_capabilities

D365 객체 유형에 사용 가능한 수정 메서드를 검색합니다.

매개변수:

  • objectType (string, required) - 분석할 D365 객체 유형

시스템 관리

get_current_config

포괄적인 서버 구성 및 상태 정보를 반환합니다.

build_object_index

검색 가능한 객체 인덱스를 구축하거나 업데이트합니다.

매개변수:

  • objectType (string, optional) - 인덱싱할 특정 객체 유형

  • forceRebuild (boolean, optional) - 전체 재구축 강제 실행

지원되는 객체 유형

지원되는 일반적인 D365 객체 유형:

  • AxClass - X++ 클래스

  • AxTable - 데이터 테이블

  • AxForm - 사용자 인터페이스 양식

  • AxEnum - 열거형

  • AxEdt - 확장 데이터 유형

  • AxView - 데이터베이스 뷰

  • AxQuery - 데이터 쿼리

  • AxReport - SSRS 보고서

  • AxMenuItemDisplay - 메뉴 항목

  • AxDataEntityView - OData 엔티티

시스템은 총 544개 이상의 객체 유형을 지원합니다.

빌드 스크립트

build-and-run.ps1 스크립트는 통합 프로젝트 관리를 제공합니다:

# Setup VS2022 integration
.\tools\build-and-run.ps1 -Action setup

# Build both TypeScript and C# components
.\tools\build-and-run.ps1 -Action build

# Run the MCP server
.\tools\build-and-run.ps1 -Action run -Target mcp

# Run the C# service
.\tools\build-and-run.ps1 -Action run -Target csharp

# Run tests
.\tools\build-and-run.ps1 -Action test

# Clean builds
.\tools\build-and-run.ps1 -Action clean

예제 워크플로우

새 클래스 만들기

# Create a custom class
create_xpp_object {
  "objectName": "MyBusinessLogic",
  "objectType": "AxClass",
  "layer": "usr"
}

# Add a method to the class
execute_object_modification {
  "objectType": "AxClass",
  "objectName": "MyBusinessLogic",
  "methodName": "AddMethod",
  "parameters": {
    "methodName": "processData",
    "returnType": "void",
    "source": "public void processData() { }"
  }
}

객체 검색 및 분석

# Find customer-related objects
search_objects_pattern {
  "pattern": "Cust*",
  "objectType": "AxTable",
  "limit": 20
}

# Analyze a specific table
inspect_xpp_object {
  "objectName": "CustTable",
  "objectType": "AxTable",
  "inspectionMode": "summary"
}

# Extract method source code
inspect_xpp_object {
  "objectName": "CustTable",
  "objectType": "AxTable",
  "inspectionMode": "xppcode",
  "codeTarget": "specific-method",
  "methodName": "validateWrite"
}

기술 세부 사항

성능 특성

  • 객체 인덱싱: 70K+ 객체를 약 30초 내에 처리

  • 쿼리 응답 시간: 대부분의 작업에서 50ms 미만

  • 검색 작업: 대규모 코드베이스에서 1초 미만 응답

  • 메모리 사용량: 최적화된 SQLite 기반 캐싱

파일 유형 지원

  • .xpp - X++ 소스 파일

  • .xml - 메타데이터 및 구성 파일

  • .json - 구성 파일

  • 기타 D365 개발 파일

보안

  • 경로 검증으로 디렉토리 트래버설 방지

  • 구성된 D365 코드베이스로 작업 제한

  • 리소스 관리를 위한 파일 크기 제한

  • 모든 매개변수에 대한 입력 검증

문제 해결

일반적인 문제

"VS2022 확장 프로그램을 찾을 수 없음"

  • VS2022에 Dynamics 365 Development Tools가 설치되어 있는지 확인하세요

  • 설정 스크립트 실행: .\tools\build-and-run.ps1 -Action setup

"명명된 파이프 연결 실패"

  • C# 서비스가 실행 중인지 확인하세요

  • Windows 방화벽 설정을 확인하세요

  • .NET Framework 4.8이 설치되어 있는지 확인하세요

"객체를 찾을 수 없음" 오류

  • 객체 인덱스 구축: build_object_index

  • D365 코드베이스 경로 구성을 확인하세요

  • 지정된 모델에 객체가 존재하는지 확인하세요

양식에 대한 "패턴 검증 실패"

  • ✅ 해결됨: 이 문제는 최신 버전에서 수정되었습니다

  • DetailsMaster와 같은 패턴이 있는 양식은 이제 필수 필드 컨트롤을 자동으로 포함합니다

  • 더 나은 양식 생성을 위해 create_xpp_object 대신 create_form 도구를 사용하세요

"데이터소스 없이 양식 생성 실패"

  • 대부분의 패턴은 데이터소스 없이도 정상 작동합니다 (예: DetailsMaster, Dialog 패턴)

  • 패턴 요구사항을 확인하려면 "mode": "list_patterns"와 함께 create_form을 사용하세요

  • DataSources는 대부분의 패턴에서 선택 사항이지만 제공 시 기능이 향상됩니다

도움말 얻기

  • 자세한 오류 정보는 logs/ 폴더를 확인하세요

  • get_current_config를 사용하여 시스템 구성을 확인하세요

  • GitHub 저장소에 문제를 보고하세요

기여

이 프로젝트는 기여를 환영합니다. 다음을 수행해 주세요:

  1. 저장소를 포크하세요

  2. 기능 브랜치를 만드세요

  3. 적절한 테스트와 함께 변경 사항을 적용하세요

  4. 풀 리퀘스트를 제출하세요

프로젝트가 발전함에 따라 API가 변경될 수 있습니다.

라이선스

MIT 라이선스 - 자세한 내용은 LICENSE 파일을 참조하세요.

면책 조항

이 소프트웨어는 보증 없이 "있는 그대로" 제공됩니다. 연구 및 개발 목적으로만 사용되며, 프로덕션 사용을 위한 것이 아닙니다.

중요 사항:

  • Visual Studio 2022 및 D365 개발 도구 필요

  • Microsoft API와의 통합은 공식적으로 지원되지 않습니다

  • 기능은 버전 간에 변경되거나 중단될 수 있습니다

  • 개발 환경에서만 사용자의 책임 하에 사용하세요

GitHub 저장소를 통해 문제를 보고하거나 개선 사항을 기여하세요.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for Microsoft Dynamics 365 Finance & Operations that enables the creation, modification, and analysis of D365 objects like classes, tables, and forms. It integrates with Visual Studio 2022 to provide tools for X++ code extraction, codebase search, and safe object deletion with dependency validation.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables D365 F\&O development including object creation, modification, deletion, and analysis through the MCP standard.
    40
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that integrates with Microsoft Dynamics 365 Business Central, enabling querying of customers, items, and sales orders through natural language commands in Claude Desktop.
    10
    -