> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP

> Model Context Protocol(MCP)을 통해 커스텀 도구와 API를 CloudThinker에 연결하여 에이전트 기능을 확장합니다

Model Context Protocol(MCP)을 사용하면 CloudThinker가 커스텀 도구와 서비스에 연결할 수 있습니다. MCP를 사용하여 자체 [연결](/ko/guide/connections/overview)로 에이전트 기능을 확장하세요.

***

## MCP란?

MCP(Model Context Protocol)는 AI 에이전트를 외부 도구 및 데이터 소스에 연결하기 위한 개방형 프로토콜입니다. 다음을 위한 표준화된 방법을 제공합니다:

* 에이전트가 호출할 수 있는 도구 노출
* 에이전트에 컨텍스트와 데이터 제공
* 모든 서비스와의 커스텀 통합 활성화

***

## 설정

<Steps>
  <Step title="MCP 서버 준비">
    MCP 서버가 실행 중이고 접근 가능한지 확인합니다:

    * Server-Sent Events(SSE) 전송 지원
    * 공개적으로 접근 가능한 엔드포인트(또는 VPN 접근)
    * 올바른 MCP 프로토콜 응답 반환
  </Step>

  <Step title="연결 생성">
    **Connections → MCP**로 이동하여 **Add MCP Connection**을 클릭합니다.
  </Step>

  <Step title="기본 정보 설정">
    연결 세부 정보를 입력합니다:

    * **Name**: 연결의 설명적인 이름
    * **Prefix**: 도구 접두사 (예: `mytools` → `mytools_function_name`)
  </Step>

  <Step title="전송 설정">
    연결 전송을 설정합니다:

    * **Transport Type**: Server-Sent Events
    * **URL**: MCP 서버 엔드포인트
    * **Timeout**: 연결 타임아웃 (기본값: 5초)
    * **SSE Read Timeout**: 이벤트 스트림 타임아웃 (기본값: 30초)
  </Step>

  <Step title="환경 변수 추가">
    필요한 환경 변수를 설정합니다:

    * API 키
    * 인증 토큰
    * 커스텀 설정
  </Step>

  <Step title="테스트 및 생성">
    연결을 테스트하고 저장합니다. 서버가 올바르게 응답하면 CloudThinker에 **Connected** 상태가 표시됩니다.
  </Step>
</Steps>

***

## 연결 세부 정보

| 필드                        | 설명              | 필수 여부         |
| ------------------------- | --------------- | ------------- |
| **Name**                  | 연결 표시 이름        | 예             |
| **Prefix**                | 도구 이름 접두사       | 예             |
| **URL**                   | MCP 서버 엔드포인트    | 예             |
| **Timeout**               | 연결 타임아웃(초)      | 아니오 (기본값: 5)  |
| **SSE Read Timeout**      | 이벤트 스트림 타임아웃(초) | 아니오 (기본값: 30) |
| **Environment Variables** | 설정을 위한 키-값 쌍    | 아니오           |

***

## MCP 서버 예시

날씨 조회 도구를 제공하는 간단한 MCP 서버:

```python theme={null}
from mcp import Server, Tool

server = Server("weather-tools")

@server.tool()
async def get_weather(location: str) -> str:
    """Get current weather for a location."""
    # Your implementation here
    return f"Weather for {location}: Sunny, 72°F"

if __name__ == "__main__":
    server.run()
```

접두사 `weather`로 연결하면 에이전트는 다음을 호출할 수 있습니다:

```
weather_get_weather(location="San Francisco")
```

***

## 사용 사례

### 커스텀 데이터 소스

독점 데이터베이스 또는 API 연결:

* 내부 메트릭 시스템
* 커스텀 모니터링 도구
* 비즈니스 인텔리전스 플랫폼

### 특화 도구

도메인별 기능 추가:

* 커스텀 컴플라이언스 검사
* 내부 자동화 스크립트
* 레거시 시스템 통합

### 외부 서비스

서드파티 서비스 통합:

* 커뮤니케이션 플랫폼
* 티켓팅 시스템
* 기본 제공되지 않는 클라우드 서비스

***

## 모범 사례

* **HTTPS 엔드포인트** — MCP 서버는 HTTPS를 통해서만 노출합니다.
* **API 키 로테이션** — 환경 변수에 저장된 자격 증명을 정기적으로 교체합니다.
* **인증 구현** — 처리 전에 CloudThinker에서 오는 요청을 검증합니다.
* **적절한 타임아웃 설정** — 서버의 응답 특성에 맞게 Timeout과 SSE Read Timeout을 조정합니다.
* **서버 헬스 모니터링** — 연결 중단을 조기에 감지할 수 있도록 오류율과 지연 시간을 추적합니다.
* **오류 처리** — 서버를 중단시키지 않고 구조화된 MCP 오류 응답을 반환합니다.

***

## 트러블슈팅

<Accordion title="연결 타임아웃">
  MCP 서버가 실행 중인지 확인하고, 네트워크 연결을 점검하며, 타임아웃 값을 늘리고, 방화벽이 트래픽을 허용하는지 확인합니다.
</Accordion>

<Accordion title="도구가 표시되지 않음">
  접두사가 올바르게 설정되어 있는지 확인하고, MCP 서버가 도구 정의를 반환하는지 확인하며, 프로토콜 버전이 호환되는지 확인하고, 서버 로그에서 오류를 검토합니다.
</Accordion>

<Accordion title="인증 오류">
  환경 변수가 올바르게 설정되어 있는지 확인하고, API 키가 유효한지 확인하며, 서버가 자격 증명을 올바르게 검증하는지 확인합니다.
</Accordion>

<Accordion title="SSE 연결 끊김">
  SSE 읽기 타임아웃을 늘리고, 프록시 간섭을 확인하며, 서버가 keepalive 이벤트를 전송하는지 확인하고, 네트워크 안정성을 검토합니다.
</Accordion>

***

## 보안

* **최소 권한** — 에이전트가 사용 사례에 필요한 권한만 부여하세요. 읽기 전용으로 시작한 후 필요에 따라 확장하세요.
* **기본 읽기 전용** — 에이전트가 이 연결을 통해 변경 작업을 수행하게 할 것이 아니라면 읽기 전용 자격증명을 사용하세요.
* **자격증명 교체** — 정기 일정에 따라 키와 토큰을 교체하세요. 연결을 업데이트하면 CloudThinker가 새 값을 자동으로 반영합니다.
* **오프보딩 시 취소** — 연결을 삭제하거나 팀원이 퇴사할 때 프로바이더에서 자격증명을 제거하세요.

- **HTTPS 엔드포인트** — MCP 서버는 HTTPS를 통해서만 노출하고 CloudThinker 요청 출처를 검증합니다.
- **범위 제한 자격 증명** — API 키와 토큰은 서버 코드에 하드코딩하지 않고 환경 변수에 저장합니다.

***

## 관련 항목

<CardGroup cols={2}>
  <Card title="개요" icon="plug" href="/ko/guide/connections/overview">
    모든 연결 유형
  </Card>

  <Card title="에이전트" icon="robot" href="/ko/guide/agents">
    에이전트가 연결을 사용하는 방법
  </Card>
</CardGroup>
