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

# 연동 준비

> MCP·SDK·A2A 중 어떤 방식으로 Tello와 연결할지 정하고, 발신에 필요한 것을 미리 갖춰요.

## 할 수 있는 일

Tello는 세 가지 방식으로 외부 시스템과 연결해요. 셋 다 같은 계정, 같은 에이전트, 같은
크레딧을 쓰고 발급 방식만 달라요. **대화의 두뇌를 누가 맡느냐**가 셋을 가르는 기준이에요.

* **MCP**: Claude Desktop 같은 MCP 클라이언트가 도구를 호출해요. 두뇌는 그 클라이언트예요.
* **SDK**: 여러분 코드가 WebSocket으로 턴을 받아 답변을 만들어요. 두뇌는 여러분 코드예요.
* **A2A**: 외부 AI 에이전트가 JSON-RPC로 Tello 에이전트에 작업을 넘겨요. 두뇌는 그 에이전트예요.

## 연동 방식 고르기

|         | MCP                                  | SDK                        | A2A                      |
| ------- | ------------------------------------ | -------------------------- | ------------------------ |
| 전송 계층   | HTTP (MCP)                           | WebSocket 전용               | HTTP (JSON-RPC)          |
| 대화의 두뇌  | MCP 클라이언트                            | 내 애플리케이션 코드                | 호출하는 외부 에이전트             |
| 엔드포인트   | `https://mcp.telloai.io/api/mcp`     | `wss://api.telloai.io/sdk` | `https://api.telloai.io` |
| 인증      | OAuth 2.0 또는 `Authorization: Bearer` | 연결 직후 `auth` 프레임           | `Authorization: Bearer`  |
| 턴 단위 개입 | 없음 (도구 호출 단위)                        | 있음 (`user.turn`마다 응답)      | 없음 (작업 위임 단위)            |
| 언어      | 클라이언트가 지원하는 것                        | Python · Node · Go · Java  | 아무 HTTP 클라이언트            |

<Tip title="어떤 걸 고를까요?">
  이미 쓰는 AI 도구에 전화를 붙이고 싶으면 **MCP**, 기존 백엔드·CRM·RAG의 판단을 통화에
  그대로 쓰고 싶으면 **SDK**, 다른 팀의 에이전트가 Tello를 호출하게 열어 주고 싶으면
  **A2A**예요.
</Tip>

<Info title="두 가지를 같이 써도 돼요">
  방식마다 키를 따로 발급하므로 한 계정에서 MCP와 SDK를 동시에 쓸 수 있어요. 다만 한 에이전트에
  [시나리오](/agents/manage)와 외부 AI 호출(A2A)을 함께 걸 수는 없어요.
</Info>

## 시작하기 전에

어떤 방식을 고르든 발신에 필요한 조건은 같아요. 아래가 하나라도 비면 통화가 만들어지기 전에
거부돼요. 거부 코드는 조건과 1:1로 대응하니 [SDK 오류](/developer/sdk/errors)
표와 함께 보면 돼요.

| 필요한 것       | 없으면 받는 거부                 | 확인할 곳                          |
| ----------- | ------------------------- | ------------------------------ |
| 크레딧 잔액      | `insufficientCredit`      | [잔액 & 사용이력](/settings/credits) |
| 남은 동시 발신 회선 | `concurrentLimitExceeded` | [플랜 현황](/settings/plan)        |
| 인증된 수신 번호   | `callerNotVerified`       | [수신번호 등록](/calls/caller-id)    |
| 설정된 발신 번호   | `noRepresentativeNumber`  | [전화번호 관리](/calls/numbers)      |

Free 플랜에서는 [수신번호 등록](/calls/caller-id)으로 인증한 번호로만 발신할 수 있어요.
아무 번호로나 걸려면 유료 플랜의 전용 070 번호가 필요해요.

배포된 에이전트도 하나 있어야 해요. 에이전트는 서버가 정하므로 연동 코드에서 지정하지 않아요.

## 공통 규격

* 프로토콜 버전은 `1.0`이에요. 세 방식 모두 같은 버전을 써요.
* 키는 포털에서 방식별로 발급해요. MCP 키로 SDK에 접속할 수는 없어요.
* 전화번호는 E.164 형식(`+821012345678`)으로 보내요.

## 주의사항

* 연동 테스트에서도 **실제 통화가 발신되고 크레딧이 차감돼요.** 통제된 테스트 수신번호로만
  시험하세요.
* 전체 키는 발급 직후 한 번만 볼 수 있어요. 분실하면 폐기 후 재발급해요.
* 폐기한 키는 즉시 쓸 수 없어요.
* 한 에이전트에 시나리오와 외부 AI 호출(A2A)을 함께 걸 수 없어요.

## 관련 문서

<CardGroup cols={2}>
  <Card title="SDK 시작하기" href="/developer/sdk/quickstart">
    설치부터 첫 통화까지 순서대로 따라가요
  </Card>

  <Card title="MCP" href="/developer/mcp">
    MCP 클라이언트에 Tello 도구를 붙여요
  </Card>

  <Card title="A2A" href="/developer/a2a/inbound">
    에이전트끼리 통화를 주고받아요
  </Card>

  <Card title="에이전트 관리" href="/agents/manage">
    통화에 투입할 에이전트를 만들고 배포해요
  </Card>
</CardGroup>
