Skip to content

chore: AI 연동 전략 조사 및 도입 방향 정의 (MCP 포함) #15

@robinjoon

Description

@robinjoon

배경

최근 ChatGPT/Claude/Gemini 생태계에서 외부 앱 연동 방식이 빠르게 표준화(MCP, Function Calling, Actions/Connectors)되고 있어, loop 서버도 향후 AI 에이전트가 붙기 쉬운 형태로 준비가 필요합니다.

목표

  • loop 서버를 AI와 쉽게 통합할 수 있는 기술 옵션을 비교합니다.
  • MCP를 포함하되, MCP 외 대안(Function Calling / Actions / OpenAPI facade)도 함께 검토합니다.
  • 우리 아키텍처(Spring Boot + DGS GraphQL, DDD/Clean Architecture)에 맞는 단계별 도입안을 제시합니다.

조사 요약

1) MCP 기반 연동 (가장 범용)

  • OpenAI: Responses API에서 remote MCP tool 지원, ChatGPT Apps(구 Connector)와 연계 가능
  • Claude: Tool Use + MCP 서버 도구 매핑 가능 (inputSchema -> input_schema)
  • Gemini/Google ADK: MCP toolset으로 MCP 서버 도구 사용 가능, Agent Engine 연동 사례 존재
  • 장점: 공급자 종속 최소화, 도구 재사용성 높음
  • 리스크: 인증(OAuth), prompt injection, 민감 액션 승인/감사 설계 필요

2) 모델별 네이티브 Function Calling

  • OpenAI/Claude/Gemini 모두 JSON Schema(OpenAPI 호환 스키마) 기반 도구 호출 지원
  • 장점: 구현 단순, MCP 런타임 없이 빠른 PoC 가능
  • 단점: 공급자별 요청/응답 포맷 차이를 별도 어댑터로 관리해야 함

3) ChatGPT Actions/Connector 계열

  • OpenAPI 기반 REST 액션 정의로 자연어→API 호출 브릿지 제공
  • 장점: ChatGPT 내 UX 우수, 조직 도입시 빠름
  • 단점: ChatGPT 중심이며, Claude/Gemini와 공통화하려면 추가 추상화 필요

4) 권장 방향 (초안)

  • 단기: Function Calling 어댑터 + read-only 툴부터 시작
  • 중기: 동일 툴 카탈로그를 MCP 서버로 노출해 멀티모델 공통화
  • 장기: 쓰기 액션에 승인 워크플로우/감사로그/RBAC/멱등성 키 적용

loop 서버 적용 관점

  • 현재 API가 GraphQL 중심이므로, AI 도구는 아래 중 하나로 노출
    1. GraphQL resolver를 호출하는 MCP server adapter
    2. AI 전용 얇은 REST facade(내부적으로 Application Service 재사용)
  • 도메인 변경/쓰기 액션은 require_approval(또는 동등 개념) + human-in-the-loop 필수
  • 도구 스키마는 JSON Schema 단일 소스로 관리하여 MCP/Function Calling/OpenAPI에 재사용

제안 작업 항목

  • AI 통합 목표 유스케이스 선정 (조회형 2개, 액션형 1개)
  • Tool Catalog 초안 작성 (이름/설명/입력스키마/권한/멱등성)
  • read-only MCP PoC 1개 구현 (예: task/goal 조회)
  • OpenAI/Claude/Gemini 최소 호출 시나리오 검증 (E2E 로그 포함)
  • 보안 가드레일 정의 (OAuth, approval, audit logging, rate limit, PII 필터)

완료 기준

  • 3개 모델 중 최소 2개에서 동일한 도메인 툴 호출 성공
  • read-only MCP PoC 데모 가능
  • 쓰기 액션 보안 정책 초안(승인/권한/감사) 문서화 완료

참고 자료

Metadata

Metadata

Assignees

No one assigned

    Labels

    chore설정, 빌드, 의존성 등 유지보수

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions