728x90
반응형

그래프 데이터 모델링 워크플로 개선

소개

이번 블로그에서는 모델 컨텍스트 프로토콜(MCP), Neo4j 데이터 모델링 MCP 서버가 에이전트 애플리케이션에 제공하는 내용, 그리고 다른 MCP 서버와의 엔드투엔드 워크플로에서 이를 구현하는 방법을 알아볼 거예요.

MCP는 에이전트가 표준화된 도구에 쉽게 접근할 수 있도록 해주는 강력한 방법이에요. 애플리케이션이 Large Language Model(LLM)에 도구, 리소스, 그리고 프롬프트 형태로 컨텍스트를 제공하는 방법을 정의하는 프로토콜이죠. 이 블로그에서는 Neo4j 데이터 모델링 MCP 서버를 사용해서 Neo4j 지원 애플리케이션을 위한 그래프 데이터 모델을 생성하는 방법을 자세히 설명할게요.

그래프 데이터 모델링은 데이터 내의 엔터티를 식별하고, 이들을 관계로 연결하는 것으로 구성돼요. 엔터티와 관계 모두 추가 정보를 제공하는 속성을 가질 수도 있고요.

그래프 데이터 모델을 만들 때는 먼저 해당 모델이 다룰 사용 사례를 이해하는 게 중요해요. 그래야 우리가 작성할 쿼리, 그리고 궁극적으로 데이터가 그래프에 어떻게 표시되어야 하는지를 알 수 있거든요.

Neo4j는 스키마가 없는 데이터베이스라서 데이터 모델 리팩토링이 쉬워요. 쿼리 성능을 향상시키거나 추가 사용 사례를 추가하기 위해 데이터 모델을 리팩터링하는 건 흔한 일이니까요. 데이터 모델링 단계는 프로젝트 개발 주기 전반에 걸쳐 여러 번 재검토될 수 있기 때문에, Neo4j 데이터 모델링 MCP 서버는 정말 유용한 자산이 될 거예요.

Neo4j 데이터 모델링 MCP 서버의 현재 릴리스는 v0.1.1이에요.

자세한 내용은 에서 확인해보세요.

구성

다음 구성을 사용해서 선택한 클라이언트 애플리케이션에 Neo4j 데이터 모델링 MCP 서버를 추가해보세요.

{
  "mcpServers": {
   "neo4j-graph-data-modeling": {
       "command": "uvx",
       "args": [ "mcp-neo4j-data-modeling@0.1.1" ]
    }
  }
}

다음과 같은 많은 MCP 호환 클라이언트가 있어요: Claude Desktop 그리고 Cursor IDE. 전체 목록은 MCP 클라이언트에서 확인해보세요.

데이터 모델링 리소스

Neo4j 데이터 모델링 MCP 서버는 데이터 모델링 및 데이터 수집을 지원하는 몇 가지 에이전트 리소스를 제공해요. 여기에는 MCP 서버 내에서 그래프 데이터 모델을 정의하는 데 사용되는 Node 구조, Relationship, 속성이 포함되죠.

MCP 서버는 또한 Neo4j에 데이터를 수집하는 프로세스를 배치하는 리소스를 노출하므로, 다른 수집 도구와 함께 데이터 모델링 MCP 서버를 사용할 수 있어요.

데이터 모델링 도구

유효성 검사, 가져오기/내보내기, 시각화, 그리고 코드 생성 도구를 포함해서 MCP 서버에 의해 노출되는 다양한 도구가 있어요.

MCP 서버는 Node, Relationship, 그리고 전체 데이터 모델에 대한 검증 도구를 제공해요. 이러한 도구는 위에서 설명한 리소스에 의해 정의된 구조를 준수하는 입력으로 Python 사전을 사용해요. 그런 다음 사전은 Pydantic 모델로 변환되고, 모든 오류는 에이전트에 반환되어 데이터 모델을 수정할 수 있게 되죠.

현재 도구는 다음을 포함한 기능을 검증해요:

  • Node에 주요 속성 존재
  • 중복된 속성, Node 또는 Relationship
  • Relationship Source 및 Target 존재

