> For the complete documentation index, see [llms.txt](https://docs.panther.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.panther.com/ko/ai/mcp/panther-remote-mcp.md).

# Panther Remote MCP(베타)

## 개요

{% hint style="info" %}
Panther Remote MCP는 Panther 버전 1.124부터 오픈 베타이며, 모든 고객에게 제공됩니다. 버그 보고와 기능 요청은 Panther 지원 팀과 공유해 주세요.
{% endhint %}

{% hint style="warning" %}
**사전 요구 사항: `api.` 서브도메인.** Panther Remote MCP를 사용하려면 Panther 배포에 `api.<your-panther-host>` 서브도메인이 구성되어 있어야 합니다(커스텀 도메인 구성의 일부로 설정됨). 배포에 없다면, 사용하세요 [Local MCP](/ko/ai/mcp/mcp-server.md) 을(를) 사용하는 것을 고려하세요.
{% endhint %}

Panther Remote MCP를 사용하면 다음의 어떤 것에서든 Panther 인스턴스와 상호작용할 수 있습니다 [MCP](https://modelcontextprotocol.io/)호환되는 AI 클라이언트—예: Claude for Desktop, Cursor, Goose—에서 자연어로 사용할 수 있습니다. 알러트에 대해 묻거나, 데이터 레이크를 조회하거나, 인디케이터를 찾거나, 디택션의 소스를 가져오세요. 모두 편집기나 채팅 클라이언트를 벗어나지 않고 가능합니다.

{% hint style="info" %}
Remote MCP는 Panther의 **알러트, 디택션, 데이터 레이크, 스키마, 아이덴티티, 그리고 인리치먼트를**노출합니다. 그리고 도구 표면은 계속 확장 중입니다. Local MCP에서 사용할 수 있는 일부 도구—예: Panther에서 호스팅되는 AI 워크플로우(예: AI 알러트 분류)와 예약 쿼리 검토—는 아직 Remote MCP에 없습니다. 지금 워크플로우에 그런 것 중 하나가 필요하다면 Local MCP를 사용하세요.
{% endhint %}

## MCP 클라이언트 연결하기

Panther Remote MCP 엔드포인트는 다음과 같습니다:

```
https://api.<your-panther-host>/mcp
```

대부분의 인기 있는 MCP 클라이언트(Claude for Desktop, Cursor, Goose)는 별도 설정 없이 작동합니다. 이들은 루프백 URL(`localhost`, `127.0.0.1`)은 Panther가 항상 허용합니다. 클라이언트가 루프백이 아닌 리디렉트 URL(예: 호스팅된 웹 클라이언트 또는 사용자 지정 네이티브 앱 스킴)을 사용하는 경우 Panther 관리자에게 이를 허용 목록에 추가해야 할 수 있습니다 — 참조 [관리자 설정](#admin-setup) 아래를 참조하세요.

클라이언트에 Panther를 원격 MCP 서버로 추가하세요. 예:

{% tabs %}
{% tab title="Claude for Desktop" %}
{% hint style="info" %}
조직이 Team 또는 Enterprise 요금제를 사용 중이라면, 원격 MCP를 추가하려면 Claude Owner여야 합니다.
{% endhint %}

1. 다음으로 이동합니다: **사용자 지정 > 커넥터**.
2. 다음 타일을 클릭하세요: **"+"** 커넥터 옆의 버튼.
3. 이름을 입력하세요(예: `Panther`) 및 URL `https://api.<your-panther-host>/mcp`.
4. 클릭합니다 **추가**.
5. Claude가 Panther에 로그인할 수 있도록 브라우저를 엽니다. SSO를 완료하고 동의 화면을 검토하세요.
6. 승인하세요. 그러면 브라우저가 Claude로 다시 리디렉트되고, Claude는 이제 Panther 도구에 접근할 수 있습니다.
   {% endtab %}

{% tab title="Cursor" %}
{% hint style="warning" %}
**사전 요구 사항:** Cursor는 사용자 지정 URI 스킴 `cursor://`을 사용해 인증합니다. 연결하기 전에 Panther 관리자가 `cursor` 아래에 **허용된 사용자 지정 스킴** 를 추가해야 합니다. 참조 [관리자 설정](#admin-setup). 그렇게 하지 않으면 승인 단계가 다음 오류로 실패합니다: [redirect\_uri is not allowed](#redirect-uri-is-not-allowed-after-i-sign-in).
{% endhint %}

1. 열림 **Cursor 설정** > **도구 및 MCP** > **새 MCP 서버**. 그러면 다음이 열립니다: `~/.cursor/mcp.json`. (Free 요금제에서는 이 섹션이 다음으로 표시될 수 있습니다: **도구**; 일부 빌드에서는 **도구 및 통합. 이**흐름은 동일합니다.)
2. Panther 서버를 추가하세요:json

   ```json
   {
     "mcpServers": {
       "panther": {
         "url": "https://api.<your-panther-host>/mcp"
       }
     }
   }
   ```
3. 저장하고 다음으로 돌아가세요 **도구 및 MCP**. `panther` 서버가 다음과 함께 표시됩니다: **`연결`** 버튼(상태: *인증 필요*).
4. 클릭합니다 **연결**. Cursor가 브라우저를 열어 승인합니다.
5. SSO와 동의 화면을 완료한 다음 **`승인`** Panther 도구를 사용할 수 있는 상태로 Cursor로 돌아가세요.
   {% endtab %}
   {% endtabs %}

## 클라이언트가 수행할 수 있는 작업 선택하기

로그인 후 Panther의 **MCP 인증** 페이지로 이동합니다. 여기서 MCP 클라이언트와 공유할 액세스 범위를 선택합니다.

기본적으로 동의 화면은 현재 Panther 역할이 보유한 모든 권한을 미리 선택합니다. 원하는 권한을 **선택 해제하여** 연결된 클라이언트가 수행할 수 있는 작업을 제한할 수 있습니다.

* **이미 보유한 권한만 부여할 수 있습니다.** 백엔드는 현재 역할을 초과하는 선택을 거부합니다.
* **권한 취소는 새로고침 시 적용됩니다.** 연결 후 역할이 축소되면, 다음 새로고침은 이전 권한을 조용히 유지하지 않고 닫힌 상태로 실패합니다.
* **각 사용자는 개별적으로 연결합니다.** 연결은 개인별로 이루어집니다. 공유되는 "service account" 토큰은 없습니다. 감사 로그는 모든 도구 호출을 연결한 사용자에게 귀속합니다.

## 관리자 설정

{% hint style="info" %}
다음을 보유해야 합니다 **설정 및 SAML 환경설정 편집** Remote MCP를 구성할 수 있는 권한.
{% endhint %}

Remote MCP의 유일한 관리자 작업은 사용자들의 MCP 클라이언트가 인증 코드를 수신하는 데 사용하는 리디렉트 URL을 허용 목록에 추가하는 것입니다. 단, 해당 클라이언트가 루프백이 아닌 리디렉트를 사용할 때만 해당됩니다. 루프백 주소(`localhost`, `127.0.0.1`, `::1`)은 항상 허용되므로, 대부분의 데스크톱 MCP 클라이언트는 기본적으로 지원됩니다.

추가 리디렉트 URL을 구성하려면:

1. Panther Console의 왼쪽 탐색 모음 하단에서 **설정**를 클릭한 다음 **AI 및 자동화** > **Remote MCP**.
2. 다음을 구성하세요:
   * **허용된 리디렉트 도메인** — 다음에 허용되는 도메인: `https://` OAuth 리디렉트(예: `claude.ai`, `*.cursor.com`). 루프백 주소(`localhost`, `127.0.0.1`, `::1`)은 항상 허용되며 목록에 추가할 필요가 없습니다.
   * **허용된 사용자 지정 스킴** — 네이티브 앱 딥 링크 리디렉트에 허용되는 스킴 이름(예: `cursor`, `mcp`, `com.example.app`). 예약된 값(`http`, `https`, `javascript`, `data`, `파일을`, `vbscript`)은 거부됩니다.
3. 변경 사항을 저장하세요. 구성 캐싱으로 인해 변경 내용이 적용되기까지 최대 10분이 걸릴 수 있습니다.

### 허용된 리디렉트 도메인

도메인 허용 목록은 glob 패턴을 지원합니다:

| 패턴             | 일치함                                 | 일치하지 않음                                  |
| -------------- | ----------------------------------- | ---------------------------------------- |
| `claude.ai`    | `claude.ai` 만                       | `api.claude.ai`, `notclaude.ai`          |
| `*.cursor.com` | `auth.cursor.com`, `api.cursor.com` | `cursor.com` (서브도메인 없음), `notcursor.com` |
| `*cursor.com`  | `auth.cursor.com`, `notcursor.com`  | *신중하게 사용하세요* — 유사한 도메인도 일치합니다            |

{% hint style="warning" %}
`*example.com` 은 문자열 일치 와일드카드이며 점 경계 와일드카드가 아닙니다. 따라서 다음도 일치합니다: `notexample.com`. "example.com의 모든 서브도메인"에는 다음을 사용하세요: `*.example.com` 을(를) 사용하는 것을 고려하세요.
{% endhint %}

호스트명 일치는 대소문자를 구분하지 않습니다.

### 권한 개요

| 권한                                      | 부여되는 역할                       |
| --------------------------------------- | ----------------------------- |
| **설정 및 SAML 환경설정 편집**                   | 리디렉트 허용 목록 구성(관리자)            |
| **설정 및 SAML 환경설정 읽기**                   | Remote MCP 설정 페이지 보기(관리자/분석가) |
| 도구별 권한(예: **알러트 읽기**, **Data Lake 쿼리**) | 사용자가 동의 화면에서 부여할 수 있게 됩니다     |

연결하려면 별도의 "MCP" 권한이 필요하지 않습니다. 사용자의 기존 역할 권한이 클라이언트에 노출할 수 있는 선택 항목입니다.

## 보안

{% hint style="info" %}
Panther의 OAuth 구현은 RFC 7591을 따르며 MCP 클라이언트를 퍼블릭 클라이언트로 취급하므로 `client_secret` 는 발급되지 않습니다.

MCP 클라이언트에 다음이 필요하다면 `client_secret` 등록 응답에 포함되는 것은 스펙을 준수하지 않습니다. 해당 클라이언트의 지원팀에 문의하고 다음을 참조하세요: [RFC 7591 §3.2.1](https://datatracker.ietf.org/doc/html/rfc7591#section-3.2.1) 및 다음 [MCP 인증 사양](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization).
{% endhint %}

* **OAuth 2.1 + PKCE.** 표준적이고 감사 가능한 흐름입니다. State, PKCE, 브라우저에 종속된 flow ID가 OAuth 핸드셰이크를 가로채기와 세션 간 주입으로부터 보호합니다.
* **감사 로깅.** 모든 도구 호출은 단일 감사 로그 이벤트로 기록됩니다(이벤트 유형으로 검색: `AI_TOOL_INVOKE`) Panther 감사 로그에 기록되며, 연결한 사용자에게 귀속됩니다.

## 문제 해결

<details>

<summary>로그인 후 "Redirect URI is not allowed"</summary>

MCP 클라이언트의 리디렉트 URI가 관리자 허용 목록에 없습니다. Panther 관리자에게 적절한 도메인을 다음에 추가해 달라고 요청하세요: **허용된 리디렉트 도메인**또는 스킴을 다음에 추가해 달라고 하세요: **허용된 사용자 지정 스킴**에서 사용할 예제 SQL 쿼리를 참조하세요. **설정** > **AI 및 자동화** > **Remote MCP**. 변경 사항이 전파되기까지 최대 10분이 걸릴 수 있습니다.

</details>

<details>

<summary>클라이언트는 연결되지만 도구가 보이지 않음(또는 예상보다 적게 보임)</summary>

도구 표시 여부는 동의 화면에서 부여한 권한과 기본 Panther 역할에 의해 필터링됩니다. MCP 클라이언트에서 연결을 끊고 다시 연결하여 동의 흐름을 다시 수행하고, 관련 권한이 체크되어 있는지 확인하세요. 동의 화면에 어떤 권한이 아예 표시되지 않는다면, Panther 역할에서 해당 권한을 부여하지 않는 것입니다. 관리자에게 문의하세요.

</details>

<details>

<summary>어떤 도구가 계속 "permission denied" 또는 "unauthorized"로 실패함</summary>

연결 후 역할이 변경되었을 가능성이 큽니다. Remote MCP는 이전 권한을 조용히 유지하지 않습니다. MCP 클라이언트에서 연결을 끊고 다시 연결하여 현재 역할로 동의를 새로고침하세요.

</details>

<details>

<summary>Remote MCP에서 Panther API 토큰을 사용할 수 있나요?</summary>

아니요. Remote MCP에는 사용자 신원에 연결된 OAuth 흐름이 필요합니다. API 토큰 기반 MCP 서버가 필요하다면(CI, 스크립트 에이전트 등), 대신 Local MCP를 사용하세요.

</details>

<details>

<summary>이것과 Panther AI 아래의 타사 MCP 통합의 차이점은 무엇인가요?</summary>

MCP 통합 페이지는 Panther AI가 Atlassian이나 PagerDuty 같은 타사 MCP 서버로 연결하여 대화 중에 해당 도구를 사용할 수 있게 하는 것을 설명합니다. 이 페이지는 반대 방향을 설명합니다. 외부 MCP 클라이언트가 Panther로 연결하여 Panther의 도구를 사용할 수 있게 하는 것입니다.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.panther.com/ko/ai/mcp/panther-remote-mcp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
