# MCP — 왜 표준이 필요했나

> **이 장에서 배우는 것**
> 표준이 없을 때 실제로 어떤 비용이 들었는지, MCP가 정확히 무엇을 표준화했는지.

## 표준이 없던 시절의 산수

[도구 사용](/guide/ai-tool-use)에서 모델에 도구를 붙이는 구조를 봤습니다. 그런데
**붙이는 방식이 제품마다 달랐습니다.**

도구 3개(Slack, GitHub, 사내 DB)를 에이전트 3개에 붙인다고 해봅시다.

```mermaid
graph TD
  A1["에이전트 A"] --> S1["Slack 연동 A용"]
  A1 --> G1["GitHub 연동 A용"]
  A1 --> D1["사내DB 연동 A용"]
  A2["에이전트 B"] --> S2["Slack 연동 B용"]
  A2 --> G2["GitHub 연동 B용"]
  A2 --> D2["사내DB 연동 B용"]
```

**3 × 3 = 9번** 만들어야 합니다. 도구가 하나 늘면 3번이 더 늘고, 에이전트가 하나
늘면 도구 수만큼 늘어납니다.

| 도구 × 에이전트 | 만들어야 하는 연동 |
|---|---|
| 3 × 3 | 9 |
| 5 × 4 | 20 |
| 10 × 5 | **50** |

이게 실제 비용이었습니다. 그리고 만드는 것보다 **유지하는 게** 더 문제였습니다 —
Slack API가 바뀌면 3곳을 다 고쳐야 합니다.

## MCP가 한 일

**M**odel **C**ontext **P**rotocol. 사이에 공통 규격을 놓았습니다.

```mermaid
graph TD
  A1["에이전트 A"] --> M["MCP"]
  A2["에이전트 B"] --> M
  A3["에이전트 C"] --> M
  M --> S["Slack 서버"]
  M --> G["GitHub 서버"]
  M --> D["사내DB 서버"]
```

이제 산수가 바뀝니다.

```
도구 쪽:      한 번 만든다 (MCP 서버로)
에이전트 쪽:  한 번 구현한다 (MCP 클라이언트로)
연결:         꽂으면 된다
```

**3 × 3 = 9**가 **3 + 3 = 6**이 되고, 규모가 커질수록 차이가 벌어집니다.
10 × 5 = 50이 10 + 5 = 15가 됩니다.

## 비유

USB를 생각하시면 됩니다.

- **USB 이전**: 프린터마다 전용 포트, 마우스마다 전용 포트. 컴퓨터를 바꾸면
  주변기기를 다 바꿔야 할 수도 있었습니다.
- **USB 이후**: 규격이 같으니 아무 데나 꽂힙니다. 프린터 만드는 쪽은 USB만
  지원하면 되고, 컴퓨터 만드는 쪽도 USB만 지원하면 됩니다.

MCP는 **AI와 도구 사이의 USB**입니다.

## 무엇을 표준화했나

정확히는 세 가지를 정했습니다.

| 정한 것 | 내용 |
|---|---|
| **어떻게 소개하나** | 서버가 자기 도구 목록을 알려주는 방식 |
| **어떻게 부르나** | 도구를 호출하는 요청 형식 |
| **어떻게 답하나** | 결과를 돌려주는 형식 |

**무엇을 하는 도구인지는 표준화하지 않았습니다.** 그건 각 서버가 정합니다.
USB가 "어떻게 연결하나"만 정하고 "프린터가 무엇을 인쇄하나"는 안 정한 것과
같습니다.

## 실무에서 무엇이 달라지나

### 1. 남이 만든 것을 가져다 씁니다

Slack, GitHub, Google Drive 같은 것들은 이미 MCP 서버가 나와 있는 경우가
많습니다. 직접 만들 필요가 없습니다.

### 2. 한 번 만들면 어디서나 씁니다

사내 시스템용 MCP 서버를 하나 만들면, 그걸 여러 에이전트가 씁니다. 나중에 다른
AI 제품으로 바꿔도 그 서버는 그대로 씁니다.

### 3. 갈아타기가 쉬워집니다

특정 AI 제품에 도구를 직접 붙여두면 그 제품에 묶입니다. MCP로 붙이면 **도구는
그대로 두고 AI 쪽만 바꿀 수 있습니다.**

> 실무에서 이 점이 생각보다 큽니다. AI 제품은 빠르게 바뀌는데, 사내 시스템 연동은
> 한 번 만들면 오래 씁니다.

## 자주 하는 오해

### "MCP를 쓰면 뭐든 연결되나?"

연결 방식이 표준이라는 뜻이지, **모든 시스템에 MCP 서버가 이미 있다는 뜻은
아닙니다.** 사내 시스템은 대개 직접 만들어야 합니다. 다만 한 번 만들면 재사용이
된다는 게 이득입니다.

### "표준이니까 안전한가?"

표준은 **연결 방식**에 대한 것이지 안전에 대한 게 아닙니다. MCP 서버를 붙이는
것은 그 서버가 할 수 있는 일을 에이전트에게 허용하는 것입니다. 이건
[도구는 권한이다](/guide/mcp-security)에서 따로 다룹니다.

---

## 확인

**1. 도구 5개를 에이전트 4개에 붙일 때, 표준 전후로 몇 번 만들어야 합니까?**

<details>
<summary>답</summary>

표준 전에는 **5 × 4 = 20번**, MCP로는 **5 + 4 = 9번**입니다. 도구 쪽에서 한 번,
에이전트 쪽에서 한 번씩만 구현하면 되기 때문입니다.
</details>

**2. MCP가 표준화하지 않은 것은 무엇입니까?**

<details>
<summary>답</summary>

**도구가 무엇을 하는지**입니다. 소개·호출·응답의 형식만 정하고 기능은 각 서버가
정합니다. USB가 연결 방식만 정하고 프린터가 무엇을 인쇄하는지는 안 정하는 것과
같습니다.
</details>

**3. MCP로 붙이면 갈아타기가 쉬워지는 이유는?**

<details>
<summary>답</summary>

**도구 연동과 AI 제품이 분리되기 때문**입니다. 특정 제품에 직접 붙이면 그 제품에
묶이지만, MCP로 붙이면 도구는 그대로 두고 AI 쪽만 바꿀 수 있습니다. AI 제품은
빠르게 바뀌고 사내 연동은 오래 쓰므로 실무에서 큰 차이입니다.
</details>

---

MCP 서버가 실제로 무엇을 제공하는지 봅니다 →
[MCP 서버가 제공하는 것](/guide/mcp-capabilities)