MCP 서버는 또한 Mermaid 데이터 모델의 다이어그램을 생성해요. 많은 MCP 클라이언트가 Mermaid 다이어그램을 지원하므로, 데이터 모델을 빠르게 시각화하고 이해하는 데 정말 유용하죠.

아래 데이터 모델은 Survivor: Borneo 위키에서 생성되었어요.

Survivor Season 1 그래프 데이터 모델의 Mermaid 다이어그램

다음은 Arrows.app 클라이언트 애플리케이션 내에서 가져오고 수정할 수 있는 데이터 모델을 수동으로 생성하는 그리기 도구에요. AI 생성 데이터 모델은 도구 호출을 통해 Arrows 형식으로 내보낼 수도 있어서, Arrows 내에서 수동으로 편집하는 것도 가능하죠.

Arrows.app

생존자 시즌 1 그래프 데이터 모델의 Arrows 다이어그램

Arrows 데이터 모델의 속성 형식을 참고하세요. 이는 클라이언트 애플리케이션에서 생성된 정보를 유지하기 위해 필요한 부분이에요. 각 속성의 형식은 다음과 같아요.

<property-name>: <neo4j-type> | <description> | OPTIONAL<key-identifier>

KEY 부분은 선택 사항이고, 각 Node 또는 Relationship에 대한 단일 속성에만 제공되어야 해요. 이는 현재 데이터 모델링 MCP 서버 빌드의 제약 사항이랍니다.

MCP 서버는 데이터 모델에 따라 데이터를 수집하기 위해 Cypher 코드를 생성하는 도구도 제공해요. 이 코드에는 필요한 Index와 제약 조건은 물론 Node, Relationship, 속성을 수집하기 위한 코드도 포함되어 있죠.

에이전트가 Cypher 실행 도구에도 액세스할 수 있다면, Neo4j 데이터 수집 프로세스 리소스를 사용하여 수집 로직을 알릴 수 있어요.

엔드투엔드 개발자 흐름

에이전트가 개발을 위해 데이터 모델링 MCP 서버를 사용할 때 일반적인 프로세스가 있어요. 이 프로세스에는 클라이언트 애플리케이션 내의 일부 데이터 검색이 포함되고, 선택적으로 결과 그래프를 로드하고 Query하기 위한 Neo4j Cypher MCP 서버도 포함되죠.

일반적인 GenAI 개발 과정

이 예에서는 Claude Desktop과 Neo4j Cypher 및 데이터 모델링 MCP 서버를 사용하여 시즌 1의 Survivor 데이터 그래프를 만드는 빠른 개발 세션을 살펴볼게요.

위와 다른 그래프 데이터 모델을 만들어 볼까요?

제가 사용한 Claude 구성 파일은 다음과 같아요.

{
  "mcpServers": {
    "mcp-data-modeling": {
      "command": "uvx",
      "args": [ "mcp-neo4j-data-modeling@0.1.1" ]
    },
    "mcp-cypher": {
      "command": "uvx",
      "args": [ "mcp-neo4j-cypher@0.2.3" ],
      "env": {
        "NEO4J_URL": "bolt://localhost:7687",
        "NEO4J_USERNAME": "neo4j",
        "NEO4J_PASSWORD": "password",
        "NEO4J_DATABASE": "neo4j"
      }
    }
  }
}

저는 다음을 통해 로컬 Neo4j 인스턴스를 사용했어요. 데스크탑용 Neo4j에 결과 그래프를 저장했죠.

먼저 에이전트에 데이터와 일부 사용 사례를 제공해야 해요. 이 데이터는 웹사이트, 제공된 CSV 파일 또는 MCP 도구 호출 결과에서 가져올 수 있죠. 에이전트가 데이터를 분석하고 사용 사례를 이해하면 모델링 프로세스를 시작할 수 있어요.

저는 Claude에게 다음 링크를 제공했어요. 생존자: 보르네오 위키 그리고 그래프로 해결하고 싶었던 몇 가지 사용 사례도 있었답니다.

Claude와 함께하는 데이터 검색

