# 직접 연결

> 내가 운영하는 MCP 서버나 HTTP API 를 엔드포인트와 헤더로 에이전트에 연결합니다. 항상 허용하지 않은 호출은 매번 승인을 받습니다.

**직접 연결**은 내가 운영하는 서버, 곧 원격 MCP 서버나 HTTP API 를 에이전트에 잇습니다. 엔드포인트와 필요한 헤더를 endue 에 알려 주면, 연결을 붙인 에이전트가 그 서버를 부를 수 있습니다.

## 언제 쓰는가

카탈로그에 커넥터가 없는 서비스에 씁니다. 사내 API, 직접 만든 MCP 서버, 팀이 만든 도구 같은 것입니다. [연결 가능한 서비스](/ko/docs/connect/available-connectors/)에 있는 서비스라면 그 커넥터를 쓰세요. 작업이 이미 분류돼 있어서 발송과 삭제만 먼저 묻습니다.

## MCP 서버와 HTTP 서버

| | MCP 서버 | HTTP 서버 |
| --- | --- | --- |
| **엔드포인트** | Streamable HTTP 전송을 쓰는 서버의 MCP 엔드포인트 | 기준 URL |
| **에이전트가 받는 것** | 서버가 알려 주는 도구 하나하나. 이름과 설명은 서버 것을 씁니다 | 기준 URL 아래 경로로 GET·POST·PUT·PATCH·DELETE 를 보내는 요청 도구 하나 |
| **설명** | 선택. 목록에서 서버를 알아보기 쉽게 적어 둡니다. | 필수. 에이전트가 이 글을 읽고 어떤 경로와 메서드를 쓸지 압니다. |

## 직접 연결 추가하기

<Steps>

1. **좌측 사이드바에서 리소스 › 커넥터를 열고** **직접 연결** 탭에서 **직접 연결 추가**를 누릅니다.

2. **방식을 고릅니다.** **MCP 서버** 또는 **HTTP 서버**입니다. 저장한 뒤에는 바꿀 수 없습니다.

3. **칸을 채웁니다.**

   - **이름**: 목록과 대화에 보이는 이름.
   - **엔드포인트 URL**: 인터넷에서 닿는 `https://` 주소. HTTP 서버라면 기준 URL 이고, 에이전트는 그 아래 경로로만 요청합니다.
   - **헤더**: 서버가 요구하는 헤더를 한 줄에 하나씩. 예: `Authorization` 에 `Bearer …`.
   - **설명**: HTTP 서버라면 에이전트가 알아야 할 것을 적습니다. 경로, 메서드, 예시입니다. 예: *GET items?q=검색어 로 항목을 찾고, POST items 에 `{"title": "…"}` 를 보내 항목을 만든다.*

4. **연결 확인을 누릅니다.** 아직 저장하지 않습니다.

   - MCP 서버라면 서버 이름, MCP 프로토콜 버전, 서버가 제공하는 도구, 그리고 에이전트가 쓸 수 없는 도구와 그 이유가 보입니다.
   - HTTP 서버라면 endue 가 기준 URL 로, 또는 **확인할 경로**를 적었다면 그 아래 경로로 GET 요청을 한 번 보내고, 상태 코드와 응답 앞부분을 보여 줍니다.

5. **저장을 누릅니다.** MCP 서버는 저장하면서 도구 목록을 받습니다. 서버에 닿지 못하면 아무것도 저장하지 않습니다.

6. **에이전트에 붙입니다.** 그 에이전트의 [에이전트 빌더](/ko/docs/build/agent-builder/)에서 **리소스 › 커넥터**를 열고 다른 연결처럼 고릅니다. **직접 연결** 배지와 호스트가 함께 보입니다.

</Steps>

## 헤더

토큰 같은 헤더 값은 암호화해 저장합니다. 저장한 뒤에는 나에게도 다시 보여 주지 않고, 에이전트와 대화에도 나오지 않습니다. endue 가 요청마다 직접 붙이고, 에이전트가 헤더를 더할 수는 없습니다.

편집할 때 값을 비워 두면 그대로 두고, 새 값을 적으면 바뀝니다. 저장한 값은 브라우저로 돌려보내지 않으므로, 이미 있는 연결에서 **연결 확인**을 하려면 헤더 값을 모두 다시 적어야 합니다.

