# be-user-chat-mcp

## 개요

`be-user-chat-mcp`는 Channel.io 백엔드 시스템의 다양한 컨텍스트 정보를 조회하기 위한 Model Context Protocol (MCP) 서버입니다. AI 코딩 어시스턴트가 이 서버를 통해 필요한 백엔드 데이터 컨텍스트를 얻어 다양한 개발 작업을 효율적으로 지원할 수 있도록 설계되었습니다. 특정 도메인에 국한되지 않고, 새로운 데이터 소스 및 조회 로직을 쉽게 추가할 수 있는 확장성을 목표로 합니다.

## 사용 방법

1.  **`be-user-chat-mcp` 빌드**

    ```bash
    cd apps/be-user-chat-mcp && pnpm install && pnpm build
    ```

2.  **Cursor MCP 서버 추가**

    Cursor Settings > Features > MCP 에서 "+ Add New MCP Server"를 클릭하여 MCP 서버를 추가합니다. ([참고 문서](https://docs.cursor.com/context/model-context-protocol))

    - **Name:** `be-user-chat-mcp` (또는 원하는 이름)
    - **Type:** command
    - **Command:** `npx`
    - **Args:** (아래 두 줄을 각각 추가)
      - `-y`
      - `@channel.io/be-user-chat-mcp`
    - **Env:** (필요한 환경 변수를 Key-Value 형태로 추가)

      - `REDASH_URL`: `<<Redash URL>>`
      - `REDASH_API_KEY`: `<<Redash API 키>>`
      - `SENTRY_AUTH_TOKEN`: `<<Sentry Auth 토큰 (event:read, org:read, project:read 필요)>>`
      - `AWS_PROFILE`: `<<aws sso config를 통해 설정한 AWS PROFILE 이름>>`
      - _(다른 필요한 환경 변수 추가)_

      - `npx`를 사용하면 별도의 전역 설치 없이 패키지를 실행할 수 있습니다.
      - `<<ch-mcp-tools 루트 경로>>`: 로컬 머신에 클론된 `ch-mcp-tools` 저장소의 **전체 경로**를 정확히 입력합니다. (예: `/Users/username/Documents/Development/ch-mcp-tools`)
      - **환경 변수 및 AWS 자격 증명:**
        - `Env` 섹션에는 서버가 백엔드 데이터 소스(Redash, AWS DynamoDB 등)에 접근하는 데 필요한 환경 변수를 설정합니다. 실제 값(키, 토큰 등)은 보안에 유의하여 관리하세요.
        - 이 서버는 AWS SDK의 기본 자격 증명 제공자 체인(Default Credential Provider Chain)을 사용합니다. 따라서 AWS 자격 증명의 경우, 위 `Env` 섹션에 명시적으로 설정하는 대신 터미널에서 `aws sso login` 명령 (필요시 `--profile {프로필 이름}` 또는 `--sso-session {세션 이름}` 옵션 포함)을 실행하여 유효한 SSO 세션을 시작하는 것만으로도 서버가 자격 증명을 자동으로 인식하여 인증할 수 있습니다.
        - 시스템 환경 변수나 `.env` 파일 등으로 이미 설정된 변수는 여기서 다시 설정할 필요가 없을 수 있습니다.

3.  **AI 어시스턴트와 상호작용**

    채팅 인터페이스에서 AI 어시스턴트에게 조회하려는 데이터에 필요한 식별자(예: 특정 엔티티 ID)를 제공하여 관련 데이터를 요청합니다.

    **예시 프롬프트:**

    ```
    특정 ID 'xxxxxxxx'와 관련된 데이터를 조회해줘.
    ```

    AI 어시스턴트는 등록된 MCP 서버(`be-user-chat-mcp`) 내의 적절한 함수(예: `mcp_be-user-chat-mcp_get_entity_data`)를 호출하여 요청된 정보를 가져와 응답에 활용합니다. 사용 가능한 함수와 필요한 파라미터는 서버 구현 내용을 참고하세요.

    **⚠️ 주의사항:** 이 MCP 서버는 AI 어시스턴트에게 필요한 **컨텍스트를 제공**하기 위한 목적으로 설계되었습니다. AI 어시스턴트가 이 서버를 통해 **직접 데이터베이스 쿼리나 Redash 쿼리 등을 실행하도록 요청해서는 안 됩니다.** 서버는 미리 정의된 로직에 따라 식별자를 기반으로 관련 데이터를 가져오는 역할만 수행해야 합니다.

## 주요 기능 및 특징

- 다양한 백엔드 데이터 소스(예: 데이터베이스, 내부 API, 캐시 등)로부터 컨텍스트 정보 조회
- 요청된 식별자를 기반으로 관련 데이터 엔티티들을 검색하고 조합하여 제공
- 필요에 따라 데이터를 가공하여 AI 어시스턴트가 이해하고 활용하기 용이한 형태로 변환
- 새로운 데이터 조회 로직 및 엔드포인트를 쉽게 추가하고 확장할 수 있는 유연한 구조

이 서버를 통해 AI 어시스턴트는 Channel.io 백엔드의 다양한 도메인 컨텍스트를 이해하고, 이를 바탕으로 보다 정확하고 맥락에 맞는 개발 지원을 제공할 수 있습니다.