Claude가 데이터를 이해하면 데이터 모델링 MCP 서버에 의해 노출된 Schema 리소스를 참조해서 데이터 모델의 JSON 표현을 구성해요. 그런 다음 데이터 모델 유효성 검사 도구로 전달되어 모델의 오류를 잡아내죠. 그런 다음 Claude는 이러한 오류를 수정하고 누락된 정보가 있는지 묻는 메시지를 표시해야 해요.

Claude의 첫 번째 생존자 데이터 모델

유효한 데이터 모델이 생성되면 Claude는 Mermaid 구성 도구를 사용하여 유효한 Mermaid 구성을 받을 수 있어요. 그런 다음 이를 사용하여 데이터 모델의 시각화를 생성할 수 있죠.

Claude의 첫 번째 생존자 데이터 모델 시각화

Claude Desktop 및 Cursor와 같은 많은 클라이언트 애플리케이션은 Mermaid 다이어그램을 지원해요.

첫 번째 초안이 시각화되면 Claude에 수정 사항을 요청할 수 있어요. 이는 데이터 모델 수정 → 검증 → 시각화 단계를 반복하는 거죠.

변경된 Claude의 두 번째 Survivor 데이터 모델

데모 목적으로 이 데이터 모델에 만족하니까, 이제 수집 단계로 넘어갈 수 있어요. 데이터 모델링 MCP 서버에서 제공하는 코드 생성 도구를 사용해서 Neo4j 인스턴스에 데이터를 수집할 수 있죠. 데이터 모델링 MCP 서버는 현재 데이터베이스에 연결되어 있지 않지만, Neo4j Cypher MCP 서버를 사용해서 클라이언트 애플리케이션에서 수집 코드를 실행할 수 있어요.

Claude Desktop을 통해 데이터를 수집하는 건 not 권장되지만, 빠른 개념 증명에는 유용할 수 있어요.

Neo4j Cypher MCP 서버 및 Claude를 사용하여 데이터 수집

여기에서 Claude는 데이터 모델링 MCP 서버가 제공하는 Cypher 쿼리 제약 조건만 사용하기로 선택했어요. 때로는 Claude가 MCP 도구를 사용하도록 명시적으로 요청하지 않으면 자체 Cypher 코드를 작성하도록 선택할 수도 있고요.

마지막으로 Neo4j 데이터베이스를 쿼리해서 데이터가 올바르게 로드되었는지 확인할 수 있어요. Neo4j Cypher MCP 서버를 사용하거나 다음을 통해 수동으로 이 작업을 수행할 수 있죠. Neo4j Aura 콘솔 또는 데스크탑 애플리케이션용 Neo4j.

사용 사례에 답하기 위해 Cypher 쿼리를 실행하는 Claude

그러면 사용 사례에 대한 자세한 답변을 얻을 수 있어요.

참고: 아래는 주요 생존자 보르네오 스포일러입니다.

플레이어는 병합 후 다른 원래 부족의 부족 구성원을 얼마나 자주 투표하나요?
챌린지 우승자는 다음 부족 협의회에서 승리한 후 얼마나 자주 더 많은 표를 얻나요?
최종 부족 협의회에서 승리하는 데 도전에서 승리하는 것이 얼마나 영향력이 있나요?

요약 및 다음 단계

데이터 모델링은 데이터를 그래프로 마이그레이션할 때 때때로 장애물이 될 수 있는데, Neo4j 데이터 모델링 MCP 서버는 일부 문제점을 완화해줘요. 이제 동일한 애플리케이션 내에서 검증 및 시각화할 수 있는 기능을 통해 쉽게 개념 증명을 완료하거나 다양한 데이터 모델 버전을 반복할 수 있죠. 다른 MCP 서버를 데이터 모델링 MCP 서버와 결합해서 데이터를 그래프로 빠르게 탐색할 수 있는 엔드 투 엔드 개발 워크플로를 만들 수도 있고요.

Neo4j 데이터 모델링 MCP 서버에 대해 자세히 알아보려면 다음 동영상을 시청하세요. Jason Koo의 비디오 튜토리얼.

그리고 GitHub 저장소도 꼭 확인해 보세요.

  • Neo4j 데이터 모델링 MCP
  • Neo4j Cypher MCP
  • Neo4j MCP 서버

  • Claude
  • 데이터 모델링
  • MCP

에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

728x90
반응형

+ Recent posts