`Host`·`Content-Length`·`Connection`, 그리고 `Proxy-`·`CF-`·`X-Forwarded-`·`Mcp-` 로 시작하는 헤더는 연결이 직접 관리하므로 넣을 수 없습니다.

## 승인

직접 연결 호출은 기본적으로 **매번 [승인](/ko/docs/work/approvals/)을 받습니다.** endue 는 내 서버의 도구가 무엇을 하는지 모르고, 서버가 도구에 붙인 설명을 묻지 않아도 될 이유로 삼지 않습니다.

묻지 않고 실행되게 하려면 **직접 연결** 탭에서 그 연결의 **편집**을 누르고 **항상 허용**을 켭니다.

- **MCP 서버**: 도구별로.
- **HTTP 서버**: 메서드별로. 예: GET.

[루틴](/ko/docs/automate/routines/)·[채널](/ko/docs/automate/channels/)처럼 지켜보는 사람이 없는 실행은 항상 허용한 것만 쓸 수 있습니다. 그런 실행에서 나머지 호출은 거절됩니다.

<Aside type="caution" title="항상 허용은 사용자만 정합니다">
  아무도 확인하지 않고 실행돼도 괜찮은 호출, 예를 들어 읽기만 하는 조회에만 켜세요. 서버의 데이터를
  바꾸는 도구는 계속 묻게 두세요.
</Aside>

## 네트워크 규칙

endue 는 내 컴퓨터가 아니라 자기 인프라에서 서버를 부릅니다. 서버가 인터넷에서 닿아야 합니다.

- `https://` 만, 포트 443 또는 8443.
- 공인 도메인 이름. IP 주소, `localhost`, 사설 주소로 풀리는 이름, endue 자신의 주소는 받지 않습니다. 아이디·비밀번호가 들어간 URL 도 받지 않으니 자격 증명은 헤더로 넣으세요.
- 리다이렉트는 같은 호스트로만 따라갑니다.
- 호출마다 30초입니다. HTTP 응답은 256KB 에서 잘립니다. MCP 응답이 256KB 를 넘으면 실패합니다. 256KB 를 넘는 요청 본문은 보내지 않습니다.

요청은 Cloudflare 네트워크에서 나갑니다. 서버에 방화벽이나 허용 목록이 있다면 Cloudflare 의 IP 대역을 허용하세요.

## 연결 관리하기

**직접 연결** 탭에 연결마다 방식, 호스트, 도구 수, 상태, 쓰는 에이전트가 보입니다.

- **다시 받기**는 MCP 서버의 도구 목록을 다시 읽습니다. 서버의 도구를 바꾼 뒤에 누르세요. 엔드포인트나 헤더를 바꿀 때도 목록을 다시 받습니다.
- **오류**는 마지막으로 서버에 닿으려 했을 때 실패했다는 뜻입니다. 연결을 열면 이유가 보입니다.
- **삭제**는 저장한 헤더 값을 지우고, 이 연결을 쓰던 모든 에이전트에서 뺍니다. 되돌릴 수 없습니다.

## 한계

- 계정당 직접 연결 20개까지.
- MCP 서버는 Streamable HTTP 전송을 써야 합니다. 옛 HTTP+SSE 전송을 쓰거나 OAuth 로그인을 요구하는 서버는 지원하지 않습니다.
- HTTP 서버는 에이전트에게 요청 도구 하나와 내 설명을 줍니다. OpenAPI 문서는 읽지 않습니다. JSON·텍스트 응답을 다루고, 파일 업로드나 스트리밍 응답은 다루지 않습니다.
- 사설망의 서버에는 닿지 않습니다. 서버에 공인 HTTPS 주소가 있어야 합니다.
- 입력 형식을 에이전트가 쓸 수 없는 도구는 빠지고, 이유와 함께 쓸 수 없는 도구로 표시됩니다.
- 직접 연결은 내 계정에 속합니다. 카탈로그에는 나타나지 않습니다.

## 관련 문서

<CardGrid>
  <LinkCard
    title="커넥터 개요"
    href="/ko/docs/connect/overview/"
    description="연결, 바인딩, 카탈로그 커넥터."
  />
  <LinkCard
    title="승인"
    href="/ko/docs/work/approvals/"
    description="호출이 먼저 물을 때 보게 되는 것."
  />
  <LinkCard
    title="보안과 권한"
    href="/ko/docs/account/security/"
    description="에이전트가 닿을 수 있는 것과 자격 증명을 다루는 방식."
  />
</CardGrid>
