Skip to content

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

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 데모 가능
  • 쓰기 액션 보안 정책 초안(승인/권한/감사) 문서화 완료

참고 자료

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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