2025-09-23

ChatGPT MCP 서버 구축

MCP란?

  • Model Context Protocol (MCP): AI 모델을 외부 데이터 소스/도구와 연결하기 위한 표준 프로토콜.
  • ChatGPT 커넥터(Connectors), Deep Research, API 통합에 활용 가능.
  • 원격 MCP 서버를 만들어 사설 데이터 소스(예: 벡터스토어)와 연결 가능.

기본 흐름

  1. 데이터 소스 준비
    • 벡터스토어(Vector Store) 예시: PDF 업로드 → 문서 임베딩 저장.
    • OpenAI 대시보드나 API로 생성 가능.
    • 벡터스토어 ID 필요.
  2. MCP 서버 구축
    • Python + FastMCP 프레임워크 활용.
    • 서버는 최소 두 가지 도구를 구현해야 함:
      • search: 쿼리 기반 검색
      • fetch: 문서 전체 내용 조회

search 도구

  • 입력: 검색어(query)
  • 출력: 결과 리스트 (id, title, url 포함)
  • 반환 형식(JSON-encoded text):
{
  "content": [
    {
      "type": "text",
      "text": "{\"results\":[{\"id\":\"doc-1\",\"title\":\"...\",\"url\":\"...\"}]}"
    }
  ]
}


fetch 도구

  • 입력: 문서 ID
  • 출력: 문서 전체 정보 (id, title, text, url, metadata)
  • 반환 형식(JSON-encoded text):
{
  "content": [
    {
      "type": "text",
      "text": "{\"id\":\"doc-1\",\"title\":\"...\",\"text\":\"full text...\",\"url\":\"https://example.com/doc\",\"metadata\":{\"source\":\"vector_store\"}}"
    }
  ]
}


서버 실행 예시

  • 환경 변수 필요:
    • OPENAI_API_KEY
    • VECTOR_STORE_ID
  • Replit에서 실행 가능 → URL 끝은 반드시 /sse/여야 함.
  • 예:

      https://xxxxxxx.replit.dev/sse/
        
    

연결 방법

  1. ChatGPT 설정 → 커넥터 탭에서 서버 추가.
  2. Deep Research / Use Connectors 도구에서 활용 가능.
  3. API 테스트: curlresponses API 호출 시 tools에 MCP 서버 등록.

인증/보안

  • OAuth + Dynamic Client Registration 권장.
  • MCP 서버는 외부 애플리케이션에 데이터를 노출할 수 있으므로 주의 필요.
  • 공격 위험:
    • Prompt Injection → 데이터 유출(exfiltration)
    • 악성 서버를 통한 민감 정보 탈취
    • Write Action 오남용 → 잘못된 동작 발생 가능

안전 수칙

  • 신뢰할 수 있는 서버만 연결 (예: Stripe 공식 MCP 서버).
  • 민감 데이터는 JSON 응답에 포함하지 말 것.
  • MCP 서버 코드 작성 시 의도치 않은 명령 수행을 막기 위해 Prompt Injection 방어 필요.

results matching ""

    No results matching ""